試圖將安裝在 LVM 上的 Linux 移動到新磁碟
我在卷組中有兩個物理磁碟(每個 1TB)的 LVM 驅動器上安裝並引導 Linux Mint。我已經購買了一個新的硬碟驅動器 (4TB),我想複製整個東西並從新磁碟啟動它。
當根文件系統位於 LVM 驅動器上時,我真的很難找到有關此過程的說明。
我按照這些說明操作並成功地將 mint-vg/root 和 mint-vg/swap_1 邏輯卷鏡像到新磁碟上,然後我將鏡像
lvconvert --splitmirror
拆分為vgsplit
. 這對我的所有文件進行了很好的複製,我一生都無法弄清楚如何從新副本啟動!首先,我嘗試重命名所有 LV 和 VG,使舊的具有“OLD_”前綴,新的具有舊的名稱。例如,“mint-vg”變成了“OLD_mint-vg”,“new_mint-vg”變成了“mint-vg”等等。
然後我意識到其中一個舊驅動器上有一個可引導的主分區。這是驅動器的原始配置:(sde和sdf是舊驅動器,sdg是新驅動器)
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sde 8:64 0 931.5G 0 disk └─sde1 8:65 0 931.5G 0 part └─mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup sdf 8:80 0 931.5G 0 disk ├─mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup └─mint--vg-swap_1 253:3 0 976M 0 lvm [SWAP] sdg 8:96 0 3.7T 0 disk
我試過
grub-install /dev/sdg
了"grub-install: error: failed to get canonical path of '/cow'"
我也嘗試過這些說明,但我無法創建主分區,因為我的新磁碟大於 2048G,這是最大分區大小。
我還在新磁碟上安裝了 linux mint 以查看它如何配置分區,它們看起來像這樣:
sdg 8:96 0 3.7T 0 disk └─sdg1 8:97 0 1M 0 part └─sdg2 8:98 0 513M 0 part └─sdg3 8:99 0 3.7T 0 part └─vgmint-root 253:1 0 3.7T 0 lvm └─vgmint-swap_1 253:2 0 967M 0 lvm [SWAP]
現在是否可以複製我的舊根目錄並交換 LV,然後從新的 Mint 安裝中替換那些?真的會這麼簡單嗎?否則,如果有人可以指導我完成設置必要的引導配置的過程,以便我可以讓我的複製系統再次執行,或者向我指出一些明確的說明,我將非常感激。
謝謝,
擔。
編輯
非常感謝你的幫助,我真的把頭髮拉出來了!
好的,這是您請求的 pastebin 連結,但請注意我的系統有 7 個驅動器,並且我正在從 linux mint live USB 啟動。
原來的作業系統在驅動器上
/dev/sde
,/dev/sdf/
我用前綴“OLD_”重命名了 VG 和 LV。新驅動器現在/dev/sdg
已經安裝了全新的 Linux Mint,以後需要將其刪除。我安裝了它,所以我可以看到它是如何配置分區的。看起來新的 Mint 安裝程序選擇了您提到的 BIOS 選項和 bios_grub 分區 (
/dev/sdg1
)現在 Mint 安裝程序已經設置了上述分區,我現在可以從全新安裝中刪除卷組“vgmint”並用我複製的捲組“mint-vg”替換它嗎?如果是這樣,我必須重新配置才能啟動它?還是我應該擦拭驅動器並重新開始?
幾天來我一直在搞砸這個問題,所以我想我應該為遇到類似問題的其他人發布我的解決方案。當安裝在跨越 2 個 1TB 磁碟的 LVM 上時,如何將 Mint 安裝複製到新的 4TB 磁碟:
有用的連結:
術語
- PV = 實物量
- VG = 卷組
- LV = 邏輯卷
要複製安裝在 LVM 系統上的系統磁碟並打算從複製引導,我們將執行以下步驟:
- 準備新磁碟(創建分區)
- 創建 PV
- 將新 PV 添加到包含目標 LV 的同一 VG
- 在新 PV 上創建目標 LV 的鏡像
- 將鏡像分成兩個獨立的 LV
- 拆分 VG,使鏡像 LV 開啟的新 PV 位於新 VG 中
- 整理(重命名 LV、VG)
- 安裝 Grub 以使其可啟動
1 - 準備新磁碟
如果您的磁碟小於 2048 GB,您可以使用 MBR 分區準備磁碟,但這裡沒有介紹。
如果要引導到大於 2TB 的驅動器,則必須創建BIOS 引導分區。我發現這些說明很有用,但老實說我有點作弊。
我配置分區的方式是在我的新驅動器上重新安裝 linux mint。這設置了 3 個分區 BIOS 引導分區 (bios_grub) 一些未知的 fat32 分區(我還在尋找這個我正在考慮刪除它,它是半個 gig !!!)和一個 LVM2 分區(帶有 LV
root
和 ʻswap_1`在)。然後,我使用全新安裝的 Mint 刪除了新的捲組,留下了一個空白分區 (/dev/sdg3),然後將我的舊 mint VG 複製到空白分區中。
我想如果我按照這些說明中的說明使用 fdisk 創建了 1meg Bios 分區,那麼我可能會避免重新安裝 mint 和磁碟其餘部分的 LVM 分區。但是它起作用了,所以請隨意嘗試或作弊,這取決於您。
2 - 創建 PV
現在您已經對磁碟進行了分區,您需要使用
lsblk
或fdisk -l
(我的稱為/dev/sdg3
)找到最大分區的設備名稱。現在創建新的 PV:pvcreate /dev/sdg3
3 - 將新 PV 添加到與目標 LV 相同的 VG
vgs
您可以使用(我將使用“mint-vg”)列出邏輯卷並添加新的 PV,如下所示:vgextend mint-vg /dev/sdg3
4 - 在新 PV 上創建目標 LV 的鏡像
用 列出你的 LV
lvs
,我的被稱為“root”,我還複製了 swap_1,所以你可以對兩個 LV 重複這些說明。如果您的 LV 相當大,則在複製所有數據時,鏡像可能需要很長時間。它會在螢幕上讓您隨時了解其進度,如果您遇到停電或類似情況,它應該在您下次啟動實時磁碟時從停止的地方繼續。您可能還想使用該
-b
選項在後台執行它。lvconvert --type mirror -m1 /dev/mint-vg/root /dev/sdg3
完成後,您可能需要檢查一切是否正常:
lvs -a -o +devices | egrep "LV|root"
注意
Cpy%Sync
它應該顯示複製百分比的列。現在再次開始本節並鏡像“swap_1”LV。
5 - 將鏡子分成兩個獨立的 LV
接下來將鏡像的 LV 轉換為實際的 LV。兩個 LV(原始和副本)將位於同一個 VG 上,因此有必要在您這樣做時重命名它們(我將使用“new_root”)。
sync
為了安全起見,首先使用命令刷新記憶體也很重要。sync lvconvert --splitmirrors 1 --name new_root /dev/mint-vg/root /dev/sdg3
現在重複
/dev/min-vg/swap_1
6 - 拆分 VG,使帶有鏡像 LV 的新 PV 位於新 VG 中
在我們拆分 VG 之前,我們必須停用 LV:(-a 代表啟動
$$ y|n $$)
lvchange -an /dev/mint-vg/new_root lvchange -an /dev/mint-vg/new_swap_1
現在我們可以從 /dev/sdg3 創建一個新的 VG,它上面仍然有鏡像的 LV:
vgsplit mint-vg new_mint-vg /dev/sdg3
您現在應該能夠看到複製的 LV 和兩個 VG 及其關聯設備
lvs -o +devices
7 - 整理(重命名 LV、VG 並可能將 VG 標記為導出)
如果(像我一樣)您嘗試將系統複製到您打算從中引導的新磁碟並擦除舊系統驅動器,則需要重命名所有 LV 和 VG,以便舊的“mint-vg”稱為“OLD_mint -vg”和新的“new_mint-vg”被稱為“mint-vg”等,對於 LV 也是如此。
您可以像這樣重命名 LV 和 VG:(先解除安裝!)
umount /dev/mapper/mint—vg-root lvrename mint-vg root OLD_root vgrename mint-vg OLD_mint-vg
如果您打算刪除一個卷組(也許您已將其複製到外部驅動器以進行傳輸),則應停用其上的 LV 和 VG 本身並將其標記為導出:
lvchange -an /dev/mint-vg/old_root vgchange -an old_mint-vg vgexport old_mint-vg
現在,如果您執行
pvs
,您應該會看到 VGs 屬性有一個x
表示它已標記為導出,並且沒有a
屬性表示它未啟動。8 - 安裝 Grub 以使其可啟動
快速提及 fstab
這 是您的
/etc/fstab
文件的簡要說明。我只是想快速提及您的
/etc/fstab
文件。它用於告訴您的系統需要掛載的分區,以何種順序掛載它們並在掛載時為它們分配某些選項。就我而言,我重命名了我的 LV,它是 VG,所以它們與原件相同。此外,在我的/etc/fstab
文件中,我的分區是用它們的設備名稱而不是唯一的 UUID 來標識的,這意味著一切都對我有用。
/etc/fstab
為了熟悉它,您可能需要查看一下您的文件。cat /etc/fstab
如果您重命名了 VG,任何 LV 或您的分區都由它們在 fstab 文件中的 UUID 標識,您可能必須編輯 fstab 文件以啟動系統並安裝卷。
blkid
您可以通過在終端中鍵入來找出 UUID 。蠐螬
要從新磁碟啟動複製,您需要在其上安裝 Grub。為此,您必須首先掛載根文件夾,以便我們可以將 grub 指向 /boot 文件夾。
這些說明可能很有用,但如果您不告訴它您的 /boot 文件夾,您將收到以下錯誤:“未能找到規範的 /cow”。閱讀 Grub 手冊後
info grub-install
,我可以通過將 grub 指向根 LV 上的 /boot/ 文件夾來安裝 grub。就是這樣:首先創建一個掛載點文件夾:然後掛載根LV,最後就可以安裝grub了
mkdir /mnt/root mount /dev/mint-vg/root /mnt/root grub-install --boot-directory=mnt/root/boot /dev/sdg
這將設置您的ʻ/boot
文件夾並在您的BIOS 啟動分區中創建一個新的ʻcore.img
。您現在應該可以啟動了,不要忘記在您的BIOS中更改啟動設備!神速!