Обычно у меня нет проблем с поиском ответов в Интернете, но я уже 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 в соответствии с вашими.
Надеюсь это поможет!
Для нас проблема, описанная здесь, заключалась в отсутствии метки раздела.