Назад | Перейти на главную страницу

Как запустить fsck на гостевых виртуальных машинах из KVM

У меня есть KVM-сервер, и одна из моих гостевых машин вышла из строя и запрашивает форму проверки fsck. Теперь у меня нет доступа к консоли или нет корневого доступа к гостевой виртуальной машине.

Есть ли способ запустить fsck из гипервизора?

Я использую centos 6.1 в качестве гипервизора

установить 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
...

удачи!

Возможно, вы сможете смонтировать файл в интерфейсе обратной связи и выполнить fsck. С сайта www.ingent.net/en/tag/kvm/ , используйте:

losetup -f
/dev/loop0

... чтобы увидеть, что loop0 это следующее свободное устройство, затем назначьте образ диска для этой точки.

losetup /dev/loop0 disk.raw

kpartx используется для создания устройств для доступа к нему.

kpartx -av /dev/loop0

Тогда вы сможете использовать fsck.

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

...и так далее. Эта страница посвящена преобразованию систем для работы на KVM, но эта часть, процитированная выше, может помочь вам выполнить ремонт fsck; Я бы добавил предостережение, что вы должны делать это с копировать вашего файла изображения вместо файла основного изображения на случай, если что-то пойдет не так.

Помимо того, что предложил Барт Сильверстрим, я вижу два пути:

  1. используйте libguestfs для монтирования и управления изображениями
  2. загрузите виртуальную машину с подключенным liveCD ISO и либо сбросьте флаг fsck, либо запустите его с liveCD