grub2
Основное резюме GRUB 2:
- Файл с именем grub.cfg контролирует Grub экран.
- grub.cfg автоматически генерируется скриптами в /etc/grub.d.
- Разделы нумеруются начиная с 1 вместо 0 и диски пронумерованы от 0
Linux grub2 /dev/sda1 (hd0,1) /dev/sda2 (hd0,2) /dev/sda3 (hd0,3) /dev/sdb1 (hd1,1) /dev/sdb2 (hd1,2) /dev/sdb3 (hd1,3)
- Результатом файла grub.cfg есть файл 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 настолько хорошо устроен, что производимые вручную изменения редко требуються.
Редактирование 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) на все последующие действия необходимы привилегии администратора, поэтому, введите:
$ su
- С правами 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) и откройте терминал. Введите 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
Перезагрузите компьютер.