挂了4T硬盘,只识别2T?90%的Linux新手都踩过这个坑!
你是否遇到过这种迷惑行为:
明明给服务器分配的是4TB磁盘空间,结果
lsblk
一看:可用空间只有2TB!,挂载后查看仍然是2TB,见鬼了,剩下的空间去哪了。
1 问题真相
MBR分区格式的“原罪”。在Linux中,大部分用户习惯用fdisk
或自动挂载脚本快速格式化硬盘。如果没特别指定分区表格式,系统很可能用的是MBR。
而MBR最大只支持2TiB的磁盘容量。超过部分直接被浪费掉!
我们看一下MBR和GPT的对比就一目了然了。
2TB ZB级别(远超4T) 4个主分区 最多128个分区 fdisk
parted
2 正确操作
对于超过2TB的磁盘有两种方式:
直接格式化文件系统,不用分区 使用GPT分区
下面我就将这两种方式的具体操作分享给大家。
【温馨提示】下面的只适用刚格式化的空盘,里面还没有数据,可以直接卸载后删除分区,重新格式化。
2.1 直接格式化文件系统
上面已经将MBR分区删除了,下面就直接格式化文件系统。
[root@localhost ~]# lsblk /dev/vdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdc 252:32 0 4T 0 disk
# 强制格式化/dev/vdc磁盘
[root@localhost ~]# mkfs.xfs /dev/vdc -f
# 将格式化后的磁盘挂载到/dataroot目录下
[root@localhost ~]# mount /dev/vdc /dataroot
# 如果想永久挂载就将信息写入fstab文件中
可以看到有一个4TB的磁盘挂载到 /dataroot目录。直接格式化方式是非常快速的
2.2 使用 parted 创建 GPT 分区表
parted 命令创建pgt分区
[root@dt-oracle-backup ~]# parted /dev/vdc
GNU Parted 3.1
Using /dev/vdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/vdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted)
(parted) mkpart primary xfs 0% 100% # 一次性分配全部空间
(parted)
(parted) print
注意事项:
操作前务必备份数据,分区会清除磁盘所有内容! 替换 /dev/vdc
为你的实际磁盘设备名(通过lsblk
确认)
格式化文件系统
[root@localhost ~]# lsblk /dev/vdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdc 252:32 0 4T 0 disk
└─vdc1 252:33 0 4T 0 part
[root@localhost ~]# mkfs.xfs /dev/vdc1 -f
创建挂载点:
mkdir /dataroot
挂载磁盘:
mount /dev/vdc1 /dataroot
查看挂载效果:
设置开机自动挂载
编辑/etc/fstab
添加一行:
UUID=你的磁盘UUID /dataroot xfs defaults 0 2
3 常见误区合集
fdisk
默认新建的是MBR分区(除非你指定GPT)把大于2T的硬盘挂到老BIOS机器上(不支持GPT启动) 忘记用 mklabel gpt
,分完区还是只有2T!