LINUX

关注公众号 jb51net

关闭
操作系统 > LINUX >

在Linux系统下用parted命令管理GPT分区的教程

China_OS

先来温习一下GPT的概念:
GUID磁碟分割表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。
GUID磁碟分割表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。对于那些扇区为512字节的磁盘,MBR分区表不支持容量大于2.2TB(2.2 × 10^12字节)的分区,然而,一些硬盘制造商(诸如希捷和西部数据)注意到了这个局限性,并且将他们的容量较大的磁盘升级到了4KB的扇区,这意味着MBR的有效容量上限提升到了16 TB。 这个看似“正确的”解决方案,在临时地降低了人们对改进磁盘分配表的需求的同时,也给市场带来了关于在有较大的块(block)的设备上从BIOS启动时,如何最佳的划分磁盘分区的困惑。GPT分配64bits给逻辑块地址,因而使得最大分区大小在2^64-1个扇区成为了可能。对于每个扇区大小为512字节的磁盘,那意味着可以有9.4ZB(9.4 x 10^21字节)或18 E 个512字节(9,444,732,965,739,290,426,880字节 或 18,446,744,073,709,551,615(2^64-1)个扇区 x 512(=2^9)字节每扇区)。

parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区,fdisk命令对于大于2T的分区无法划分,所以用fdisk无法看到parted划分的GPT格式的分区。

       Parted 命令分为两种模式:命令行模式和交互模式。

       1、命令行模式: parted [option] device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。

       2、交互模式:parted [option] device 类似于使用fdisk /dev/xxx

       MBR:MBR分区表(即主引导记录)大家都很熟悉。所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区

       GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。

       parted是一个可以分区并进行分区调整的工具,他可以创建,破坏,移动,复制,调整ext2 linux-swap fat fat32 reiserfs类型的分区,可以创建,调整,移动Macintosh的HFS分区,检测jfs,ntfs,ufs,xfs分区。

    使用方法:parted [options] [device [command [options...]...]]

    options

    -h  显示帮助信息

    -l  显示所有块设备上的分区

    device

    对哪个块设备进行操作,如果没有指定则使用第一个块设备

    command [options...]


check partition

    对分区做一个简单的检测


cp [source-device] source dest

    复制source-device设备上的source分区到当前设备的dest分区


mklabel label-type

    创建新分区表类型,label-type可以是:"bsd", "dvh", "gpt",  "loop","mac", "msdos", "pc98", or "sun" 一般的pc机都是msdos格式,如果分区大于2T则需要选用gpt格式的分区表。


mkfs partition fs-type

    在partition分区上创建一个fs-type文件系统,fs-type可以是:"fat16", "fat32", "ext2", "linux-swap","reiserfs" 注意不支持ext3格式的文件系统,只能先分区然后用专有命令进行格式化。


mkpart part-type [fs-type] start end

    创建一个part-type类型的分区,part-type可以是:"primary", "logical", or "extended" 如果指定fs-type则在创建分区的同时进行格式化。start和end指的是分区的起始位置,单位默认是M。

    eg:mkpart  primary  0  -1   0表示分区的开始  -1表示分区的结尾  意思是划分整个硬盘空间为主分区


mkpartfs part-type fs-type start end

    创建一个fs-type类型的part-type分区,不推荐使用,最好是使用mkpart分区完成后使用mke2fs进行格式化。


name partition name

    给分区设置一个名字,这种设置只能用在Mac, PC98, and GPT类型的分区表,设置时名字用引号括起来


select device

    在机器上有多个硬盘时,选择操作那个硬盘


resize partition start end

    调整分区大小


rm partition

    删除一个分区


rescue start end

    拯救一个位于stat和end之间的分区


unit unit

    在前面分区时,默认分区时数值的单位是M,这个参数卡伊改变默认单位,"kB", "MB",  "GB",  "TB"


move partition start end

    移动partition分区

  

print
  显示分区表信息 
quit
退出parted

    实战:

1  初始信息
20151117111728201.jpg (1075×580)

注意绿框可以看到fdisk并不支持GPT格式的分区,然后输入命令p(print的简写)可以看到系统目前的所有分区

2  连续划分三个大小为10G的主分区,不指定分区的文件系统类型,parted是划分后直接生效,没有fdisk中类似的w命令。
20151117111747893.jpg (604×598)

可以看到新分区3 4 5 都是主分区 大小10G

3  也可以用非交互模式查看分区状况
20151117111817833.jpg (579×276)


4  准备格式化新分区为ext3类型的文件系统
20151117111835259.jpg (646×101)

突然发现找不到此分区,很奇怪

5  查看已有的分区名称
20151117111855623.jpg (659×273)

使用blkid查看已有的分区是什么name
20151117111928687.jpg (708×159)


6  格式化后挂载新分区
20151117112001909.jpg (684×143)20151117111947583.jpg (550×202)