parted
详解通常我们用的比较多的分区工具是
fdisk
命令,但由于fdisk
只支持MBR分区,所以无法划分大于2T的分区。而parted
工具可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。
GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4 16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT分区方式没有四个主分区的限制,** 最多可达到128个主分区 **。下面我们看下parted命令的用法。
parted [选项]… [设备 [命令 [参数]…]…]
选项 描述 -h –help 显示此求助信息 -l –list 列出所有设别的分区信息 -i –interactive 在必要时,提示用户 -s –script 从不提示用户 -v –version 显示版本
parted交互命令 说 明 check NUMBER 做一次简单的文件系统检测 cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER 复制文件系统到另一个分区 help [COMMAND] 显示所有的命令帮助 mklabel,mktable LABEL-TYPE 创建新的磁盘卷标(分区表) mkfs NUMBER FS-TYPE 在分区上建立文件系统 mkpart PART-TYPE [FS-TYPE] START END 创建一个分区 mkpartfs PART-TYPE FS-TYPE START END 创建分区,并建立文件系统 move NUMBER START END 移动分区 name NUMBER NAME 给分区命名 print [devices|free|list,all|NUMBER] 显示分区表、活动设备、空闲空间、所有分区 quit 退出 rescue START END 修复丢失的分区 resize NUMBER START END 修改分区大小 rm NUMBER 删除分区 select DEVICE 选择需要编辑的设备 set NUMBER FLAG STATE 改变分区标记 toggle [NUMBER [FLAG]] 切换分区表的状态 unit UNIT 设置默认的单位 Version 显示版本
首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdb: ((parted)表示在parted中输入的命令,其他为自动打印的信息)
[root@my-linux ~]# parted /dev/hdb GNU Parted 1.8.1 Using /dev/hdb Welcome to GNU Parted! Type 'help' to view a list of commands.
选择了/dev/hdb作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):
(parted) mklabel New disk label type? gpt (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)
创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? xfs Start? 0 (可以用百分比表示,比如Start? 0% , End? 50%) End? 500GB
分好区后可以使用print命令打印分区信息,下面是一个print的样例
(parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 500GB 500GB dp1
如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果
(parted)rm 1 #rm后面使用分区的号码,就是用print打印出来的Number (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags
在交互状态下,完成以后我们可以使用quit
命令退出parted并使用系统的mkfs
命令对分区进行格式化。
[root@my-linux ~]# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/hdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/hdb: 3841.0 GB, 3841022206976 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 267350 2147482623+ ee EFI GPT [root@my-linux ~]# mkfs.xfs /dev/hdb1 [root@my-linux ~]# mkfs.xfs /dev/hdb2 [root@my-linux ~]# mkdir /data1 /data2 [root@my-linux ~]# mount /dev/hdb1 /data1 [root@my-linux ~]# mount /dev/hdb2 /data2
按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? xfs Start? 0 End? 500GB (parted) mkpart Partition name? []? dp2 File system type? [ext2]? xfs Start? 500GB End? 3841GB (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 500GB 500GB dp1 2 500GB 3841GB 1699GB dp2
parted /dev/sdl mklabel gpt
parted /dev/sdl mkpart primary 0% 100%
parted /dev/sdl print
fdisk -l or lsblk
mkfs -t xfs /dev/sdl1
blkid /dev/sdl1
vi /etc/fstab
编辑/etc/fstab
使开机可知道挂载文件系统。
mount -a df -h
创建gpt分区表
[root@my-linux ~]# parted /dev/sdb mklabel gpt Information: You may need to update /etc/fstab.
划分3个分区
[root@my-linux ~]# parted /dev/sdb mkpart primary 0% 27% Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb mkpart primary 27% 54% Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb mkpart primary 54% 81% Information: You may need to update /etc/fstab.
打印分区
[root@my-linux ~]# parted /dev/sdb print Model: HP LOGICAL VOLUME (scsi) Disk /dev/sdb: 3841GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2097kB 1037GB 1037GB primary 2 1037GB 2074GB 1037GB primary 3 2074GB 3111GB 1037GB primary
删除分区
删除分区的命令是parted /dev/sdb rm 1
其中最后的数字 1 表示分区编号。
[root@my-linux ~]# parted /dev/sdb rm 1 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb rm 2 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb rm 3 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb print Model: HP LOGICAL VOLUME (scsi) Disk /dev/sdb: 3841GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags [root@my-linux ~]#
MBR:MBR分区表(即主引导记录)大家都很熟悉。所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破 MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。