Hard-Drive

將整個硬碟驅動器轉換為 LVM,無需外部儲存

  • February 24, 2022

最近,我的 2TB 硬碟空間不足,所以我又買了一個來補充它。我的舊驅動器安裝在特定文件夾中(沒有系統文件或任何東西)。從技術上講,我可以只創建一個新文件夾並將其用作新驅動器的掛載點,但如果我可以使用 LVM 將兩個驅動器組合起來,這樣只有一個掛載點,那就更簡潔了。

有沒有辦法將我現有的 2TB 驅動器轉換為 LVM live?我沒有任何外部儲存可用作傳輸介質,也沒有任何其他備份介質足夠,所以我需要一種方法來轉換它而不實際刪除它上面的任何東西(並且驅動器已滿,所以我無法創建一個新的分區並將其用作備份)。

不,您無法將現有的完整驅動器轉換為 LVM,而無需將數據臨時移動到其他地方。您需要在驅動器上創建一個或多個新分區,然後pvcreate在新文件系統上執行以創建 LVM 物理卷。然後在此之上創建並啟動一個卷組,依此類推

但是,你說你買了一個新驅動器,所以我假設它至少有 2TB,對吧?如果您可以讓兩個驅動器同時在系統中執行,這將為您提供遷移路徑。

首先,將新的大驅動器連接為您的第二個(我假設是 sata)驅動器。它將作為 /dev/sdb 出現在系統上。使用 fdisk 在其上創建兩個分區。一個應該是一個小的引導分區,一個演出可能就足夠了。將其餘部分用於新的 lvm 分區。使用 lvm 工具(pvcreate、vgcreate 等)在第二個驅動器上設置 LVM。將小引導分區留空。

關閉機器並斷開舊的 2TB 驅動器。將新驅動器移至主 sata 介面,或使用 bios 將其設為主驅動器。使用安裝 DVD 引導機器。僅在您創建的小引導分區上安裝新的 linux 系統。

一旦你有這個工作,重新連接你的原始驅動器,現在在輔助 sata 通道上。啟動系統並將新的基於 LVM 的文件系統配置為 /newdrive(請記住,現在在 /dev/sda 上)。將舊驅動器安裝在/olddrive.

將舊硬碟驅動器上的所有數據複製到新驅動器上,方法是使用 rsync 之類的東西將 /olddrive 的內容複製到 /newdrive。現在您已將所有數據轉換到新的 LVM 文件系統。

現在是可怕的部分:擦除您的原始驅動器。仔細考慮這一點,因為如果您擦除了錯誤的設備,您將失去所有原始數據。也許您可以從其他人那裡借用另一個驅動器作為臨時備份?

原始驅動器為空白後,使用 pvcreate 將其設置為 LVM 設備。然後,您可以使用 vgextend 和 lvresize 將您的 LVM 卷組擴展到該新設備上。這可以在系統執行時完成,並且不會影響您在新驅動器上的數據。完成該操作後,您將擁有一個 4TB 的捲組。您可以在生成的文件系統上使用 resizefs 以使其填滿整個空間。

請注意,有很多方法可以搞砸這個操作,但它是可行的。我強烈建議您以某種方式進行額外的備份。另請注意,在兩個獨立驅動器之上執行的一個巨大卷組不是很健壯 - 如果一個驅動器發生故障,您可能會失去大量數據。一個更好的主意通常是在兩個鏡像驅動器的零陣列陣列上執行 lvm。這樣,您只能獲得 2TB 的空間,但一個驅動器當機並不會導致一切完全失敗。以下是我前一段時間執行 LVM 遷移的方​​式,以供參考。

另一種選擇是在機器中安裝第三個驅動器並將其僅用於引導。這使事情變得更簡單一些,因為您不必在引導設備上設置單獨的正常和 lvm 分區。實際上,現代 Linux 發行版可能已經解決了這個問題,但幾年前我知道像 grub 這樣的引導載入程序無法與 lvm 一起使用,所以你總是不得不從非 lvm 設備啟動。

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