无法启动 KVM 客户机

无法启动 KVM 客户机

我尝试缩小 KVM 客户机的根分区。我设法缩小了它,没有丢失数据(就我们仅考虑其中的数据而言),但现在系统不再启动。这是一个 Debian 系统,根分区是/dev/mapper/vg0-root(LVM)。如果我启动系统救援光盘我可以安装它并且可以访问所有内容。

为了缩小它,我在启动实时 SystemRescueCD 时执行以下操作:

  1. e2fsck -f /dev/mapper/vg0-root
  2. resize2fs /dev/mapper/vg0-root 25G
  3. lvreduce -r --size 30G /dev/mapper/vg0-root
  4. pvresize --setphysicalvolumesize 30G /dev/vda1
  5. gdisk /dev/vda

请注意,我是凭记忆写下这些步骤的,也许这不是我使用的确切语法,但它提供了我所做事情的线索。

gdisk想缩小分区,为此我删除了现有分区并创建一个具有相同起始扇区(2048)、相同类型(8E00 Linux LVM)但大小较小(30G 而不是 200G)的新分区。gdisk建议从扇区 34 而不是 2048 开始,但我不想移动分区,所以我手动输入了 2048。

然后我重启了系统,但是 grub 挂了。回到 SystemRescueCD,我挂载了 LVM 根分区/mnt/custom,然后尝试重新安装 GRUB:

  1. mount /dev/mapper/vg0-root /mnt/custom
  2. cd /mnt/custom
  3. mount -o bind /dev dev
  4. mount -o bind /proc proc
  5. mount -o bind /sys sys
  6. chroot . /bin/bash
  7. grub-install /dev/vda

结果是:

Installing for i386-pc platform
 Warning: not using lvmetad with older version.
 Warning: not using lvmetad with older version.
 Warning: not using lvmetad with older version.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.

现在我怀疑使用gdisk而不是fdisk上面的,它隐式地将分区表从 MBR 转换为 GPT,我不确定,但现在我看到一个 GPT 分区表甚至有fdisk,所以在我看来这是很有可能的。

有没有办法重新将其设为 MBR?或者,有没有教程,教你如何从 live CD 系统和 chroot 手动将 Debian 系统从 grub-pc 升级到 grub-efi?

答案1

比我想象的要简单,这是解决方案将 GPT 转换回 MBR

简而言之,运行gdisk /dev/vda,使用r,然后g。成功了。

相关内容