首页 > 代码库 > linux分区之gpt(大于2T的分区)

linux分区之gpt(大于2T的分区)

1.文件系统限制:

ext3
块尺寸 最大文件尺寸 最大文件系统尺寸
1KiB  16GiB  2TiB
2KiB  256GiB  8TiB
4KiB  2TiB  16TiB
8KiB  16TiB  32TiB

 

ext4
Extents
ext4引进了Extent档案储存方式,以取代ext2/3使用的block mapping方式。Extent指的是一连串的连续实体block,这种方式可以增加大型档案的效率并减少分裂档案。ext4支援的单一Extent, 在单一block4KB的系统中最高可达128MB[1]。单一inode中可储存4Extent;超过四笔的Extent会以Htree方式被索 引。
最大文件尺寸 16 TiB (for 4k block filesystem)
最大卷容量 1 EiB

 

xfs
最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes

ReiserFS
最大文件尺寸 8 TiB
最大卷容量 16 TiB

 

2.分区操作

 

由于MBR分区表只支持2T磁盘,所以大于2T的磁盘必须使用GPT分区表。GPT格式的磁盘相当于原来MBR磁盘中原来保留4partition table4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table512字节之后,GPT磁盘没有四个主分区的限制。
fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作。
parted功能很强大,既可用命令行也可以用于交互式

注意:parted只可以对没有做过任何分区的空盘做分区。

 

在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择

 

具体方法如下:

 

 

# parted /dev/sdb 

 

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 

 

 

 

redhat 5 为例: 

 

 

 

parted /dev/sdb mklabel gpt。 转换成GPT。 

 

parted /dev/sdb mkpart primary 0 1000000 创建1T的分区。 

 

mkfs -t ext4 /dev/sdb1 

 

mount /dev/sdb1 /mnt/b 

 

这样在linux 系统的mnt目录下挂着大磁盘的分区b。 

 

 开机自己动挂载 

 

 vi /etc/fstab 

 

 /dev/sdb1 /mnt/b auto defaults 0 0 

 

3.装系统是遇到的问题:

例:1块虚拟盘2.5T 在安装系统分区时,把剩余的所有硬盘空间(大于2T)分给一个分区。

 

 

解决办法:在安装系统的grub界面直接进入恢复模式

进入后在shell模式下使用gpt工具,将磁盘转为gpt格式,在reboot重启安装系统。