本技術文件介紹如何在運行於香港VPS或香港伺服器的Linux虛擬機中,解決大於2TB資料磁碟無法調整主啟動記錄(MBR)分區大小的問題。本方法通過將分區表從MBR轉換為GUID分區表(GPT)來突破MBR的容量限制,適用於常見的Linux發行版。
**問題描述**
在嘗試使用`fdisk`指令調整大於2TB的MBR分區大小時,會出現以下錯誤提示:
“`
此磁碟大小為8.8 TB(8796093022208位元組)。對於512位元組扇區的卷大於2TB,DOS分區表格式無法使用。建議使用parted(1)和GUID分區表格式(GPT)。
“`
此問題源於MBR的32位定址限制,導致512位元組扇區磁碟的最大分區容量為2TB(對於4Kn設備則為16TB)。以下步驟將指導您將分區轉換為GPT以解決此限制。
**前提條件**
– 本方法適用於受支援的Linux發行版,如Red Hat、Ubuntu或SUSE。
– 在操作前,必須備份資料磁碟上的所有資料,以防資料遺失。
– 本流程僅適用於資料磁碟,不可用於作業系統(OS)磁碟,否則可能導致系統無法啟動。
– **對於Red Hat系統,無法在不遺失資料的情況下將MBR轉換為GPT。**
—
**解決方案:將MBR轉換為GPT**
由於GPT分區表沒有MBR的扇區定址限制,建議對大於2TB的磁碟使用GPT。以下是通過`gdisk`工具將MBR分區轉換為GPT的詳細步驟。
**步驟 1:確認當前分區表類型**
執行以下指令檢查磁碟是否使用MBR分區表:
“`bash
sudo fdisk -l /dev/sdd | grep -i type
“`
示例輸出:
“`
磁碟標籤類型:dos
“`
輸出顯示磁碟當前使用MBR分區表。
**步驟 2:安裝gdisk工具**
若未安裝`gdisk`,請根據Linux發行版選擇指令安裝:
– **Red Hat 7.x/8.x/9.x 或 SUSE**:
“`bash
sudo yum install gdisk -y
“`
– **Ubuntu**:
“`bash
sudo apt-get install gdisk -y
“`
**步驟 3:停止應用程式並卸載檔案系統**
在修改分區前,停止使用磁碟的應用程式並卸載檔案系統:
“`bash
sudo systemctl stop myapp.service
sudo umount /appext4
“`
> **注意**:請將`myapp.service`和`/appext4`替換為實際的服務名稱和掛載點。
**步驟 4:將分區轉換為GPT**
使用`gdisk`工具將MBR分區轉換為GPT並擴展到完整磁碟容量:
“`bash
sudo gdisk /dev/sdd
“`
操作流程:
1. 查看當前分區表:
“`
Command (? for help): p
“`
輸出:
“`
磁碟 /dev/sdd: 17179869184 扇區, 8.0 TiB
編號 起始扇區 結束扇區 大小 代碼 名稱
1 2048 4294967294 2.0 TiB 8300 Linux檔案系統
“`
2. 刪除現有分區:
“`
Command (? for help): d
使用分區 1
“`
3. 建立新的GPT分區:
“`
Command (? for help): n
分區編號 (1-128, 預設 1): 1
起始扇區 (34-17179869150, 預設 = 2048): 2048
結束扇區 (2048-17179869150, 預設 = 17179869150):
十六進制代碼或GUID (輸入L查看代碼, 預設 = 8300):
“`
4. 寫入變更:
“`
Command (? for help): w
是否繼續?(Y/N): Y
“`
輸出:
“`
寫入新的GUID分區表(GPT)到 /dev/sdd 完成。
操作已成功完成。
“`
**步驟 5:驗證GPT轉換**
確認分區表已轉換為GPT:
“`bash
sudo gdisk -l /dev/sdd | grep -A4 ‘^Partition table scan:’
“`
輸出:
“`
分區表掃描:
MBR: 保護性
BSD: 不存在
APM: 不存在
GPT: 存在
“`
檢查分區大小:
“`bash
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
“`
**步驟 6:修復並調整檔案系統大小**
檢查並修復檔案系統:
“`bash
sudo fsck.ext4 -fy /dev/sdd1
“`
調整檔案系統以使用全部分區容量:
– **ext4檔案系統**:
“`bash
sudo resize2fs /dev/sdd1
“`
– **XFS檔案系統**:
“`bash
sudo xfs_growfs /dev/sdd1
“`
**步驟 7:重新掛載檔案系統**
“`bash
sudo mount /appext4
“`
**步驟 8:驗證最終大小**
“`bash
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
“`
示例輸出:
“`
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT
sdd disk 8T 0
└─sdd1 part ext4 8T 0 /appext4
“`
—
**附加說明**
– 若需擴展磁碟容量,可透過香港VPS或香港伺服器服務供應商的控制面板(如Azure Portal)操作。請注意,調整磁碟大小可能需要停機。
– **操作前務必建立資料磁碟快照**,以防資料遺失。
– 有關大容量儲存解決方案的更多支援,可參考香港伺服器提供的服務。