Данная статья есть дополнением к статье о переносе Linux-сервера из физической в виртуальную среду.
Как я уже и говорил, при первой загрузке моей виртуалки, меня ждал такой сюрприз:
Mounting root filesystem. mount: could not find filesystem '/dev/root' Setting up other filesystems. Setting up new root fs setuproot: moving /dev failed: No such file or directory no fstab.sys, mounting internal defaults setuproot: error mounting /proc: No such file or directory setuproot: error mounting /sys: No such file or directory Switching to new root and running init. unmounting old /dev unmounting old /proc unmounting old /sys switchroot: mount failed: No such file or directory Kernel panic - not syncing: Attempted to kill init!
В общем кернел в панике, а я в шоке…полез гуглить :)
И вот что нагуглил.
Решением данной проблемы есть создание нового файла initrd.
Ничего сложного в этом нету. В CentOS это делается так:
- Подключаем к CD-приводу нашей виртуалки установочную iso-шку CentOS, желательно такой же версии как на сервере (в моем случае это был CentOS 5.4).
- Бутаемся с нее и при загрузке нажимаем F5-Rescue что бы загрузится в «Rescue mode» загрузчик нас просит написать linux rescue и нажать <ENTER> — делаем как сказано.
- При загрузке в этом режиме, загрузчик предложит автоматически обнаружить установленную на жестком CentOS и смонтировать все ее разделы в /mnt/sysimage — соглашаемся!.
- Итак, появилась командная строка. Набираем mount и видим что-то типа:
- Система смонтировала все автоматом, это круто!! Нам остается только сменить окружение с помощью команды chroot /mnt/sysimage
- Смотрим что у нас лежит в /boot и бэкапим старый файлик initrd:
- Генерируем новый файл initrd, в качестве параметров: имя целевого файла (должно быть идентичным старому) и точная версия ядра, затем проверяем наличие новоиспеченного файла:
- Отключаем iso-шку и перезагружаем виртуалку в нормальном режиме — вуаля! :)
После таких манипуляций у меня все замечательно завелось, чего и вам желаю.
Удачи! ;)
Спасибо! Всё сработало.
Автор красава! Сколько искал по данной теме, а нашел простое и верное решение здесь :)
Спасибо! Очень выручил!
Спасибо большое! Выручил!
Пересобрал Initrd как описано в статье — система грузится и спрашивает логин и пароль, но не принимает их: «Login incorrect»
Что не так?
Система Centos 6.5
вопрос снят, все дело оказалось в слетевшей конфигурации клавиатуры — каким-то образом стояла португальская.
Спасибо! но над последним скришнотом пришлось подумать, тк строка не полностью с mkinitrd написана