掛了 4T 硬盤,只識別 2T?90% 的 Linux 新手都踩過這個坑!
你是否遇到過這種迷惑行為:
明明給服務器分配的是4TB磁盤空間,結果lsblk一看:可用空間只有2TB!,掛載后查看仍然是2TB,見鬼了,剩下的空間去哪了。
一、問題真相
MBR分區格式的“原罪”。在Linux中,大部分用戶習慣用fdisk或自動掛載腳本快速格式化硬盤。如果沒特別指定分區表格式,系統很可能用的是MBR。
而MBR最大只支持2TiB的磁盤容量。超過部分直接被浪費掉!
我們看一下MBR和GPT的對比就一目了然了。
對比項 | MBR | GPT |
最大支持容量 | 2TB | ZB級別(遠超4T) |
最大主分區數 | 4個主分區 (或3主+擴展+邏輯) | 最多128個分區 |
引導方式 | BIOS | UEFI |
分區表容錯 | 無備份,損壞即掛 | 有主副分區表,自動修復 |
工具支持 | fdisk 、老系統支持更好 | parted 、現代系統推薦 |
是否支持4T硬盤 | 最多只認2TB | 完全支持 |
二、、正確操作
對于超過2TB的磁盤有兩種方式:
- 直接格式化文件系統,不用分區
- 使用GPT分區
下面我就將這兩種方式的具體操作分享給大家。
【溫馨提示】下面的只適用剛格式化的空盤,里面還沒有數據,可以直接卸載后刪除分區,重新格式化。
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. 使用 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
三、常見誤區合集
- fdisk默認新建的是MBR分區(除非你指定GPT)
- 把大于2T的硬盤掛到老BIOS機器上(不支持GPT啟動)
- 忘記用 mklabel gpt,分完區還是只有2T!