在 Linux 中修改 grub.conf 文件

在 Linux 中修改 grub.conf 文件

我编辑了 Linux 系统的“grub.conf”文件,更改了其中的“timeout”值,并添加了其他行,以解决“xm console guest”命令的超时问题。我愚蠢地认为 grub.conf 中的这个“timeout”参数实际上与“xm console timeout”有关,并将其更改为非常大的值。所以这给我带来了一个大问题。现在,当我重新启动 Linux 机器时,即使手动选择要启动的内核,它也会挂在启动屏幕上。

所以基本上我想在启动时或通过 grub 撤消我在 grub.conf 文件中所做的更改。或者以某种方式强制系统启动一次,然后撤消更改。我无法做到这一点。一种方法是从 Linux CD 以救援模式启动并撤消它,但我无法做到这一点,因为它是 XEN 上的虚拟机,我找不到从外部 CD 启动它的方法。

有什么办法可以解决我造成的混乱吗?

答案1

您可以使用以下方式将磁盘文件挂载到主机上losetup

sudo losetup -o32256 /dev/loop0 /path/to/harddiskimage.xm
sudo mount /dev/loop0 /media/mydisk

-o的是引导扇区的偏移量。通常为 32256,但如果客户机上有多个分区,则可能会发生变化。

要确定偏移量是多少,您可以执行以下操作:

sudo losetup -d /dev/loop0
sudo losetup /dev/loop0 /path/to/harddiskimage.xm
sudo fdisk -ul /dev/loop0

Units它将显示和的数量sector/track。只需将这两个相乘即可得到偏移量。

完成后,编辑已挂载文件夹中的 grub.conf,然后可以卸载它:

sudo umount /dev/loop0
sudo losetup -d /dev/loop0

答案2

您可以在选择选项之前直接从 grub 菜单编辑启动选项。我相信您按“e”来编辑条目。然后您可以将该启动的选项更改为其他选项。

一旦您启动系统,您可以再次编辑 grub.conf 文件。

答案3

我不知道“Bart De Vos”提到的程序是否有效,因为我没有尝试过,因为我找到了一个肯定有效的程序。 该方法类似于安装客户机的文件系统然后对其进行编辑。

请按照以下步骤挂载映像文件:

  1. 第一场火灾扫描命令在 dom-0 上,它将为您提供当前在 dom-0 上处于活动状态的逻辑卷。现在您可以放心地假设该命令显示的卷号属于您的 dom-0 机器,而不是任何客户的卷号。

  2. 现在执行kpartx -av /var/lib/xen/images/$machine_name.img 该命令将为VM的映像文件映射循环并激活客户VM的VolumeGroup。

  3. 现在又开火扫描命令,除了步骤 1 中看到的之外,您还将看到一个以上的 VolGroup。现在您可以确定这是您的客户虚拟机的卷组。

  4. 现在您应该知道 VolumeGroup 中的逻辑卷,以便成功挂载它。为此,请执行命令 vgchange -ay /VolGroup00(步骤 2 中新创建的卷组)/

  5. 现在执行命令 lvs,这将为您提供 VolGroup 中的逻辑卷。

  6. 现在创建一个挂载点并挂载您想要挂载的任何逻辑卷,如下所示

    挂载 /dev/VolGroup00/LogVol00 $mount_path

  7. 现在,您可以通过这种方式访问​​ Guest VM 的任何目录并修改所需的任何配置。完成后,您可以按照相反的步骤进行操作,例如

    a) 卸载 $mount_path

    b)vgchange -an VolGroup00

    c)kpartx -d /var/lib/xen/images/$machine_name.img

您已完成

相关内容