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

Centos 5.5 больше не загружается; ужасная ошибка «Не удалось найти файловую систему / dev / root»

Обычно у меня нет проблем с поиском ответов в Интернете, но я уже 3 дня пытаюсь починить свой отказавший сервер и не делаю никаких шагов дальше.

Рассматриваемый сервер - это машина Centos 5.5 с ядром openvz, если быть более точным, 2.6.18-194.8.1.el5.028stab070.5. У нас нет ни физического доступа к серверу, ни какой-либо последовательной / сетевой консоли. У нас есть аварийный диск на основе Debian, загруженный через pxe.

На сервере два диска SDA:

Disk /dev/sda: 320.0 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *         524        1193     5381775   83  Linux
/dev/sda2               1         523     4200997   82  Linux swap / Solaris
/dev/sda3            1194       38913   302985900   83  Linux

Partition table entries are not in disk order

и SDB:

Disk /dev/sdb: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       38913   312568641   83  Linux

sda1 имеет файловую систему, sda2 - это пространство подкачки, sda3 и sdb1 вместе образуют md0, который монтируется в / vz. Вот файл fstab.

/dev/sda1               /                       ext3    defaults        1 1
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
/dev/sda2               swap                    swap    defaults        0 0
/dev/md0                /vz                     ext3    defaults        0 0

и menu.lst / grub.conf

boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title CentOS (2.6.18-194.8.1.el5.028stab070.5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-194.8.1.el5.028stab070.5 ro root=/dev/sda1
        initrd /boot/initrd-2.6.18-194.8.1.el5.028stab070.5.img
title CentOS (default)
        root (hd0,0)
        kernel /boot/bzImage ro root=/dev/sda1

Теперь по какой-то причине сервер вышел из строя, и мы не смогли снова привести его в рабочее состояние. Наш провайдер попытался «исправить» нашу проблему, переустановив grub через ранее упомянутый спасательный диск при монтировании sda1 @ / mnt.

grub-install --root-directory=/mnt '(hd0)'

http://i.stack.imgur.com/1FRi6.jpg

Это фотография монитора, выводимого на сервер при загрузке. Теперь он может явно загрузить / etc / fstab, поскольку пытается возобновить работу с нашего раздела подкачки.

Теперь, поскольку у нас нет доступа к серверу, мы используем Qemu, чтобы попытаться отладить проблему, но мы никогда не можем быть уверены, что он ведет себя одинаково, плюс каждый раз, когда мы вносим изменения в sda1, нам нужно перезагружать сервер, чтобы qemu увидел изменения, любые указатели на то, чтобы сделать это по-другому, приветствуются. Мы используем qemu следующим образом.

qemu-system-x86_64 -vnc :0 -hda /dev/sda -hdb /dev/sdb

Мы пытались переустановить последнее ядро. Пытался сделать новый initrd без поддержки raid-support и принудительной поддержки ext3. Копирование / boot с сервера с такой же настройкой. Установка grub практически на все возможные диски / разделы.

Понятия не имею, что еще я могу попробовать. Любые советы приветствуются.

tl; dr: Сервер вышел из строя, не перезагружается из-за «не удалось найти ошибку файловой системы»

Как выглядит ваш grub.conf? Может, вдруг появился неверно настроенный параметр root = или init =?

Если это не так, присутствует ли каталог / dev при монтировании раздела CentOS / через систему аварийного восстановления на основе Debian? Если есть, то как это выглядит? Соответствует ли это информации / dev / sda1, если вы проверите ее с помощью stat или ls -lah? Возможно, / dev / root указывает на неправильное место (или был создан с неправильными параметрами mknod).

Да, в наши дни / dev должен быть довольно динамичным, но вы никогда не знаете ... еще в 2.4 дня ядра я подключил одну из моих систем Gentoo и получил ее загрузку после того, как вручную воссоздал некоторые узлы устройств.

Изменить после добавления grub.conf в исходный вопрос:

Самая первая строка (boot = / dev / sda) вашего grub.conf выглядит подозрительно. Попробуйте закомментировать и перезагрузиться.

Если это не сработало, вы также можете проверить /dev/sda1 параметры с ls -lah. Должно получиться так:

brw-r----- 1 root disk 104, 1 Sep 29 01:23 /dev/sda1

Соблюдайте значения, аналогичные 104, 1. Затем создайте / dev / корень с участием

mknod -m 640 /dev/root b 104 1

где вы меняете значения 104 и 1 в соответствии с вашими.

Надеюсь это поможет!

Для нас проблема, описанная здесь, заключалась в отсутствии метки раздела.

Видеть: https://serverfault.com/a/123165/191716