使用物理磁盘在 xen guest 上重置 root 权限

使用物理磁盘在 xen guest 上重置 root 权限

我找到了一些使用图像文件重置 xen 客户机密码的教程,比如这个: http://www.howtoforge.com/forums/showthread.php?t=28779

但是,我还没有找到修改它以适用于物理磁盘的示例。

此客户机当前正在运行。如果您能从列出从主机关闭客户机的命令开始,一直到更改 root 密码后重新启动 xen 客户机,我将不胜感激。

另外,不确定这是什么意思,但在我的本地机器上,“xm”是用于与 xen 交互的命令,而不是像我在大多数教程中看到的 xe。

以下是 xen 配置文件的磁盘行:

disk = [ "phy:/dev/sdb1,xvda,w" ]

谢谢,

-埃里克

答案1

使用类似以下命令关闭客户端

xm shutdown <guest>

检查是否已关机

xm top

该路径暗示它不是 LVM,而是物理磁盘。这是。确保已安装。首先检查该块设备中有哪些文件系统:

virt-filesystems -a /dev/sdb1

然后挂载根文件系统:

guestmount -a /dev/sdb1 -m /dev/<whateverhappenstoberoot> --rw /mnt

更改根目录:

chroot /mnt/

更新您的密码

passwd root

然后你恢复一切

logout
unmount /mnt/
xm create /etc/xen/vm/<guest>

答案2

实际上,您可以不安装 guestfs 工具,而是通过执行一些手动工作来实现。

按照 pehrs 的建议直到 virt-filesystems 命令(不包括它),然后运行以下命令:

parted -s /dev/sdb1 unit B print

这将为您提供一个列出偏移量的表格,如下所示:

Number  Start        End          Size         Type     File system  Flags
 1      32256B       2467583999B  2467551744B  primary  ext2
 2      2467584000B  3981035519B  1513451520B  primary  ext3
 3      3981035520B  3989260799B  8225280B     primary               lba
 4      3989260800B  3997486079B  8225280B     primary

您需要挂载的那个可能有一个 ext3 文件系统。您也可以通过mount在客户机中运行并查找 / 分区的设备来检查正确的编号。

取“开始”列中的数字减去 B,然后尝试以下操作:

mkdir /mnt/test
mount -o loop,rw,offset=NUMBER_GOES_HERE /dev/sdb1 /mnt/test

然后继续chroot /mnt/test。除了从使用 /mnt 改为使用 /mnt/test 之外,其余一切都保持不变 - 我不喜欢直接在 /mnt 上安装任何东西。

参考:http://www.andremiller.net/content/mounting-hard-disk-image- including-partitions-using-linux

答案3

@Eric 默认的 CentOS 存储库不包含 libguestfs 工具——但是 epel 存储库包含。在这种情况下,我通常会设置 epel 存储库,然后禁用它,并仅启用它来安装特定的软件包。如下所示:

  1. 转速-ivhhttp://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  2. 通过在 /etc/yum.repos.d/epel.repo 的每个部分中设置“enabled=0”来禁用存储库
  3. yum –enablerepo=epel 安装

话虽如此,我不确定您到底需要哪一个包。http://libguestfs.org/似乎建议安装“*guestf*”,但这很可能会安装比你真的需要。

相关内容