我有一个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议的,我可以看到两种方法: