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

grub2 / initramfs аварийное восстановление

Один из моих ubuntu 12.04 - это виртуальная машина на хосте VMware ESXi. Он имеет отдельный загрузочный и корневой раздел. Один разработчик по ошибке выполнил fsck для живого корневого раздела, и эта виртуальная машина может загружаться только в режиме initramfs с некоторыми ошибками - «/ proc не найден». Насколько я понимаю, таблица inode корневого раздела была повреждена, что привело к ошибке чтения. Это может быть исправлено с помощью fsck корневого раздела. Поскольку у меня нет прямого доступа к хосту ESXi (я не могу смонтировать этот корневой раздел виртуальной машины с другого хоста), единственный вариант - использовать grub для загрузки виртуальной машины с корневым разделом nfs. Вот что я сделал:

Версия grub - 1.99-21ubuntu3.14.

grub> установить

? = 0 color_highlight = .. color .. default = 0 feature_timeout_style = y have_grubenv = true linux_gfx_mode = text menu_color_hi ... menu_color_normal .. pager = 1 prefix = (hd0, msdos1) / grub recordfail = 1 root = hd0, msdos1

grub> insmod нормальный

grub> lsmod <= в выводе lsmod нет NFS

Имя ... minicmd linux vbe video_fb mmap relocator help ls affs afs afs_be befs befs_be btrfs lzopio cpio fat hfs hfsplus iso9660 jfs .. pxe lvm ..

grub> ls (hd0,1) / <= из вывода, похоже, мой / boot раздел не поврежден и все файлы ядра / initrd доступны

abi-2.6.32-38-server vmcoreinfo-2.6.32-38-server config .. system.map -... grub / abi- .. initrd.img- .. vmlinuz -... memtest .. vmlinuz. . grub> linux / vmlinuz root = / dev / nfs nfsroot =: / opt / share / boot ip = <= здесь я пытаюсь установить nfsroot со следующей ошибкой

ошибка: такого диска нет.

grub> linux (hd0,1) /vmlinuz-3.2.0-30-generic root = / dev / nfs nfsroot =: / opt / share / boot ip =

grub> initrd (hd0,1) /initrd.img-3.2.0-30-generic

grub> загрузка

..... через некоторое время с сообщением о загрузке

ALERT! / dev / nfs не существует. Падение в снаряд! busyBox v1.18.5 .... (initramfs)

Можно ли установить nfsroot из grub? Связана ли вышеуказанная ошибка с отсутствием модуля nfs в выводе "lsmod" в grub? Может быть, есть лучший способ сделать корневой раздел fsck без использования nfsroot? Похоже, в используемой мной версии нет команды bootp или tftpboot, которые дают мне возможность указать на сервер загрузки.

Мой следующий шаг - использовать режим wget @ initramfs, взять новый netboot vmlinuz и initrd.img. Надеюсь, он будет включать модуль nfs.

Заранее спасибо!

Карл

Я восстановил свой экземпляр с помощью обновленного initrd.img, в который встроен модуль nfs. После этого я могу выполнить загрузку системы по сети. Затем проверьте lvm, и система вернется в нормальное состояние.

ура,

Карл

Если вы устанавливаете корень NFS, вам необходимо выяснить, почему корень NFS не монтируется. Начните с загрузки в однопользовательском режиме без NFS и посмотрите, сможете ли вы вручную смонтировать NFS и / или proc / dev. Также см. Статью ниже, в которой описывается порядок, в котором файловые системы монтируются с помощью initrd.

https://www.kernel.org/doc/Documentation/initrd.txt