Partition

調整分區 fdisk 大小失敗,參數無效

  • May 1, 2021

我最近通過主機的控制面板將 VPS 從 50GB SSD 調整為 300GB SSD。我現在正在嘗試使用 fdisk 調整主分區的大小,以便能夠使用所有新空間。但是,fdisk 在啟動時給了我一個警告:

GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).
GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).

當我從 50GB 增加到 300GB 時,很明顯它是之前大小的六倍。所以,我決定按照提示寫表格……

Command (m for help): w
GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument

..這不起作用。儘管有很多搜尋查詢,但我在任何地方都找不到導致該錯誤的原因。我不使用 LVM,我的分區表如下所示:

Disk /dev/vda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 30D92031-0C13-42FF-AC16-D34F36DD3907

Device        Start       End  Sectors Size Type
/dev/vda1      2048     32767    30720  15M BIOS boot
/dev/vda2     32768  16809983 16777216   8G Linux swap
/dev/vda3  16809984 104857566 88047583  42G Linux filesystem

請注意磁碟如何將其顯示為 300GiB,因此它確實可以辨識大小變化。

我設法很簡單地解決了這個問題。我安裝了 parted,當我執行它時它告訴我分區表沒有覆蓋整個磁碟(duh),所以它問我Fix/CancelFix. 顯然,這起到了作用,因為我能夠使用 將分區修改為完整大小sudo fdisk /dev/vda,但之後我確實需要執行sudo resize2fs /dev/vda3以應用更改。

問題是保護性 MBR (PMBR) 太小。您可以使用以下方法更改保護 MBR:

  1. x額外功能
  2. M進入保護/混合 MBR
  3. p允許顯示保護 MBR)
  4. r返回主菜單(仍處於保護 MBR 模式!)
  5. d刪除錯誤大小的保護 MBR 分區
  6. n創建一個新分區和 4xenter以接受預設設置(主、分區號 1 和完整大小)
  7. t並將ee類型更改為 GPT
  8. x額外功能
  9. M離開保護/混合 MBR 模式
  10. r返回主菜單(現在再次處於 GPT 模式)
  11. w來寫

這樣我就可以修復 GPT PMBR 大小不匹配的問題。

為了解決磁碟標籤問題,我必須使用轉儲分區表O並將導出腳本中的 last-lba 更改為中報告的磁碟大小fdisk,減去 34(對於輔助 GPT)。然後我使用重新導入腳本I

引用自:https://serverfault.com/questions/716270