Linux-Mint

試圖將安裝在 LVM 上的 Linux 移動到新磁碟

  • February 7, 2022

我在卷組中有兩個物理磁碟(每個 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 系統上的系統磁碟並打算從複製引導,我們將執行以下步驟:

  1. 準備新磁碟(創建分區)
  2. 創建 PV
  3. 將新 PV 添加到包含目標 LV 的同一 VG
  4. 在新 PV 上創建目標 LV 的鏡像
  5. 將鏡像分成兩個獨立的 LV
  6. 拆分 VG,使鏡像 LV 開啟的新 PV 位於新 VG 中
  7. 整理(重命名 LV、VG)
  8. 安裝 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

現在您已經對磁碟進行了分區,您需要使用lsblkfdisk -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中更改啟動設備!

神速!

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