由于传统的MBR方式存储分区表的方 式缺陷,将可能导致很多分区工具不能正确地读取大于2TB容量的硬盘而无法正常分区大容量硬盘。

其实linux在很早就已经有相关的工具来化解这个问题了,那就是parted。 parted是类似fdisk的命令行分区软件,下面我在linux系统中有一块未分区的硬盘挂载为/dev/sdb,下面以实例的方式来讲解如何使用 parted:


fdisk -l常见警告:

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


安装partd工具:

#yum install parted -y

eg:

[root@node3 ~]# parted /dev/sdb 
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a
        particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted)


命令详解:


检查 MINOR                           #对文件系统进行一个简单的检查 

cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区 

help [COMMAND]                       #打印通用求助信息,或关于 COMMAND 的信息 

mklabel 标签类型                      #创建新的磁盘标签 (分区表) 

mkfs MINOR 文件系统类型               #在 MINOR 创建类型为“文件系统类型”的文件系统 

mkpart 分区类型 [文件系统类型] 起始点 终止点    #创建一个分区 

mkpartfs 分区类型 文件系统类型 起始点 终止点    #创建一个带有文件系统的分区 

move MINOR 起始点 终止点              #移动编号为 MINOR 的分区 

name MINOR 名称                      #将编号为 MINOR 的分区命名为“名称” 

print [MINOR]                        #打印分区表,或者分区 

quit                                 #退出程序 

rescue 起始点 终止点                  #挽救临近“起始点”、“终止点”的遗失的分区 

resize MINOR 起始点 终止点            #改变位于编号为 MINOR 的分区中文件系统的大小 

rm MINOR                             #删除编号为 MINOR 的分区 

select 设备                          #选择要编辑的设备 

set MINOR 标志 状态                   #改变编号为 MINOR 的分区的标志


eg:
[root@node3 ~]# parted /dev/sdb 
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                                                      
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? yes  
--警告用户磁盘上的数据将会被销毁,询问是否继续,我们这里是新的磁盘,输入yes后回车                                                        
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  标志

(parted) mkpart 
分区名称?  []? sdb                                                       
文件系统类型?  [ext2]? ext4                                              
起始点? 0                                                                
结束点? 1074M                                                            
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ignore                                           
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  标志
 1      17.4kB  1074MB  1074MB  ext4         sdb

(parted) quit                                                             
信息: You may need to update /etc/fstab.

                               

[root@node3 ~]# 

[root@node3 ~]# mount /dev/sdb1 /opt/test/
[root@node3 ~]# df -TH
Filesystem           Type     Size  Used Avail Use% Mounted on
/dev/mapper/vg_node3-lv_root
                     ext4      40G  812M   37G   3% /
tmpfs                tmpfs    515M     0  515M   0% /dev/shm
/dev/sda1            ext4     500M   27M  448M   6% /boot
/dev/sr0             iso9660  4.7G  4.7G     0 100% /opt/ren
/dev/sdb1            ext4     1.1G  1.4M  986M   1% /opt/test
[root@node3 ~]#

注意:由于parted内建的mkfs还不够完善,所以完成以后可以使用quit命令退出parted并使用系统的mkfs命令对分区进行格式化了,此时如果使用fdisk -l命令打印分区表会出现警告信息,这是正常的。

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

wKiom1fY6VHiCVtXAABlyBhoCj0723.png-wh_50


如果要创建主分区和扩展分区:

fdisk -l 查看磁盘信息

parted /dev/sdb  使用parted工具操作磁盘/dev/sdb

mktable gpt  或者 mklabel gpt 把磁盘/dev/sdb 格式化为 gpt分区表

mkpart primary  0MB 100MB  创建一个50M大小的主分区

mkpart extended 100MB 200MB 创建一个50M大小的扩展分区

rm 1 删除number为1 的分区

print 显示磁盘 /dev/sdb的相关信息

help  显示帮助命令

退出parted命令,在linux命令行窗口对分区进行格式化

mkfs.ext4 /dev/sdb2 格式化磁盘/dev/sdb的第二个分区为ext4格式的分区

磁盘自动挂载

vim /etc/fstable

/dev/sdb2 /opt/test ext4  defaults   1 2


最后分享一下我朋友写的一篇和此相关的博客:http://xinzong.blog.51cto.com/10018904/1750472