如何在KVM上的访客虚拟机上运行fsck

我有一个KVM服务器,我的一台客机崩溃,并提示fsck检查。 现在我没有控制台访问权限或没有来宾虚拟机的根访问权限。

有什么办法可以从pipe理程序运行fsck?

我使用centos 6.1作为我的pipe理程序

安装libguestfs:

# yum install libguestfs-tools 

使用guestfish打开磁盘映像:

 # guestfish -a /path/to/diskimage.img Welcome to guestfish, the libguestfs filesystem interactive shell for editing virtual machine filesystems. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell <fs> run <fs> list-filesystems /dev/vda1: ext4 /dev/system/lv_root: ext4 /dev/system/lv_swap: swap 

并fsck有问题的文件系统:

 <fs> fsck /dev/system/lv_root fsck should have 2 parameter(s) type 'help fsck' for help on fsck <fs> fsck ext4 /dev/system/lv_root ... 

祝你好运!

你可能能够在loopback接口上挂载文件并fsck它。 从www.ingent.net/en/tag/kvm/网站上,使用:

 losetup -f /dev/loop0 

…看到loop0这里是下一个免费的设备,然后将磁盘映像分配到该点。

 losetup /dev/loop0 disk.raw 

kpartx用于创build设备来访问它。

 kpartx -av /dev/loop0 

那么你应该可以使用fsck。

 fsck.ext3 -f /dev/mapper/loop0p1 fsck.ext3 -f /dev/mapper/loop0p2 

…等等。 该页面是关于转换系统在KVM上运行的,但是上面引用的这个部分可能会让你正在进行fsck修复; 我会添加警告,你应该做一个你的图像文件的副本 ,而不是基本的图像文件,以防万一出现错误。

除了Bart Silverstrim所build议的,我可以看到两种方法:

  1. 使用libguestfs来安装和操作图像
  2. 用附带的liveCD ISO启动VM,然后重置fsck标志或使用liveCD运行它