Dan*_*ion 3 partition lvm grub2 fstab linux-mint
我在卷组中有两个物理磁盘(每个 1TB)的 LVM 驱动器上安装并启动了 Linux Mint。我购买了一个新硬盘 (4TB),我想克隆整个硬盘并从新磁盘启动。
\n当根文件系统位于 LVM 驱动器上时,我真的很难找到此过程的说明。
\n我按照这些说明进行操作,并成功地将 mint-vg/root 和 mint-vg/swap_1 逻辑卷镜像到新磁盘上,然后使用 分割镜像lvconvert --splitmirror
并使用 分割卷组vgsplit
。这对我的所有文件进行了很好的克隆,但我一生都无法弄清楚如何从新副本启动!
首先,我尝试重命名所有 LV 和 VG,以便旧的具有“OLD_”前缀,而新的具有旧的名称。例如,“mint-vg”变为“OLD_mint-vg”,“new_mint-vg”变为“mint-vg”等。
\n然后我意识到其中一个旧驱动器上有一个可引导的主分区。这是驱动器的原始配置:(sde 和 sdf 是旧驱动器,sdg 是新驱动器)
\n$ lsblk\n\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsde 8:64 0 931.5G 0 disk \n\xe2\x94\x94\xe2\x94\x80sde1 8:65 0 931.5G 0 part \n \xe2\x94\x94\xe2\x94\x80mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup\nsdf 8:80 0 931.5G 0 disk \n\xe2\x94\x9c\xe2\x94\x80mint--vg-root 253:2 0 1.8T 0 lvm /run/timeshift/backup\n\xe2\x94\x94\xe2\x94\x80mint--vg-swap_1 253:3 0 976M 0 lvm [SWAP]\nsdg 8:96 0 3.7T 0 disk \n
Run Code Online (Sandbox Code Playgroud)\n我已经尝试过grub-install /dev/sdg
并且得到了"grub-install: error: failed to get canonical path of \'/cow\'"
我也尝试过这些说明,但无法创建主分区,因为我的新磁盘大于最大分区大小 2048G。
\n我还在新磁盘上安装了 linux mint,以查看它如何配置分区,它们如下所示:
\nsdg 8:96 0 3.7T 0 disk \n\xe2\x94\x94\xe2\x94\x80sdg1 8:97 0 1M 0 part\n\xe2\x94\x94\xe2\x94\x80sdg2 8:98 0 513M 0 part\n\xe2\x94\x94\xe2\x94\x80sdg3 8:99 0 3.7T 0 part\n \xe2\x94\x94\xe2\x94\x80vgmint-root 253:1 0 3.7T 0 lvm\n \xe2\x94\x94\xe2\x94\x80vgmint-swap_1 253:2 0 967M 0 lvm [SWAP]\n
Run Code Online (Sandbox Code Playgroud)\n现在是否可以克隆我的旧根并交换 LV,然后替换新 Mint 安装中的 LV?事情真的会这么简单吗?否则,如果有人可以引导我完成设置必要的启动配置的过程,以便我可以让我的克隆系统再次运行,或者向我指出一些明确的说明,我将非常感激。
\n谢谢,
\n担。
\n非常感谢你的帮助,我\xe2\x80\x99m真的为此抓狂!
\n好的,这是您请求的 Pastebin 链接,但请注意我的系统有 7 个驱动器,并且 I\xe2\x80\x99m 从 linux mint live USB 启动。
\n原始操作系统位于驱动器上/dev/sde
,/dev/sdf/
我已将 VG 和 LV 重命名为前缀 \xe2\x80\x9cOLD_\xe2\x80\x9d。新驱动器/dev/sdg
上目前全新安装了 Linux Mint,以后需要将其删除。我安装了它,这样我就可以看到它如何配置分区。
看起来新的 Mint 安装程序已经选择了您提到的 BIOS 选项和 BIOS_grub 分区 ( /dev/sdg1
)
现在 Mint 安装程序已经设置了上述分区,我现在可以从全新安装中删除卷组 \xe2\x80\x9cvgmint\xe2\x80\x9d 并将其替换为我的克隆卷组“mint-vg”吗?如果是这样,我需要重新配置什么才能让它启动?或者我应该擦拭驱动器并重新开始?
\n我已经搞乱了好几天了,所以我想我应该为其他遇到类似问题的人发布我的解决方案。以下是当安装在跨越 2 个 1TB 磁盘的 LVM 上时,如何将 Mint 安装克隆到新的 4TB 磁盘:
\n要克隆安装在 LVM 系统上的系统磁盘并从克隆启动,我们将执行以下步骤:
\n如果您的磁盘小于 2048 GB,您可以为磁盘准备 MBR 分区,但这不在此处介绍。
\n如果您想要引导至大于 2TB 的驱动器,则必须创建BIOS 引导分区。我发现这些说明很有用,但说实话,我有点作弊。
\n我配置分区的方法是在我的新驱动器上全新安装 linux mint。设置了 3 个分区 BIOS 启动分区 (bios_grub) 一些未知的 fat32 分区(我还在研究这个我正在考虑删除它它有半个千兆!!!)和一个 LVM2 分区(与 LV \xca\xbbroot\xca\xbb 和 \xca\xbbswap_1\xca\xbb 中)。
\n然后,我删除了全新安装的 Mint 的新卷组,留下一个空白分区 (/dev/sdg3),然后将我的旧 Mint VG 克隆到该空白分区。
\n我认为,如果我按照这些说明中的说明使用 fdisk 创建了 1meg Bios 分区,然后使用磁盘的其余部分创建了 LVM 分区,我可能可以避免重新安装 mint。不过它确实有效,所以请随意尝试或作弊,这取决于您。
\nlsblk
现在您已经对磁盘进行了分区,您需要使用或查找最大分区的设备名称fdisk -l
(我的称为/dev/sdg3
)。现在创建新的 PV:
pvcreate /dev/sdg3\n\n
Run Code Online (Sandbox Code Playgroud)\n您可以使用(我将使用“mint-vg”)列出逻辑卷vgs
并添加新的 PV,如下所示:
vgextend mint-vg /dev/sdg3\n
Run Code Online (Sandbox Code Playgroud)\n使用 列出您的 LV lvs
,我的被称为“root”,我还克隆了 swap_1,因此您可以对两个 LV 重复这些说明。
如果您的 LV 相当大,则镜像在复制所有数据时可能会花费很长时间。它会让您在屏幕上了解其进度,如果您遇到断电或类似情况,它应该在您下次启动到实时磁盘时从中断处继续。您可能还想使用该选项在后台运行它-b
。
lvconvert --type mirror -m1 /dev/mint-vg/root /dev/sdg3\n
Run Code Online (Sandbox Code Playgroud)\n完成后,您可能想检查一下是否一切正常:
\nlvs -a -o +devices | egrep "LV|root"\n
Run Code Online (Sandbox Code Playgroud)\n请注意Cpy%Sync
应显示复制百分比的列。
现在再次开始此部分并镜像“swap_1”LV。
\n接下来将镜像 LV 转换为实际 LV。两个 LV(原始卷和副本)将位于同一个 VG 上,因此需要在执行此操作时重命名它们(我将使用“new_root”)。sync
此外,为了安全起见,首先使用命令刷新缓存也很重要。
sync\nlvconvert --splitmirrors 1 --name new_root /dev/mint-vg/root /dev/sdg3\n\n
Run Code Online (Sandbox Code Playgroud)\n现在重复/dev/min-vg/swap_1
在分割 VG 之前,我们必须停用 LV:(-a 代表 activate [y|n])
\nlvchange -an /dev/mint-vg/new_root\nlvchange -an /dev/mint-vg/new_swap_1\n
Run Code Online (Sandbox Code Playgroud)\n现在我们可以从 /dev/sdg3 创建一个新的 VG,其中仍然包含镜像 LV:
\nvgsplit mint-vg new_mint-vg /dev/sdg3\n
Run Code Online (Sandbox Code Playgroud)\n您现在应该能够看到复制的 LV 和两个 VG 及其关联设备
\nlvs -o +devices\n
Run Code Online (Sandbox Code Playgroud)\n如果(像我一样)您尝试将系统复制到打算启动的新磁盘并擦除旧系统驱动器,则需要重命名所有 LV 和 VG,以便旧的“mint-vg”被称为“OLD_mint” -vg”,新的“new_mint-vg”被称为“mint-vg”等,LV 也是如此。
\n您可以像这样重命名 LV 和 VG:(首先卸载!)
\numount /dev/mapper/mint\xe2\x80\x94vg-root\nlvrename mint-vg root OLD_root\nvgrename mint-vg OLD_mint-vg\n\n
Run Code Online (Sandbox Code Playgroud)\n如果您打算删除卷组(也许您已将其复制到外部驱动器以进行运输),您应该停用其上的 LV 和 VG 本身,并将其标记为导出:
\nlvchange -an /dev/mint-vg/old_root\nvgchange -an old_mint-vg\nvgexport old_mint-vg\n\n
Run Code Online (Sandbox Code Playgroud)\n现在,如果您运行,pvs
您应该会看到 VG 属性有一个x
表示它已标记为导出,并且没有任何a
属性表示它未处于活动状态。
这 是您的文件的简要说明/etc/fstab
。
我只是想快速提一下你的/etc/fstab
文件。它用于告诉您的系统需要安装的分区、安装顺序以及安装时为其分配某些选项。就我而言,我将 LV 重命名为 VG,因此它们与原始版本相同。此外,在我的/etc/fstab
文件中,我的分区是通过其设备名称而不是唯一的 UUID 来标识的,这意味着一切都适合我。
/etc/fstab
为了熟悉一下您的文件,也许值得一看。
cat /etc/fstab\n
Run Code Online (Sandbox Code Playgroud)\n如果您已重命名 VG,则任何 LV 或分区均由 fstab 文件中的 UUID 进行标识,您可能需要编辑 fstab 文件才能启动系统并挂载卷。
\nblkid
您可以通过在终端中输入来找到 UUID 。
要让克隆从新磁盘启动,您需要在其上安装 Grub。为此,您必须首先挂载根文件夹,以便我们可以将 grub 指向 /boot 文件夹。
\n这些说明可能有用,但如果您不告诉它您的 /boot 文件夹,您将收到以下错误:“无法找到规范的 /cow”。阅读 Grub 手册后info grub-install
- 我能够通过将 grub 指向根 LV 上的 /boot/ 文件夹来安装 grub。就是这样:
首先创建一个挂载点文件夹:\n然后挂载根LV\n最后就可以安装grub了
\ncat /etc/fstab\n
Run Code Online (Sandbox Code Playgroud)\n这将设置您的 \xca\xbb/boot\xca\xbb 文件夹,并在 BIOS 启动分区中创建一个新的 \xca\xbbcore.img\xca\xbb。您现在应该可以启动了,不要忘记在 BIOS 中更改启动设备!
\n天啊速度!
\n