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, 在单一block为4KB的系统中最高可达128MB[1]。单一inode中可储存4笔Extent;超过四笔的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磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,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重启安装系统。