尝试将安装在 LVM 上的 Linux 移动到新磁盘

尝试将安装在 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 安装中的 LV?事情真的会这么简单吗?否则,如果有人可以引导我完成设置必要的启动配置的过程,以便我可以让我的克隆系统再次运行,或者向我指出一些明确的说明,我将非常感激。

谢谢,

担。

编辑

非常感谢您的帮助,我真的为此抓狂了!

好的,这是pastebin链接你要求的,但要注意我的系统有 7 个驱动器,并且我从 linux mint live USB 启动。

原始操作系统位于驱动器上/dev/sde/dev/sdf/我已将 VG 和 LV 重命名为前缀“OLD_”。新驱动器/dev/sdg上目前全新安装了 Linux Mint,以后需要将其删除。我安装它是为了了解它如何配置分区。

看起来新的 Mint 安装程序已经选择了您提到的 BIOS 选项和 BIOS_grub 分区 ( /dev/sdg1)

现在 Mint 安装程序已经设置了上述分区,我现在可以从全新安装中删除卷组“vgmint”并将其替换为我的克隆卷组“mint-vg”吗?如果是这样,我需要重新配置什么才能让它启动?或者我应该擦拭驱动器并重新开始?

答案1

我已经搞乱了好几天了,所以我想我应该为其他遇到类似问题的人发布我的解决方案。以下是当安装在跨越 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 分区(我还在研究这个我正在考虑删除它,它有半个吉格!!!)和一个 LVM2 分区(带有 LV ``root' 和 ``swap_1``在)。

然后,我删除了全新安装的 Mint 的新卷组,留下一个空白分区 (/dev/sdg3),然后将我的旧 Mint VG 克隆到该空白分区。

我想如果我按照中所述使用 fdisk 创建了 1meg Bios 分区这些说明然后将 LVM 分区与磁盘的其余部分一起使用,我可能可以避免重新安装 mint。不过它确实有效,所以请随意尝试或作弊,这取决于您。

2 - 创建PV

lsblk现在您已经对磁盘进行了分区,您需要使用或查找最大分区的设备名称fdisk -l(我的称为/dev/sdg3)。现在创建新的 PV:

pvcreate /dev/sdg3

3 - 将新的 PV 添加到与目标 LV 相同的 VG

您可以使用(我将使用“mint-vg”)列出逻辑卷vgs并添加新的 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 代表 activate [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您应该会看到 VG 属性有一个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 中更改启动设备!

天啊速度!

相关内容