新西兰服务器

Linux下如何使用parted命令对磁盘进行分区


Linux下如何使用parted命令对磁盘进行分区

发布时间:2022-01-29 16:28:04 来源:高防服务器网 阅读:78 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“Linux下如何使用parted命令对磁盘进行分区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何使用parted命令对磁盘进行分区”这篇文章吧。

parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

GPT 磁盘分区:

首先,你得有一块 GPT 分区的硬盘。小于 2 TB 的磁盘也可以转为 MBR 磁盘,但是大于 2 TB 的磁盘则需要使用 GPT 分区,否则大于 2 TB 的部分将被你封印。

挂载硬盘后,打开系统并以 root 身份登陆。这里博主以 CentOS 6.7 为例,其他 Linux 发行版也是支持 parted 命令的。

我们可以使用 ll /dev/ | grep sd 命令查看当前已挂载的硬盘,如下:

[root@localhost ~]# ll /dev/ | grep sdlrwxrwxrwx 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 命令查看这两块硬盘,如下。  [root@localhost ~]# fdisk -lDisk /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)后字符为输入字符  [root@localhost ~]# parted /dev/sdbGNU 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 #磁盘类型,为GPTNumber 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工具[root@localhost ~]# mkfs -t ext4 /dev/sdb1mke2fs 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: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis 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。

[root@localhost ~]# parted -lModel: 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#查看分区的UUIDecho '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 命令查看挂载状态。

以上是“Linux下如何使用parted命令对磁盘进行分区”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注高防服务器网行业资讯频道!

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[