将 Ubuntu 1804(MBR/GPT)qcow2 映像迁移到物理分区(GPT)

将 Ubuntu 1804(MBR/GPT)qcow2 映像迁移到物理分区(GPT)

是否可以将 Ubuntu Mate 1804 从 qcow2 映像迁移到物理分区?我的方法是-

$ sudo apt install libguestfs-tools 
$ sudo guestmount -a /media/user/images/mate1804.qcow2 -m /dev/sda1 /mnt 

然后我将物理分区挂载到另一个挂载点(/tmp/test),并将整个 /mnt 目录复制到该物理挂载点,如下所示

$ sudo cp -p -R /mnt/* /tmp/test/
$ sudo update-grub

但当我尝试启动 mate1804 时,我认为它仍在寻找虚拟机的分区 UUID,所以我最终这里我尝试使用 Ubuntu 16.04 在 chroot 环境中重新安装内核,如下所示:

$ sudo mount /dev/sda8 /mnt 
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts /mnt /pts
$ sudo mount --bind /sys /mnt /sys
$ sudo mount --bind /run /mnt /run
$ sudo mount --bind /proc /mnt /proc
$ chroot /mnt
$ apt install --reinstall linux-image-4.15.0-20-generic linux-image-generic linux-headers-4.15.0-20-generic linux-headers-4.15.0-20 linux-modules-4.15.0-20-generic linux-headers-generic linux-firmware linux-base linux-modules-4.15.0-20-generic linux-modules-extra-4.15.0-20-generic pptp-linux syslinux util-linux

但最终还是这里。 我努力了

sudo qemu-img convert -p -O raw /media/user/images/mate1804.qcow2 /dev/sdb8 

但它会像 MBR 分区污染一样破坏 GPT 分区表,即使使用 GPT 类型的 qcow2 映像,它也会破坏分区。

注意:该 qcow2 映像结合了交换分区和根分区。

答案1

也许通过 tarball 进行传输是最简单的,您可以将其存储在某个单独的分区中(可能是在外部驱动器上)。它还可以用作备份。

  • 从另一个驱动器启动,挂载根分区并将目录更改为挂载点并运行

    sudo tar -cvzf storage/file.tar.gz .
    

    从每个分区制作一个包含文件的 tarball(根分区,也可能是启动分区和主分区)。

  • 之后,准备好 GPT 文件分区表和文件系统。

    这个链接可能有帮助:help.ubuntu.com/community/DiskSpace

  • 从 tarfile 中提取。从另一个驱动器启动时,挂载新 GPT 驱动器的根分区,将目录更改为挂载点并运行

    sudo tar -xvf storage/file.tar.gz
    
  • 调整转移的系统,使新分区的 UUID 与新 GPT 系统文件中的 UUID 相匹配

    • /mountpoint/etc/fstab
    • /mountpoint/boot/grub/grub.cfg

这可以通过修改 UUID 或修改文件来实现。由于不会与虚拟系统混淆,因此修改分区的 UUID 可能是最简单的方法。对于tune2fsext4 文件系统和mkswap交换分区,您都可以这样做。


如果这不起作用,也许最简单的方法是进行全新安装并仅传输目录/home(到目标系统上的主分区并在安装程序中使用“其他”别名手动分区)。

相关内容