使用物理磁盘重置xen guest虚拟机上的根传递

我已经find了一些教程来使用映像文件来重置xen guest的密码,比如这个: http : //www.howtoforge.com/forums/showthread.php? t=28779

然而,我没有任何运气修改这个与物理磁盘一起使用的例子。

此客人正在运行。 如果你可以列出命令从主机closures客户端,一直到在root密码被更改后重新启动xen客户端,我将不胜感激。

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

这是xenconfiguration文件的磁盘行:

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

谢谢,

-Eric

使用类似的closures客人

 xm shutdown <guest> 

检查是否关机

 xm top 

该path暗示,它不是一个LVM,而是一个物理磁盘。 这是libguestfs的工作。 确保你已经安装了。 首先检查你在那个块设备中有哪些文件系统:

 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> 

你可以通过做一些手动工作而不安装guestfs工具来获得。

遵循pehrs的build议,直到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文件系统。 您也可以通过在guest mount上运行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

@Eric默认的CentOS回购不包含libguestfs工具 – 但epel存储库。 在这种情况下,我通常会做的是设置epel存储库,但是禁用它,并且只启用它来安装特定的软件包。像这样:

  1. rpm -ivh http://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/似乎build议安装“* guestf *”,但这将比你真正需要安装更多。