免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 15286 | 回复: 1
打印 上一主题 下一主题

fdisk与parted GPT(GUID Partition Table) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-31 12:37 |只看该作者 |倒序浏览


GPT (GUID Partition Table)


|

|


[/url]
[ 2009/03/29 13:26 | by
[url=http://www.askwan.com/user/1/]askwan

]
       Linux早可以支持大于2T的块设备(Large Block Device),但是分区的时候却不能用常见的fdisk工具了,一定要用的话,会有下面的警告信息:
引用
[root@host2001 data]# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          33      265041   83  Linux
/dev/sda2              34       12781   102398310   83  Linux
/dev/sda3           12782       14056    10241437+  82  Linux swap / Solaris
WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdc: 2500.1 GB, 2500140728320 bytes
255 heads, 63 sectors/track, 303958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

上面提示fdisk工具不支持GPT,得使用另一个GNU发布的强大分区工具parted
官方链接:
http://www.gnu.org/software/parted/index.shtml
若强制用fdisk分区,最后大于2T的部分系统会不能认出来!
而GPT,比较权威的解释是:
引用
In computer hardware, GUID Partition Table (GPT) is a standard for the layout of the partition table on a physical hard disk. It is a part of the Extensible Firmware Interface (EFI) standard proposed by Intel as a replacement for the PC BIOS, one of the few remaining parts of the original IBM PC. EFI uses GPT whereas BIOS uses a Master Boot Record (MBR
下面的图说明了其结构:


要详细了解这家伙,这篇文章或许可以帮助你:
http://developer.apple.com/technotes/tn2006/tn2166.html
关于parted的用法和信息可以参看GUN专门文档:
http://www.gnu.org/software/parted/manual/parted.html
就不演示了。今天正好碰到一客户遇到的这个问题,记下来给准备使用大于2T块设备的l网友一点提示。





Linux下关于大于2T磁盘的使用GPT磁盘 2009-04-25 14:02
分类:linux管理

字号:

大  

中  


我们来看一下两种分区表
MBR分区表:(MBR含义:主引导记录)
所支持的最大卷:2T (T; terabytes,1TB=1024GB)
对分区的设限:最多4个主分区或3个主分区加一个扩展分区(扩展分区中支持无限制的逻辑驱动器)
GPT分区表:(GPT含义:GUID分区表)
支持最大卷:18EB,(E:exabytes,1EB=1024TB)
每个磁盘最多支持128个分区
假设要用parted对/dev/sdb(大小为6000G)进行分区操作:
1、进入系统执行:
#parted /dev/sdb
2、建立磁盘label:
mklabel GPT
3、按p键,查看磁盘可用空间,显示单位为M。6000G应该显示大致
为: /dev/sdb 的磁盘几何结构:0.000-6000000.000 兆字节
4、创建分区:
在(parted)后输入:
mkpart并按照提示操作
分区类型? primary/主分区/extended/扩展分区? p (如果要创建扩展分区 此处
输入e)
文件系统类型? [ext2]? (这里直接回车,分区创建完毕后通过mkfs.ext3
/dev/sdb*建立文件系统)
起始点?0
结束点?-1
5、按p键查看刚创建的分区是否已经成功。
6、如果成功,键入quit退出parted。
7、使用mkfs.ext3 /dev/sdb1 来创建文件系统

fdisk命令虽然很交互,操作也方便,但是对于大于2T的磁盘无法操作,如果我们想用大于2T的磁盘怎么办?可以把磁盘转化为GPT格式。

GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT磁盘没有四个主分区的限制。
但fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作。
parted功能很强大,既可用命令行也可以用于交互式
在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择
parted>
parted>select sdb                假设磁盘为sdb
parted>mklable gpt               将MBR磁盘格式化为GPT
parted>mklable msdos             将GPT磁盘转化为MBR磁盘
parted>mkpart primary 0 100      划分一个起始位置为0大小为100M的主分区
parted>mkpart primary 100 200    划分一个起始位置为100M大小为100M的主分区
parted>print                     打印当前分区

在parted里边不支持ext3的文件系统,所以如果要使用的话,要退出parted进行格式话
mkfs.ext3 /dev/sdx1
因为fdisk是不支持GPT磁盘,所以不要使用fdisk -l来查看X磁盘刚才分好的区,看不到的。
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 100   划分一个起始位置为0大小为100M的主分区
Acronym for GUID Partition Table
GPT was introduced for iA64 systems, to get around a fixed 32 bit issue (2 to the power of 32 is 4 billion times a 512 byte block equals 2 Terabytes) in the PC-BIOS Partition table. Partitions larger than 2 TB require using a GPT disklabel, which differs from the PC-BIOS Partition table in a number of ways:
    * Is easily extensible.
    * Can contain up to 128 primary partitions, as opposed to 4, so there's no need for extended partitions.
    * Allows Partitions larger than 2 TB.
    * Identifies Partitions with a GUID so you can reference that Partition even if disks are moved around.
    * Identifies Partition type with a GUID, thus avoiding the type conflicts that plague the PC-BIOS Partition table format.
    * Provides a 46(?) character UTF-16 partition label to identify Partitions.
    * Has a "fake" MBR for backwards compatibility.
    * Includes a CRC32 to detect corrupt Partition tables.
    * Stores a backup Partition table at the end of the disk.
Most partitioning tools under Linux will fail to do anything sensible with a > 2 TB Partition. As of this writing, parted(8) is the only one that understands them and will let you set the GPT label on the disk.
There is a lot of information stating that you cannot boot off a GPT enabled device. Most of the claims imply that the fault is with LILO or GRUB not understanding GPT devices. We've not tested this, but GPT and traditional MBRs will coexist.
See also:
    * Disk Sectors on GPT Disks from the MS Knowledge Base
所以在超过2TB时,我不能使用交互很好的Fdisk命令,只能磁盘转化为GPT格式。由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制。
对GPT磁盘分区表进行操作,我们要使用parted命令。其实parted功能很强大,它可以象fdisk一样既可用命令行也可以用于交互式.
下面我们就来实际操作吧,在提示符下输入parted就会进入交互式模式
#  parted  /dev/sdb
GNU  Parted  1.8.1
Using  /dev/sdb
Welcome  to  GNU  Parted!  Type  'help'  to  view  a  list  of  commands.
(parted) mklabel gpt
将MBR磁盘格式化为GPT
(parted) mkpart primary 0 100
划分一个起始位置为0大小为100M的主分区
(parted) mkpart primary 100 200
划分一个起始位置为100M大小为100M的主分区
(parted)  mkpart  primary  0  -1
划分所有空间到一个分区
(parted)  print
打印当前分区
(parted)  quit
可能还会用到的一些命令
(parted) mklable msdos
如果要反过来.将GPT磁盘转化为MBR磁盘
在这样分完分区后,还要使用mkfs.ext3来进行格式化
#partprobe
#mkfs.ext3 -F /dev/sdb1
记的哦,因为fdisk是不支持GPT磁盘,所以使用fdisk -l来查看磁盘刚才的分区是没有用的.
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 100
##划分一个起始位置为0大小为100M的主分区



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/98541/showart_2041968.html

论坛徽章:
0
2 [报告]
发表于 2010-05-02 23:57 |只看该作者
ding
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP