最近在Linux上挂载磁盘阵列,需要对一个7T的盘阵进行分区并使用.这个磁盘阵列划分了一个分区(对于Linux来说找到一个/dev/sda设备,空间大小为7T),我想将它分为N个分区,挂载到系统的N个目录上使用:
在网上找到这个表:
ext2/ext3 with 1 KiB blocksize 16448 MiB (~ 16 GiB) 2048 GiB (= 2 TiB)
ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB)
ext2/3 with 4 KiB blocksize 2048 GiB (= 2 TiB) 8192 GiB (= 8 TiB)
ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha only)
65568 GiB (~ 64 TiB) 32768 GiB (= 32 TiB)
ReiserFS 3.5 2 GiB 16384 GiB (= 16 TiB)
ReiserFS 3.6 (as in Linux 2.4) 1 EiB 16384 GiB (= 16 TiB)
XFS 8 EiB 8 EiB
JFS with 512 Bytes blocksize 8 EiB 512 TiB
JFS with 4KiB blocksize 8 EiB 4 PiB
NFSv2 (client side) 2 GiB 8 EiB
NFSv3 (client side) 8 EiB 8 EiB
使用fdisk命令是无法对这个庞然大物进行分区的,它能认出这个家伙,但驾御不了它.它最多将这个磁盘分配一个2T的分区空间,然后对于剩下的空间就不再识别.
需要使用GNU的parted工具来管理,需要将磁盘格式转为GPT.GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节只留第一个16个字节,类似于扩展分区,真正的partition
table在512字节之后,GPT磁盘没有四个主分区的限制。
parted相对于fdisk来讲,有一个操作上的危险之处,即它不像fdisk一样,最后使用w来真正对磁盘进行操作,而是在交互命令中,直接对磁盘进行了操作.
parted的交互式命令行非常简单:
parted>mklabel gpt 将MBR磁盘格式化为GPT
parted>mkpart primary 0 100
划分一个起始位置为0大小为100M的主分区
parted>mkpart primary 100 200
划分一个起始位置为100M大小为100M的主分区
parted>print 打印当前分区
另外,在分好区后的格式化过程中,如果不加任何参数,直接格式化:
mkfs.ext3 /dev/sda1
那么,是非常慢的,因为默认的环境中,通常是每个块(blocksize)是4k,并且是每4k数据(inode_ratio)就建立一个信息点(inode).具体的应该参考/etc/mke2fs.conf文件,或者man mke2fs.
幸好,我使用这么大的空间是存储大容量的文件,所以我在格式化时,加上了参数-T largefile4,那么是为每4M的数据建立一个inode,当然,还可以扩大它.