Parted分区

         传统分区工具fdisk虽然很好用,但是是一个交互式操作工具,如果要在脚本中调用的话,就有困难了。所以我们需要一个非交互式工具,那么就可以用gnu parted分区工具,而且此工具可以管理大于2TB的磁盘,而fdisk则不可以。

         Fdisk命令对于大于2T的分区无法划分,而parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区.这是为什么呢.下面得首先了解MBR和GPT.

         MBR 是英文Master Boot Record的缩写, 又叫做主引导扇区 。是计算机开机后访问硬盘时所必须要读取的首个扇区,所以硬盘的0柱面0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre- boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,其中64字节是分区表,最后两个字节是分区结束标记,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。      

         MBR是由分区程序(如Fdisk,Parted)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。

         从MBR的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主分区(Primary partition)的一种,但它与主分区的不同在于理论上他又可以划分为无数个逻辑分区,每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)。

        在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。

        在MBR分区表中,只能识别出2T的分区空间,且每个分区的起始柱面必须在这个硬盘的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT。

       GPT全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限。

        

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

1. 命令模式  parted [options] [device [command [options...]...]]

2、交互模式:parted [option] device 


       Parted是一个磁盘分区和分调整程序,它允许你创建,销毁,调整,移动,复制ext2,ext3,linux-swap,  FAT, FAT32,reiserfs分区,它可以创建、调整, 移动Macintosh HFS分区,以及检测jfs,ntfs,ufs,  xfs分区。这有助于创建新的操作系统的空间,重组磁盘使用情况,和复制数据到新硬盘。

OPTIONS

 -h                                        输出帮助信息

 -i, --interactive                      给用户输出提示信息

 -l, --list                                列出分区在所有块设备

 -m, --machine                       显示机器可解析输出

 -s, --script                           不给用户输出提示信息

 -v, --version                         显示版本


COMMANDS

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

[command [options]]
    
check partition                                    做一个简单的检查分区
                    .
cp [source-device] source dest              复制源分区文件系统所在设备到目标分区设备

mkfs partition fs-type                           创建一个文件系统在分区上,文件系统类型可以是,"fat16", "fat32","ext2""linux-swap", or  "reis‐erfs".

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

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

mkpartfs part-type fs-type start end       创建一个fs-type类型的part-type分区         

move partition start end                        移动partition分区                      

name partition name                            设置一个分区的名字,这个选项只工作在Mac, PC98, and GPT的分区表,这个名字可以放在引号中.

print                                                  显示分区表信息

quit                                                   退出parted

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

rm partition                                        删除一个分区

select device                                      选择要编辑的设备

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


下面使用parted命令模式给2T硬盘分区

这里使用了msdos 分区标签类型,如果大于2T,使用gpt.

parted -s /dev/sda mklabel msdos
parted -s /dev/sda mkpart primary 1 30G
[email protected]:~# parted -l
Model: DELL PERC H700 (scsi)
Disk /dev/sda: 1797GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  30.0GB  30.0GB  primary  ext3 
[email protected]:~# parted -s /dev/sda mkpart extended 30G 1797G
[email protected]:~# parted -l
Model: DELL PERC H700 (scsi)
Disk /dev/sda: 1797GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  30.0GB  30.0GB  primary   ext3              
 2      30.0GB  1797GB  1767GB  extended               lba  


[email protected]:~# parted -s /dev/sda mkpart logic 30G 38G
[email protected]:~# parted -s /dev/sda mkpart logic 38G 1380G
[email protected]:~# parted -s /dev/sda mkpart logic 1380G 1588G
[email protected]:~# parted -s /dev/sda mkpart logic 1588G 1797G
[email protected]:~# parted -l
Model: DELL PERC H700 (scsi)
Disk /dev/sda: 1797GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  30.0GB  30.0GB  primary   ext3              
 2      30.0GB  1797GB  1767GB  extended               lba  
 5      30.0GB  38.0GB  7995MB  logical                     
 6      38.0GB  1380GB  1342GB  logical                     
 7      1380GB  1588GB  208GB   logical                     
 8      1588GB  1797GB  209GB   logical                     


由于使用的是msdos,所以fdisk是可以看到分区情况,如果使用gpt,fdisk会看不到.
[email protected]:~# fdisk -l

Disk /dev/sda: 1796.6 GB, 1796638507008 bytes
255 heads, 63 sectors/track, 218428 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000538b6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        3648    29295616   83  Linux
/dev/sda2            3649      218428  1725220350    f  W95 Ext'd (LBA)
/dev/sda5            3649        4620     7807558+  83  Linux
/dev/sda6            4621      167775  1310542506   83  Linux
/dev/sda7          167776      193063   203125828+  83  Linux
/dev/sda8          193064      218428   203744331   83  Linux

之后进行格式化挂载

[email protected]:~# mkswap /dev/sda5
Setting up swapspace version 1, size = 7994933 kB
no label, UUID=b1637a79-6bda-40f8-97d3-92c8a358e31d
[email protected]:~# mkfs.ext3 /dev/sda6
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
81911808 inodes, 327635626 blocks
16381781 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
9999 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 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.







你可能感兴趣的:(parted)