Восстановление grub и ядра c помощью Ubuntu 11.04 livecd (usb-flash)
"Дурная голова покоя рукам не дает" - это про меня, когда с помощью хитрых манипуляций, я удалила ядро и испортила grub. Но, так же интереснее, можно прокачать скилл по починке) Итак, если с вами стряслось что-то похожее, а именно, не грузится выбор загружаемых систем (сломался grub) или kernel panic и что-то наподобие, то внимайте.
1. Монтируем родные разделы
1.1. Вспомним, какие разделы присутствуют в системе с помощью sudo fdisk -l
geba@geba-SQ45S70S:~$ sudo fdisk -lВ моем случае
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 3040 24413184 83 Linux # /
/dev/sda2 3040 5471 19530752 83 Linux # /var
/dev/sda3 5471 5720 1999872 82 Linux своп / Solaris
/dev/sda4 5720 38914 266626048 83 Linux # /home
/var (/dev/sda2)
и /home (/dev/sda4)
вынесены в отдельные разделы. 1.2. Монтируем разделы
sudo mount /dev/sda1 /mntЕсли у вас как и у меня, диск разделен по отдельным разделам, то монтируем их дополнительно
sudo mount /dev/sda2 /mnt/var2. Устанавливаем ядро и обновляем grub
sudo mount /dev/sda4 /mnt/home
2.1. Настройка интернета
Он нам понадобится, чтобы закачать новое ядро. Настраиваем интернет, подключаемся к wifi или что у нас есть. Далее копируем resolv.conf в родную систему, не забыв сделать бэкап.
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.origin2.2. Создаем chroot нашей родной системы
sudo cp /etc/resol.conf /mnt/etc/resolv.conf
sudo chroot /mntТеперь мы у себя дома, поздравляю :)
2.3 Обновляем систему и ставим ядро
apt-get update2.4. Обновляем grub
apt-get install linux-image-generic
update-initramfs -cv -k all
update-grub2.5. Выходим из chroot
exit3. Подчищаем за собой
3.1. Восстанавливаем resolv.conf из п. 2.1.
sudo rm /mnt/etc/resolv.conf3.2. Отмонтируем разделы
sudo cp /mnt/etc/resolv.conf.origin /mnt/etc/resolv.conf
Если у вас диск не разделен под разные разделы, то пропускаете первые две команды.
sudo umount /mnt/home
sudo umount /mnt/var
sudo umount /mnt
Всё, теперь перегружаемся, вытаскиваем LiveCD и ,я надеюсь, радуемся восстановленной системе :)
Все хорошо, только ядро не восстанавливается.
До этого я отформатировал свой /boot (отдельный раздел)
Почти все по инструкции после
sudo ... /mnt
не забыл примонтировать свой /boot
но понадобились:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
иначе groob обновляться не хотел
в результате groob как бы восстановил, в /boot же из ядерных файлов только initrd.img
Огромная благодарность тебе за то, что указал на опцию монтирования --bind, а то все постустановочные сценарии из ядерного пакета жаловались на отсутствие доступа к /dev/null и ldd в chroot системе.