grub2
Резюме основных различий при переходе от grub1 (Hыне известный как grub-legacy) на grub2:
- Файл menu.lst больше не существует.
- Файл grub.cfg управляет теперь grub-экраном.
- grub.cfg автоматически создается скриптами в каталоге /etc/grub.d.
- Обозначение разделов также изменяется. Нумерация разделов начинается с 1, а не с 0. (Нумерация дисководов начинаются дальше с 0):
Linux grub1 grub2 /dev/sda1 (hd0,0) (hd0,1) /dev/sda2 (hd0,1) (hd0,2) /dev/sda3 (hd0,2) (hd0,3) /dev/sdb1 (hd1,0) (hd1,1) /dev/sdb2 (hd1,1) (hd1,2) /dev/sdb3 (hd1,2) (hd1,3)
- Стансы в grub.cfg сформулированы несколько иначе по сравнению с menu.lst. Стансы с menu.lst (grub1) не могут копироваться непосредственно в grub.cfg (grub2). Ни в коем случае не вносите изменений и не меняйте что-либо в файле grub.cfg вручную.
Конфигурационный файл 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 настолько хорошо устроен, что производимые вручную изменения редко требуються.
Обновление с grub1 на grub2
Мы рекомендуем перейти на grub2 и полностью удалить grub1. Вы должны знать, что Bы можете все испортить, так что будьте очень осторожны.
Шаг 1:
Убедитесь в том, что Ваша система обновлена dist-upgrade на уровне загрузки init3.
apt-get update Ctrl+alt+F1 init 3 apt-get dist-upgrade init 5 && exit
Шаг 2:
Удалите полностью grub1:
rm -rf /boot/grub apt-get purge grub-gfxboot
В результате чего, программы fll-iso2usb*, grub-gfxboot* и install-usb-gui* будут тоже удалены. Введите Y для подтверждения.
Шаг 3:
apt-get install grub2 os-prober

Нажмите кнопкy TAB на вашей клавиатуре для перехода на OK

Нажмите кнопкy TAB на вашей клавиатуре для перехода на OK

Используйте стрелки клавиатуры и пробел, чтобы поставить * (asterisk) чтобы выбрать то, чтобы grub2 начал записывать MBR на жестком диске. (В данном примере для установки на диск, USB).
Шаг 4:
update-grub
Шаг 5:
apt-get install install-usb-gui fll-iso2usb
Шаг 6:
Перезагрузите компьютер. После этого, grub-меню (menu.cfg) показывает ядра и список операционных систем, например это:

Если возникли проблемы, прочитайте внимательно эту главу Восстановление grub с помощью chroot.
Редактирование Grub2-параметpов загрузки через на экран
В случае необходимости, времено изменить параметры загрузки для ядра, перечислив в 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:
- Для выявления и подтверждения раздела жесткого диска (например: [h,s] d [a..] X) на все последующие действия необходимы привилегии администратора, поэтому, введите:
$ sux
- С правами root напишите в консоли::
fdisk -l cat /etc/fstab
Таким образом, Вы получаете правильные названия разделов. -
После того, что Вы определили правильный раздел, создайте точки монтирования:
mkdir -p /media/[hdxx,sdxx,diskx]
- Смонтируйте раздел::
mount /dev/xdxx /media/xdxx
- Теперь переписывайте 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) и откройте терминал. Введите sux и нажмите '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
Перезагрузите компьютер.