是否可以将 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 可能是最简单的方法。对于tune2fs
ext4 文件系统和mkswap
交换分区,您都可以这样做。
如果这不起作用,也许最简单的方法是进行全新安装并仅传输目录/home
(到目标系统上的主分区并在安装程序中使用“其他”别名手动分区)。