У меня есть сервер Centos 6, который в течение последних 6 месяцев работал нормально на платформе Google Compute Platform 6 месяцев.
Без перезагрузки - сегодня утром завис и при перезагрузке выдает следующие ошибки при загрузке:
[ 3.205240] VFS: Cannot open root device "UUID=e2eb8dc4-d9f9-48e8-9194-cdbff5f4513f" or unknown-block(0,0)
[ 3.208204] Please append a correct "root=" boot option; here are the available partitions:
[ 3.210557] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 3.213256] Pid: 1, comm: swapper veid: 0 Not tainted 2.6.32-673.8.1.lve1.4.3.1.el6.x86_64 #1
[ 3.215642] Call Trace:
[ 3.216263] [<ffffffff81546288>] ? panic+0xa7/0x16f
[ 3.217749] [<ffffffff81c45515>] ? mount_block_root+0x208/0x2bd
[ 3.219708] [<ffffffff81002930>] ? bstat+0x200/0x8d0
[ 3.221633] [<ffffffff81c45620>] ? mount_root+0x56/0x5a
[ 3.223300] [<ffffffff81c45794>] ? prepare_namespace+0x170/0x1a9
[ 3.225390] [<ffffffff81c44ac2>] ? kernel_init+0x2e6/0x2fc
[ 3.227119] [<ffffffff8100971d>] ? __switch_to+0x7d/0x340
[ 3.228979] [<ffffffff8100c3ca>] ? child_rip+0xa/0x20
[ 3.231076] [<ffffffff81c447dc>] ? kernel_init+0x0/0x2fc
[ 3.232883] [<ffffffff8100c3c0>] ? child_rip+0x0/0x20
Я выключил экземпляр, подключил диск к другому компьютеру и:
Это не имеет ничего общего с fstab. Это ошибка вашей initramfs в поиске самого корневого тома. Обычно это происходит из-за начального ramdisk, у которого либо нет необходимых модулей для обнаружения / монтирования блочного устройства, содержащего root, либо отсутствует надлежащая информация о корневом томе, переданная GRUB.
Примером вышесказанного может быть отказ initramfs найти блочное устройство root из-за отсутствия модулей LVM, необходимых для поиска корневого LV на основе LVM.
Кроме того, это может быть связано с тем, что ваш GRUB имеет недопустимую запись root =, поскольку initramfs получает информацию о том, что он должен монтировать из GRUB (как передано во время загрузки). Убедитесь, что вы используете UUID для определения корневого тома, и что UUID, который вы указали в GRUB, соответствует UUID самого тома.
Похоже, он не нашел ничего, что можно было бы смонтировать, что больше способствует проблеме отсутствия модулей в ваших initramfs, чем чему-либо еще. Скорее всего, вам потребуется перестроить initramfs в chroot (используя действующую ОС, которая имеет доступ к этому тому). Dracut - это инструмент, который вы будете использовать для восстановления initramfs.
Если у вас все еще есть проблема после перестройки, то распаковка initramfs и проверка ее содержимого будет разумным решением. В этом случае очень полезно, если вы попали в оболочку initramfs при монтировании root или сбое корневого pivot. В этом случае у вас будет несложное расследование относительно того, что вызывает это (поскольку эта оболочка по умолчанию имеет довольно много инструментов).