Ars Longa, Vita Brevis

Как восстановить загрузчик после переустановки Windows или если таблица разделов изменилась

На мультизагрузочных системах, где одной из операционных систем является Windows, вопрос восстановления загрузчика довольно актуален, ибо Windows при установке имеет тенденцию перетирать его (по большому счету, я не до конца понимаю, зачем Windows перезаписывает MBR: код стандартного загрузчика ищет активный раздел в таблице разделов (Partition Table), считывает его в память и передаёт ему управление — всё очень просто; теоретически достаточно просто изменить таблицу разделов, без перезаписи всей MBR. Или можно просто проверить правильность MBR (наличие сигнатуры 55 AA в последних двух байтах сектора) и при отсутствии сигнатуры переписывать загрузчик. В любом случае перезапись, на мой взгляд, должна быть опциональной, чтобы не доставлять лишнюю головную боль).

Теперь о том, как восстановить загрузчик.

Сначала нужно загрузиться с LiveCD.

Для конкретики будем полагать, что диск с установленным Linux — /dev/sda1

[-]
View Code Bash
# Монтируем раздел в /mnt/linux
cd /mnt
mkdir linux
mount /dev/sda1 /mnt/linux
 
# Связываем /mnt/linux/boot с /boot
mount --bind /mnt/linux/boot /boot

Затем открываем /boot/grub/menu.lst и вносим необходимые изменения, если требуется (например, если таблица разделов изменилась).

После чего устанавливаем загрузчик и перезагружаемся:

[-]
View Code Bash
grub-install
reboot

После этого всё должно работать.

Добавить в закладки