Ошибка при переносе CentOS в виртуальную среду

Данная статья есть дополнением к статье о переносе 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 это делается так:

  1. Подключаем к CD-приводу нашей виртуалки установочную iso-шку CentOS, желательно такой же версии как на сервере (в моем случае это был CentOS 5.4).
  2. Бутаемся с нее и при загрузке нажимаем  F5-Rescue что бы загрузится в «Rescue mode» загрузчик нас просит написать linux rescue и нажать <ENTER> — делаем как сказано.
  3. При загрузке в этом режиме, загрузчик предложит автоматически обнаружить установленную на жестком CentOS и смонтировать все ее разделы в /mnt/sysimage — соглашаемся!.
  4. Итак, появилась командная строка. Набираем mount и видим что-то типа:
  5.  Система смонтировала все автоматом, это круто!! Нам остается только сменить окружение с помощью команды chroot /mnt/sysimage
  6. Смотрим что у нас лежит в /boot и бэкапим старый файлик initrd:
  7. Генерируем новый файл initrd, в качестве параметров: имя целевого файла (должно быть идентичным старому) и точная версия ядра, затем проверяем наличие новоиспеченного файла:
  8. Отключаем iso-шку и перезагружаем виртуалку в нормальном режиме — вуаля! :)

После таких манипуляций у меня все замечательно завелось, чего и вам желаю.

Удачи! ;)

Ошибка при переносе CentOS в виртуальную среду: 8 комментариев

  1. Денис

    Автор красава! Сколько искал по данной теме, а нашел простое и верное решение здесь :)

  2. Man!

    Пересобрал Initrd как описано в статье — система грузится и спрашивает логин и пароль, но не принимает их: «Login incorrect»
    Что не так?

  3. Man!

    вопрос снят, все дело оказалось в слетевшей конфигурации клавиатуры — каким-то образом стояла португальская.

  4. oexo

    Спасибо! но над последним скришнотом пришлось подумать, тк строка не полностью с mkinitrd написана

Обсуждение закрыто.