遇到大容量磁盘你该怎么办?

导读 在 Linux 中,为磁盘分区通常使用 fdisk 和 parted 命令。通常情况下,使用 fdisk 可以满足日常的使用,但是它仅仅支持 2 TB 以下磁盘的分区,超出 2 TB 部分无法识别。而随着科技的进步,仅仅能识别 2 TB 的fdisk 很明显无法满足需求了,于是乎,parted & GPT 磁盘成为了绝佳的搭配。这里主要讲解下使用 parted 为 MBR 以及 GPT 磁盘进行分区。

GPT 磁盘分区:

首先,你得有一块 GPT 分区的硬盘。小于 2 TB 的磁盘也可以转为 MBR 磁盘,但是大于 2 TB 的磁盘则需要使用 GPT 分区,否则大于 2 TB 的部分将被你封印。 挂载硬盘后,打开系统并以 root 身份登陆。这里博主以 CentOS 6.7 为例,其他 Linux 发行版也是支持 parted 命令的。 我们可以使用 ll /dev/ | grep sd 命令查看当前已挂载的硬盘,如下:

[[email protected] ~]# ll /dev/ | grep sd
lrwxrwxrwx 1 root root 4 Jan 21 03:55 root -> sda3
brw-rw---- 1 root disk 8, 0 Jan 21 04:21 sda
brw-rw---- 1 root disk 8, 1 Jan 21 03:55 sda1
brw-rw---- 1 root disk 8, 2 Jan 21 03:55 sda2
brw-rw---- 1 root disk 8, 3 Jan 21 03:55 sda3
brw-rw---- 1 root disk 8, 4 Jan 21 03:55 sda4
brw-rw---- 1 root disk 8, 5 Jan 21 03:55 sda5
brw-rw---- 1 root disk 8, 6 Jan 21 03:55 sda6
brw-rw---- 1 root disk 8, 7 Jan 21 03:55 sda7
brw-rw---- 1 root disk 8, 8 Jan 21 03:55 sda8
brw-rw---- 1 root disk 8, 9 Jan 21 03:55 sda9
brw-rw---- 1 root disk 8, 16 Jan 21 03:55 sdb
#可以看出,当前系统挂载了两块硬盘,分别被标识为sda和sdb,其中sda包含了9个分区,sdb没有分区

#之前的Linux,会将IDE类型的磁盘命名为hda、hdb...将SATA和SCSI类型的磁盘命名为sda、sdb...
#但是自从2.6.19内核开始,Linux统一将挂载的磁盘命名为sda、sdb...
之后,再使用 fdisk -l 命令查看这两块硬盘,如下。
[[email protected] ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f1e9d

Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 942 7357440 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3 942 1725 6291456 83 Linux
/dev/sda4 1725 2611 7116800 5 Extended
/dev/sda5 1726 1987 2097152 82 Linux swap / Solaris
/dev/sda6 1987 2248 2097152 83 Linux
/dev/sda7 2248 2379 1048576 83 Linux
/dev/sda8 2379 2509 1048576 83 Linux
/dev/sda9 2509 2611 819200 83 Linux

WARNING: GPT (GUID Partition Table) detected on ‘/dev/sdb‘! The util fdisk doesn‘t support GPT. Use GNU Parted.

Disk /dev/sdb: 4398.0 GB, 4398046511104 bytes
256 heads, 63 sectors/track, 532610 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3c613c22

Device Boot Start End Blocks Id System
/dev/sdb1 1 266306 2147483647+ ee GPT
#警告说fdisk不支持GPT磁盘,请使用GNU Parted

#可以使用“fdisk 磁盘名”进入交互模式,之后输入字母i查看Id含义
#82表示Linux Swap;83表示Linux;ee表示GPT

之后,我们就选用 Parted 为 GPT 磁盘分区。

Parted 和 fdisk 一样拥有两种模式:

命令行模式: parted [option] device [command] 交互模式: parted [option] device 以下为具体分区方式

(parted)后字符为输入字符
[[email protected] ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help‘ to view a list of commands.
(parted) p #p=print,查看所有分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt #磁盘类型,为GPT

Number Start End Size File system Name Flags #这里为空,表示没有分区

(parted) mkpart #只输入mkpart开始交互式分区
Partition name? []? primary
File system type? [ext2]? ext4
Start? 0
End? 1024G
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
(parted) mkpart primary 1024G 3072G #通过命令新建分区,mkpart PART-TYPE [FS-TYPE] START END,表示新建一个从1024G开始到3072G结束的大小为2TB的主分区
(parted) mkpart extended ext4 3072G 3500G #中间加入ext4,表示文件系统,分区类型为扩展分区,然并卵,反正他也不会自动格式化
(parted) mkpart primary 3500G -1 #-1表示结束位置在磁盘末尾
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1 17.4kB 1024GB 1024GB primary
2 1024GB 3072GB 2048GB primary
3 3072GB 3500GB 428GB extended
4 3500GB 4398GB 898GB primary
#此时发现“文件系统”一栏为空,表示尚未格式化,之后将进行格式化
(parted) quit #退出parted工具

[[email protected] ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
62504960 inodes, 249999995 blocks
12499999 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7630 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#按同样语句执行mkfs -t ext4 /dev/sdb2、mkfs -t ext4 /dev/sdb3、mkfs -t ext4 /dev/sdb4
之前不在 Parted 工具内执行 mkfs 是因为 Parted 无法将文件系统格式为 ext4 格式。

此时如果使用 fdisk -l 命令,是无法查看到 GPT 磁盘的分区的,而需要使用 parted -l。

[[email protected] ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1 17.4kB 1024GB 1024GB ext4 primary
2 1024GB 3072GB 2048GB ext4 primary
3 3072GB 3500GB 428GB ext4 extended
4 3500GB 4398GB 898GB ext4 primary

此时磁盘已经成功格式化了,但是没有为其指定挂载点,需要查看如何设定挂载点,请看文章末尾

MBR 磁盘分区:

MBR 磁盘分区方法和 GPT 磁盘可谓是一模一样…MBR 磁盘不能大于 2 TB,否则将会强制只使用 2 TB。 主要步骤和 GPT 磁盘分区一样,但是 MBR 磁盘分区有一点需要注意下:

(parted) p
Error: /dev/sdb: unrecognised disk label
#若出现以上错误,表示MBR磁盘没有主引导记录,需要将磁盘转换为MBR,命令为:
(parted) mklabel msdos
#msdos就是MBR磁盘,此时(parted) p将不会报错

挂载磁盘:

格式化硬盘后,需要为每个分区设置挂载点,有两种方式:一种是临时挂载,重启失效;另一种开机自动挂载。 请分别为所有分区设置挂载点。

mkdir /build
#挂载前先建立需要挂载的文件夹名,可以自行定义

#临时挂载,重启失效
mount /dev/sdb1 /build
#挂载,根据实际情况自行修改

#开机自动挂载,以下两种方式二选一
#第一种,麻烦
blkid | grep /dev/sdb1
#查看分区的UUID
echo ‘UUID=XXXXXXXXXXXX /build ext4 defaults 1 2‘ >> /etc/fstab
#将分区的UUID填充在XXXXX位置
#第二种,简单
echo ‘/dev/sdb1 /build ext4 defaults 1 2‘ >> /etc/fstab

umount /dev/sdb1
#此命令用于取消挂载
#注意:有时候会遇到无法卸载的情况,遇到这种情况的原因是因为有其他用户或进程正在访问该文件系统导致的。在Linux系统中,只有当该文件系统上所有访问的用户或进程完成操作并退出后,这个文件系统才能被正常卸载
#使用命令“lsof 挂载点”查看哪些进程正在访问该文件系统,之后使用kill命令将进程杀死来进行卸载

此时,挂载已经设置完成,重启后,可以通过 df 命令查看挂载状态。

原文来自:http://www.linuxprobe.com/parted-gpt-mkfs.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-10-18 12:29:00

遇到大容量磁盘你该怎么办?的相关文章

大容量磁盘使用XFS文件系统

安装xfs工具 yum install -y xfs* 分区 partedprintmklabel gptmkpart 使用xfs格式化 mkfs.xfs /dev/sdc1mkdir data 挂载 mount -t xfs /dev/sdc1 /data 使重启挂载生效 #vi /etc/fstabtmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs default

大容量磁盘分区表、文件系统、分区工具的选择

随着大数据时代的来临,磁盘介质越来越廉价,海量存储概念已经深入人心,以前我们接触到的存储容量可能几10G,几100G,最多几个T,现在动不动就是几10T,上100T,甚至PB级容量,如此大的存储容量对于运维人员来说也带来了很多新的挑战,如何根据业务需求选购合适的阵列柜,大容量服务器,选择什么样的RAID,如何对磁盘空间进行规划,选择什么样的分区表,选择什么样的文件系统,选择合适的格式化工具都非常重要,因为我们会发现,管理小容量存储方式对于海量存储已经不再适用,运维人员面临新的技术挑战.这里面涉及

CentOS下挂载大容量磁盘

在CentOS系统中,磁盘的分区通常会使用Fdisk以及Parted这俩命令来操作.但是Fdisk只能支持2TB以内的磁盘分区,也就是说超过2TB就无法识别了.Parted & GPT命令在有这种大容量磁盘需求的CentOS环境中可以解决这个问题(个人理解类似于Windows的NTFS和FAT32分区).下面实际演示下怎么使用这个命令来挂载大于2TB的磁盘的.如下图所示,已经给虚拟机挂在了一块4TB的磁盘,但在系统中使用df –H命令看不到该磁盘. 进入CentOS操作系统界面,使用parted

服务器安装操作系统大容量磁盘系统规划

问题原由:在服务器做系统的时候,当做好的阵列所有磁盘的容量大于2TB或者2TB以上的时候,就会出现大于2TB的磁盘容量在系统中无法显示,以至于浪费或者不能很好利用. 解决方法:在服务器BIOS中将启动模式修改为UEFI.(有两种解决方案) 在BIOS中把启动改成UEFI模式,此时磁盘分区表已经建立了, 也要重做下RAID,再装系统: 大的虚拟磁盘在安装系统过程中, 不要去分区:系统安装完后,在磁盘管理中把大的磁盘转化成GPT,再做分区即可: 需要重做下RAID,再装系统.(前题:需要在服务器上做

linux 大容量磁盘分区工具parted

1. Msdos和Gpt的区别 fdisk  :只能分msdos分区parted :可以分msdos和gpt分区 2. MSDOS特点最大支持2TB卷大小.每个磁盘最多只能有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑分区).Linux系统下可以使用fdisk\cfdisk对该分区类型进行操作. 3. GPT特点GPT支持磁盘大小达到了18EB(1EB=1024PB=1,048,576TB),但需要注意的是,单一分区的磁盘大小还受文件系统类型的限制,比如NTFS文件系统最大只支持256T

partd解决超过2T大容量磁盘简单操作!

问题: 由于传统的MBR方式存储分区表的方 式缺陷,将可能导致很多分区工具不能正确地读取大于2TB容量的硬盘而无法正常分区大容量硬盘. 其实linux在很早就已经有相关的工具来化解这个问题了,那就是parted. parted是类似fdisk的命令行分区软件,下面我在linux系统中有一块未分区的硬盘挂载为/dev/sdb,下面以实例的方式来讲解如何使用 parted: fdisk -l常见警告: WARNING: GPT (GUID Partition Table) detected on '

使用parted划分大容量磁盘

parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区,fdisk命令对于大于2T的分区无法划分,所以用fdisk无法看到parted划分的GPT格式的分区. Parted 命令分为两种模式:命令行模式和交互模式. 1.命令行模式: parted [option] device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用. 2.交互模式:parted [option] device 类似于使用fdisk /dev/xxx M

磁盘的组成

  磁盘的组成 作者:Jack.X 归档:学习笔记 2017/4/10 磁盘 第1章 知识扩展: 1.1 如何同时创建多个用户并设置规定的密码 如何批量创建stu01到stu10,10个用户然后修改密码123456 [第一个里程碑]:创建一个用户并修改密码 [[email protected] ~]# useradd stu01 [[email protected] ~]# echo 123456 |passwd --stdin stu01Changing password for user s

HDD磁盘,非4K无以致远

机械硬盘的未来要靠高容量作为依托,在财报中,希捷表示未来18个月内它们将推出14和16TB机械硬盘,而2020年20TB机械硬盘就将诞生.也有资料显示,3.5英寸100TB硬盘大概在2025年就能面世.因此,机械硬盘与固态硬盘的拉锯战恐怕还会继续打下去. 3.5寸6TB以上容量等大容量磁盘,都采用4K扇区磁盘,所以4K扇区磁盘技术是大容量磁盘的技术载体.前一段时间,分享过一篇文章vSAN 6.5解耦vSphere让存储更任性,里面提到4K磁盘,很多读者问我关于4K磁盘的问题,今天花时间跟大家分享