Linux系统默认情况下只支持挂载2TB以下的磁盘挂载,超过2TB默认也只显示挂载2TB。如果想要挂载超过2TB的磁盘,需要先把磁盘转换为gpt大分区格式。
本文介绍两种方式,通过举例说明如何在Centos7系统下将4TB大小的目录挂载到/home目录下
注意:所有操作均需要在root环境下运行。
MBR分区表:(MBR含义:主引导记录)
所支持的最大卷:2T (T: terabytes,1TB=1024GB)
对分区的设限:最多4个主分区或3个主分区加一个扩展分区
分区命令:fdisk
GPT分区表:(GPT含义:GUID Partition Table,即GUID分区表)
支持最大卷:18EB,(E:exabytes,1EB=1024TB)
每个磁盘最多支持128个分区
分区命令:parted
所以如果要大于2TB的卷或分区就必须得用GPT分区表
mkdir /home # 创建/home目录
通过fdisk -l命令查看硬盘设备信息与大小
可以看到如下信息:
[root@localhost home]# fdisk -l
磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
以上信息我们知道要挂载的硬盘为/dev/sdb
mkfs -t ext4 /dev/sdb
该命令会对整个磁盘进行格式化,如果新硬盘没有分区过,可以不执行该操作。
由于fdisk仅支持2T以内硬盘分区,当大于2T时,需要使用parted命令进行GPT格式分区。
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt # 把sdb改成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) mkpart primary 0 4000GB # 创建分区
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? cancel # 输入cancel取消
[root@localhost ~]# cat /sys/block/sdb/queue/optimal_io_size
0
[root@localhost ~]# cat /sys/block/sdb/queue/minimum_io_size
4096
[root@localhost ~]# cat /sys/block/sdb/alignment_offset
0
[root@localhost ~]# cat /sys/block/sdb/queue/physical_block_size
4096
[root@localhost ~]#
如果optimal_io_size不为0,则使用对应值带入下列式子
(optimal_io_size + alignment_offset)/physical_block_size
计算出即为主分区起始位置的合理值
如果ptimal_io_size为0,则可以直接使用起始扇区默认值2048即可
即 (parted) primary 2048s -1
(parted) mkpart primary 2048s 100% # 创建主分区,命令是mkpart primary <起始地址> <空间大小/空间占用比例>
(parted) print # 查看硬盘信息
Model: LSI Logical Volume (scsi)
Disk /dev/sdb: 4000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 4000GB 4000GB primary
(parted) align-check optimal 1 # 检查是否对齐(如有多个分区,均需检查),下面返回的1 aligned表示已经对齐
1 aligned
(parted) quit
信息: You may need to update /etc/fstab.
[root@localhost ~]#
[root@localhost ~]# mkfs.ext4 -F /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244146176 inodes, 976562432 blocks
48828121 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=3124756480
29803 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
[root@localhost ~]# mount /dev/sdb /home
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 382G 12G 371G 3% /
devtmpfs devtmpfs 63G 0 63G 0% /dev
tmpfs tmpfs 63G 0 63G 0% /dev/shm
tmpfs tmpfs 63G 10M 63G 1% /run
tmpfs tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 xfs 32G 145M 32G 1% /boot
tmpfs tmpfs 13G 0 13G 0% /run/user/0
/dev/sdb ext4 3.6T 89M 3.4T 1% /home # 这个就是我们新挂载的目录
[root@localhost ~]#
编辑/etc/fstab文件,在最后一行添加:
/dev/sdb /home ext4 defaults 1 2
mkdir /home # 创建/home目录
通过fdisk -l命令查看硬盘设备信息与大小
可以看到如下信息:
[root@localhost home]# fdisk -l
磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
以上信息我们知道要挂载的硬盘为/dev/sdb
mkfs -t ext4 /dev/sdb
该命令会对整个磁盘进行格式化,如果新硬盘没有分区过,可以不执行该操作。
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt # 把sdb改成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) quit # 退出parted模式
信息: You may need to update /etc/fstab.
[root@localhost home]#
[root@localhost home]# fdisk /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
分区号 (1-128,默认 1):
第一个扇区 (34-7812499422,默认 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-7812499422,默认 7812499422):
已创建分区 1
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost home]#
再次查看分区格式,我们看到磁盘标签类型:gpt
[root@localhost home]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt ###### 我们可以看到这时候分区类型为gpt大分区格式了
Disk identifier: 9ACA046A-E5C8-4745-91FC-D0962765E12C
# Start End Size Type Name
1 2048 7812499422 3.7T Linux filesyste
[root@localhost home]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244146176 inodes, 976562171 blocks
48828108 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=3124756480
29803 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost home]#
[root@localhost home]# mount /dev/sdb1 /home
检查是否挂载成功,挂载磁盘大小是否正确
[root@localhost home]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 350G 12G 339G 4% /
devtmpfs devtmpfs 55G 0 55G 0% /dev
tmpfs tmpfs 55G 0 55G 0% /dev/shm
tmpfs tmpfs 55G 10M 55G 1% /run
tmpfs tmpfs 55G 0 55G 0% /sys/fs/cgroup
/dev/sda1 xfs 32G 145M 32G 1% /boot
tmpfs tmpfs 11G 0 11G 0% /run/user/0
/dev/sdb1 ext4 3.6T 89M 3.4T 1% /home # 这时候我们看到已经是4TB大小了
修改系统挂载硬盘的文件,在文件/etc/fstab中增加如下内容,其中0 0 表示在在开机时不对分区进行检查
/dev/sdb1 /home ext4 defaults 0 0