Centos

增加磁碟大小並從 MBR 更改為 GPT

  • September 2, 2021

我在 VMware 上有一個 CentOS 伺服器,其中有一個 1.5TB 的磁碟,一個 xfs 分區使用整個磁碟。此磁碟/分區空間不足,因此我需要將其大小增加到 2.5TB。

所以我在VMware上增加了大小並嘗試刪除和添加分區,但失敗了。當然,原來的分區是MBR,新的分區必須是GPT,但是嘗試刪除/添加分區時,轉換失敗。我發現原始分區位於扇區 128,而新分區嘗試從扇區 2048 開始,我試圖對其進行修改,但我不能(我猜是因為 GPT 需要比 MBR 更多的空間?)。

然後我提出了移動原始分區的想法,使其從扇區 2048 開始,將分區轉換為 GPT,然後增加分區的大小。

是否有意義?那可能嗎?特別是移動分區的第一部分。謝謝!

更新 出於格式化原因,這裡是建議命令的輸出: parted /dev/disk unit s print free

Disk /dev/sdb: 5368709120s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Numero  Inicio       Fin          Tamaño       Typo     Sistema de ficheros  Banderas
       63s          127s         65s                   Free Space
1      128s         3259013119s  3259012992s  primary  xfs
       3259013120s  5368709119s  2109696000s           Free Space

所以你有一個從扇區 128 開始的 msdos 分區。

這是不常見的,因為標準將是 MiB 對齊,從扇區 2048 開始(對於 512 字節的邏輯扇區大小)。

使用 GPT,您仍然可以使用起始扇區 128,這不是問題:

# parted /dev/loop0 unit s print free
Model: Loopback device (loopback)
Disk /dev/loop0: 3259017216s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End          Size         File system  Name  Flags
       34s    127s         94s          Free Space
1      128s   3259017182s  3259017055s

但是,parted當您創建它時會向您抱怨:

# parted /dev/loop0
(parted) mklabel gpt
(parted) mkpart                                                           
Partition name?  []?                                                      
File system type?  [ext2]?                                                
Start? 128s                                                               
End? 100%                                                                 
Warning: The resulting partition is not properly aligned for best performance:
128s % 2048s != 0s
Ignore/Cancel? Ignore                                                     

如果您不關心 MiB 對齊(並且由於您的數據已經存在,因此您別無選擇)您可以忽略此警告。128 的起始扇區仍然是 4K 對齊的(64K 對齊的),所以也可以。

GPT 還在磁碟末尾儲存備份,因此末端扇區有時可能是問題所在。但是你很幸運,你的磁碟末尾有 4096 個空閒扇區,所以你的情況沒有問題。否則,在轉換為 GPT 之前,您必須先增加磁碟。

如果要實現 MiB 對齊,則必須移動所有數據。最安全的方法(如果您有足夠的空間)是將其完全複製到新磁碟上。將數據重新定位到適當的位置可能是有風險的。

引用自:https://unix.stackexchange.com/questions/667274