grub2

Основное резюме GRUB 2:

Конфигурационный файл grub2 по умолчанию

Файл /etc/default/grub содержит переменные параметры настройки grub2. Например, тайм-аут, основные настройки меню, параметры ядра, включая графический интерфейс grub и т.д.

Скрипты grub2

/etc/grub.d управляет объектным файлом grub.cfg, который находится в /boot/grub/.

Файл grub.cfg никогда не может изменяться вручную. Все изменения должны произойти в скриптах файлов в /etc/grub.d. os-prober должен обрабатывать 90% всех случаев:

00_header:
05_debian_theme: Sets background, text colors, themes
10_hurd: Locates Hurd kernels
10_linux: Locates Linux kernels based on results of the lsb_release command.
20_memtest86+: If the file /boot/memtest86+.bin exists, it is included in the boot menu.
30_os-prober: Searches for Linux and other OS's on all partitions; includes them in the boot menu.
40_custom: A template for adding custom boot menu entries for other Operating Systems.
60_fll-fromiso: A template for adding custom boot menu entries for fromiso to a USB-stick/SSD-card.
60_fll-fromiso is not to be altered use /etc/default/grub2-fll-fromiso
Прочитайте Booting 'fromiso' with grub2

После того как Вы сделали изменения, grub.cfg должен их знать. После обновления ядра aptosid автоматически проводятся актуализация grub. Изменения, которые проводились вручную, требуют этой команды:

update-grub

Debian-пакет grub2 настолько хорошо устроен, что производимые вручную изменения редко требуються.

Редактирование Grub2-параметpов загрузки через на экран

grub2-Edit

В случае необходимости, времено изменить параметры загрузки для ядра, перечислив в Grub, нажмите клавишу 'e', чтобы редактировать опции ядра. Используйте клавиши направления для выбопа ядра, которого должно редактироваться. Еще в режиме редактирования компьютер с новыми опциями перезапускается с 'Ctrl+x'.

Например, чтобы перейти непосредственно на уровень загрузки 3, добавьте 3 в конце строки linux /boot/vmlinuz.

Ваши изменения, сделанные в режиме редактирования, не являются постоянными. Для постоянных изменений, соответствующих файлах конфигурации должны настраиваться. Смотрите также в главу Конфигурационные файлы grub2.

Двойная и мильтизагрузка с помощью grub2

Grub2 имеет модульную конфигурацию, и, следовательно, позволяет простую команду, чтобы найти вновь установленных операционных систем, которые автоматически интегрируются в файл menu.cfg.Основные команды: Grub2 имеет модульную конфигурацию, что позволяет с помощью простой команды, искать все вновь установленные операционные системы. И если она найдена, оно старается, автоматически интегрируются в файл menu.cfg. Запустите с командой:

update-grub

Если Вам нужно добавить пользовательские записи в menu.cfg, или если 30_os-prober не в состоянии написать chainloader-меню в grub.cfg, дополнения могут проводиться с помощью текстового редактора в файле /etc/grub.d/40_custom.

Примеры для файла конфигурации 40_custom:

menuentry "second mbr"{
set root=(hd1)
chainloader +1
}
menuentry "second partition"{
set root=(hd0,2)
chainloader +1
}

После изменения файла выполните:

update-grub

Если Вы видете сообщение об ошибке, что Grub не признается на диске это значит что нужно восстановить devicemap.

Убедитесь, что при установке другой операционной системе, Grub не записываются в MBR, а в раздел новой операционной системы:

grub-mkdevicemap --no-floppy
update-grub

Предупреждение можно спокойно игнорировать.

В случае ошибки обновление перезаписывает, наверно, MBR. Как исправлять, прочитайте в главе grub2 - MBR перезаписано.

Перезапись grub2 в MBR с жёсткого диска:

/usr/sbin/grub-install --recheck --no-floppy /dev/sda

Вполне возможно, что Вы должны выполнить эту команду несколько раз, пока grub "убежден" в том, что это действительно должно быть делать.

MBR, переписывано Windows - MBR поврежден - восстановление grub2

Примечание: Для восстановления загрузчика grub2 Вы должны иметь aptosid*.iso, моложе чем 2009-04 (moros). Альтернативно Вы можете использовать chroot с каждым live.iso..

Чтобы переписать grub2 в MBR и/или восстановить в целом grub2, Вам нужно запустить aptosid.iso:

  1. Для выявления и подтверждения раздела жесткого диска (например: [h,s] d [a..] X) на все последующие действия необходимы привилегии администратора, поэтому, введите:
    $ su
    
  2. С правами root напишите в консоли::
    fdisk -l
    cat /etc/fstab
    
    Таким образом, Вы получаете правильные названия разделов.
  3. После того, что Вы определили правильный раздел, создайте точки монтирования:
    mkdir -p /media/[hdxx,sdxx,diskx]
    
  4. Смонтируйте раздел::
    mount /dev/xdxx /media/xdxx
    
  5. Теперь переписывайте grub в MBR первого жёсткого диска:
    /usr/sbin/grub-install --recheck --no-floppy --root-directory=/media/xdxx /dev/sda
    

Использование изолированной среды для восстановления поврежденной или перезаписанной grub в MBR

Чтобы восстановить grub в случае его повреждения или перезаписи grub в MBR создаётся chroot в (изолированной) среде. Таким образом, любой ISO-образ можно использовать. С помощью chroot среды можно манипулировать инсталляцию жестких дисков так, что желаемая версия grub смогла бы восстанавливать: grub1 (grub-legacy) или grub2.

Загрузите aptosid Live-ISO который подходит для вашей системы (32 или 64 бит на CD, DVD, на USB-флешке или на карте SSD) и откройте терминал. Введите su и нажмите 'Enter', чтобы добавить root-привилегии..

Используйте команду fdisk -l или blkid, чтобы узнать, какой раздел является разделом загрузки, и, чтобы найти правильные названия разделов. Если Вам лучше нравится применить GUI, тогда используйте gparted:

blkid

Проверьте, идентичны ли элементы в файле fstab с изданием от blkid:

cat /etc/fstab

Предположим, что Ваша корневая файловая система находится на /dev/sda2

mkdir /mnt/aptosid-chroot
mount /dev/sda2 /mnt/aptosid-chroot

Следующим образом, Вам нужно смонтировать /proc, /run, /dev и /sys :

mount --bind /proc /mnt/aptosid-chroot/proc
mount --bind /run /mnt/aptosid-chroot/run
mount --bind /sys /mnt/aptosid-chroot/sys
mount --bind /dev /mnt/aptosid-chroot/dev
mount --bind /dev/pts /mnt/aptosid-chroot/dev/pts

Если Вы загрузите с системного раздела EFI вам также нужно смонтировать его. Предположим что это /dev/sda1:

mount /dev/sda1 /mnt/aptosid-chroot/boot/efi

Ваша chroot-среда теперь установлена и доступ к неё с командой:

chroot /mnt/aptosid-chroot /bin/bash

Теперь Вы можете использовать файлы в локальном кэше apt или изменять нужные файлы для загрузки. В следующем примере grub переписывается в MBR.

Восстановление grub2

apt-get install --reinstall grub-pc

Чтобы убедиться в том, что grub был установлен на правильном устройстве или на правильном разделе, выполните эту команду:

dpkg-reconfigure grub-pc

Перезапись grub2 EFI

apt-get install --reinstall grub-efi-amd64

Восстановление grub1 (grub-legacy)

apt-get install --reinstall grub-legacy

Следуйте инструкциям на экране.

С этой командой chroot среда снова освобождается:

Ctrl+d

Перезагрузите компьютер.

Содержание, последний раз пересмотрено 29/06/2013 0850 UTC