每次复制 Rocky Linux vmdk 时都会发生错误

每次复制 Rocky Linux vmdk 时都会发生错误

我最近研究了 Rocky Linux(最基础的),有时我会“摆弄”操作系统(做一些实验来了解它以及它的工作原理)。为了不将它安装在实际的 PC 上,我将其安装在 VirtualBox 上,为了不每次都被迫进行安装,我将全新安装克隆到一个vmdk文件中,因此每次出现问题时,我都可以简单地使用这个克隆并继续,而不必重新安装它。

当我输入pvsvgslvs命令时,出现错误,我已经找到解决方法了

Devices file sys_wwid t10.ATA_____VBOX_HARDDISK___________________________VB7f1e0511-0347cdea_ PVID bpNp2fn5ADn82LP89ic7346tJcwqJkG6 last seen on /dev/sda2 not found.

但是,我不明白为什么会发生这种情况(我的意思是,即使我创建文件时也会发生这种情况ova!),当我尝试删除此 PVID 时,收到一条警告消息:

[root@localhost ~]# lvmdevices --delpvid bpNp2fn5ADn82LP89ic7346tJcwqJkG6
  Devices file sys_wwid t10.ATA_____VBOX_HARDDISK___________________________VB7f1e0511-0347cdea_ PVID bpNp2fn5ADn82LP89ic7346tJcwqJkG6 last seen on /dev/sda2 not found.
Device /dev/sda2 is used by an active LV, continue to remove? n
  Device not removed.

这很令人困惑。我曾经输入过“y”,并没有发生任何不好的事情(系统仍然正常工作),但我不知道为什么每次克隆都会发生这种情况。

更新,这是重启后的样子:登录为:root [电子邮件保护]的密码:使用以下命令激活 Web 控制台:systemctl enable --now cockpit.socket

Last login: Mon Apr 24 16:21:58 2023 from xxx.xxx.xxx.xxx
[root@localhost ~]# lvs
[root@localhost ~]# pvs
[root@localhost ~]# vgs
[root@localhost ~]# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6d59c969

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 41943039 39843840  19G 8e Linux LVM


Disk /dev/mapper/rl-root: 17 GiB, 18249416704 bytes, 35643392 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/rl-swap: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

(如您所见,,lvspvs返回vgs... 无)

答案1

经过许多令人沮丧的日子后,我发现我做错了什么。

我使用了完整克隆方法,而不是链接克隆。当我这样做时,VMDK 文件的 UUID 发生了变化,而 Rocky Linux 系统习惯于原始 UUID,因此新机器“损坏”并且没有 LVM。

“完整克隆”也像我复制 VMDK 文件(不包含其他配置文件),然后将复制的 VMDK 文件附加到新机器,或者我使用 VBox 的导出方法(到 OVA)导出 VM,然后重新导入。

如果将来有人遇到这个问题,我的解决方案是:

  1. 安装 Rocky Linux(我更喜欢文本模式,但您可以选择任何您想要的)
  2. 安装完成后,关闭虚拟机(在文本模式下:alt+tab,然后shutdown -P +0
  3. 导航到 VirtualBox 目录(例如C:\Users\<your username>\VirtualBox VMs:)并找到您的虚拟机目录(例如:“ rocky-9.1-x86_64-dvd”)
  4. 备份机器(可以在其他主机上使用!) - 压缩整个目录(建议使用 7z),并将备份保存在某处(我将其保存在我的 NAS 服务器上)。你不知道是否以及何时会需要它。
  5. 在 VirtualBox Manager 中,选择机器,使用克隆向导以“链接克隆”方法克隆机器,确保未选中“附加选项”复选框(“保留磁盘名称”和“保留硬件 UUID”);还建议更改 MAC 地址
  6. 每当您想使用这台机器时,请在另一台主机上提取 7z,然后使用 VBox 的“添加”按钮将文件加载.vbox到提取的目录中。机器应该像在原始主机上一样工作(除非您需要在设置中进行一些更改,这取决于新主机和旧主机)。然后您只需重复步骤 5 即可 :)

答案2

VirtualBox 在克隆驱动器时会更改驱动器标识符,因为它内部使用它来区分它们。您的克隆似乎包含不同的驱动器,并且 LVM 正确识别出原始驱动器已丢失。

VirtualBox 实际上有一个内置功能可以实现您想要的功能:快照。对已知良好的 VM 进行快照。您稍后可以回滚。快照不会克隆驱动器,因此它不会更改其 ID 并且不会浪费主机的磁盘空间。

实际上您已经使用了此功能,因为 VirtualBox 在创建链接克隆时会创建一个快照。克隆实际上是在该快照的基础上构建的,而原始 VM 可以单独修改。

答案3

问题:克隆的虚拟机的硬盘序列号不匹配,导致 LVM 遇到识别问题。

解决方案:

  1. lsblk -o NAME,MODEL,SERIAL使用命令列出块设备及其型号和序列号来识别硬盘的正确序列号。找到克隆磁盘的正确序列号。

  2. 更新文件中的序列号/etc/lvm/devices/systemdevices以反映克隆磁盘的正确序列号。IDTYPE=sys_wwid IDNAME=t10.ATA_VBOX_HARDDISK_VB<correct_serial_number> DEVNAME=/dev/sda2 PVID= PART=2

    <correct_serial_number>用从命令获得的实际值替换lsblk

在提供的示例中,进行了以下更改

从:

IDTYPE=sys_wwid IDNAME=t10.ATA_VBOX_HARDDISK_VBa0cd5ac0-b51def01 DEVNAME=/dev/sda2 PVID=jTccnAUtUAACo2ye9I22IlFO0wThNegN PART=2

到:

IDTYPE=sys_wwid IDNAME=t10.ATA_VBOX_HARDDISK_VB569d205b-20417ce8 DEVNAME=/dev/sda2 PVID= jTccnAUtUAACo2ye9I22IlFO0wThNegN PART=2

此更改可确保 LVM 系统根据从 获得的信息识别出克隆硬盘的正确序列号lsblk

相关内容