Update grub alt linux

Grub

Wikipedia сообщает «GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.» GRUB 2

Зачем нужен GRUB, если есть LILO/ELILO?

  • Поддержка модулей Raid, LVM, файловых систем вкупе с интерактивным интерфейсом позволяют выбрать, что загружать откуда угодно в процессе загрузки (а не установки загрузчика).
  • Возможность multiboot (для загрузки, к примеру, XEN)

Как установить GRUB?

Установить дистрибутив с GRUB либо мигрировать загрузчик вручную.

apt-get install grub2 grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB grub-mkconfig -o /boot/grub/grub.cfg

Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).

Проверьте содержимое /etc/sysconfig/grub2: если там нет раскомментированной переменной GRUB_AUTOUPDATE_DEVICE (при смене загрузчика вручную не будет, т.к. она добавляется только alterator-grub), добавьте устройство или их список; если root/boot на md raid1, следует задать список дисков, на которых он размещён — например, не ‘/dev/md0 ‘, а ‘/dev/sdb /dev/sda ‘. После этого стоит выполнить grub-autoupdate.

Как передать свои параметры загрузки ядра?

Для однократного изменения таковых при загрузке GRUB следует:

  1. нажать «e» при курсоре на цели загрузки, соответствующей используемому экземпляру ALT;
  2. в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
  3. в её конец дописать требуемые параметры, отделив пробелом;
  4. нажать F10.

Если нужно, чтобы эти параметры ядра передавались ядру при каждой загрузке, надо прописать их в /etc/sysconfig/grub и дать команду update-grub ; подробнее см. следующий пункт.

Читайте также:  Как настроить резервное копирование линукс

Где отредактировать параметры ядра?

Для постоянного применения иных параметров загрузки следует изменить конфигурацию загрузчика.

  • Параметры ядра содержатся в /etc/sysconfig/grub2
  • После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg

В /etc/sysconfig/grub2 поддерживаются следующие опции:

GRUB_AUTOUPDATE_CFG=true/false

обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ваш_пукт1 ваш_пункт2"
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg

имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)

GRUB_VMLINUZ_SYMLINKS=true/false/default

добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])

GRUB_VMLINUZ_FAILSAFE=true/false/default

добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])

Как дописать свои собственные пункты меню?

  • Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось — возможно, придумается какой-то новый общий случай.
  • Если вам всё же хочется — допишите то, что считаете нужным в /etc/grub.d/40_custom
    • После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg

    Как выбрать то, что будет загружаться автоматом?

    • Выберите нужный вам пункт один раз при загрузке. savedefault должен сохранять ваш выбор на будущее.
    • Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2
    • NB: в 2.00+ поведение изменилось, теперь дополнительные ядра для того же корня спрятаны в подменю «Advanced options».

    Как загрузить Xen?

    Xen грузится с помощью multiboot:

    • проверить, что вы используете grub2 >= 1.98-alt11
    • apt-get install xen xen-libs xen-runtime xen-hypervisor
    • запустить grub-mkconfig -o /boot/grub/grub.cfg
    • выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)

    Как включить работу с последовательным портом?

    Примерно такими строчками в /etc/sysconfig/grub2:

    GRUB_TERMINAL='console serial' GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200'

    (см. также). Не забываем про grub-mkconfig.

    Загрузка Linux и Windows c разных жестких дисков

    Grub2 грузится с основного диска на котором Linux, Windows установлен на дополнительный жесткий диск. В 40_custom добавляем:

    menuentry "Windows XP" < drivemap -s (hd1) $set root='(hd1)' chainloader +1 >

    Если жестких дисков больше двух, играемся с hdX.

    Как установить пароль на редактирование параметров ядра?

    По умолчанию при загрузке любой пользователь может добавить/изменить параметры. Этого можно избежать, если установить пароль.

    Для ограничения загрузки (как с изменением параметров, так и без) можно добавить в файл /etc/grub.d/40_custom строки:

    set superusers="user" password user password

    Внимание! В этом случае не забудьте запретить чтение данного файла обычным пользователям (см. altbug #33099):

    chmod 700 /etc/grub.d/40_custom

    В случае дистрибутивов серии 6.0 отключить графику в /etc/sysconfig/grub (см. altbug #26198):

    GRUB_TERMINAL_OUTPUT='console'

    Для защиты паролем возможности загрузки именно с изменёнными параметрами придётся добавить в переменную CLASS в скрипте /etc/grub.d/10_linux опцию --unrestricted (внимание: этот скрипт по состоянию на версию 2.00-alt20 входит в пакет grub2-common и не помечен как %config, поэтому будет перезаписан при обновлении!).

    Для использования хэшированного пароля следует воспользоваться password_pbkdf2 и командой grub-mkpasswd-pbkdf2 .

    После подобных операций следует перегенерировать конфигурацию командой grub-mkconfig -o /boot/grub/grub.cfg (либо grub2-mkconfig , в зависимости от дистрибутива).

    Как переустановить GRUB?

    После обновления до grub2-pc-2.00-alt1 операционная система может не загрузиться. В таком случае, необходимо иметь под рукой любой live disk. Далее:

    mount-system chroot /mnt/system1
    • Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
    mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /dev/pts /mnt/dev/pts mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys chroot /mnt/ /bin/bash

    rpm -Uvh —oldpackage /home/andy/grub2-pc-1.99-alt9.i586.rpm

    grub-mkconfig -o /boot/grub/grub.cfg

    После описанного выше, у меня загрузилась операционная система.

    Как установить/восстановить загрузочную запись grub ?

    mount-system chroot /mnt/system1
    • Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
    mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /dev/pts /mnt/dev/pts mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys chroot /mnt/ /bin/bash

    После того как проведены подготовительные действия и сделан сhroot, необходимо выполнить

    grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB

    если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi:

    mount -a # достаточно смонтировать точку монтирования /boot/efi grub-efi-autoupdate

    Как отучить GRUB2 запоминать последний выбранный пункт?

    В файле /etc/sysconfig/grub2 изменить строку

    где n номер пункта меню, либо на

    GRUB_DEFAULT='точное название пункта меню'

    Вариант с названием предпочтительнее, поскольку после обновления ядра количество пунктов в меню увеличится и нумерация некоторых пунктов изменится. Внимание! Нумерация пунктов начинается с 0. Список пунктов можно получить по команде:

    grep menuentry /boot/grub/grub.cfg | nl -v0

    Например, пусть мы имеем следующие пункты меню

    # grep menuentry /boot/grub/grub.cfg | nl -v0 0 menuentry "ALT Linux 6.0.1 KDesktop" --class gnu-linux --class gnu --class os < 1 menuentry "ALT Linux 6.0.1 KDesktop (failsafe mode)" --class gnu-linux --class gnu --class os < 2 menuentry "ALT Linux 6.0.1 KDesktop, 3.0.8-std-def-alt0.M60P.1" --class gnu-linux --class gnu --class os < 3 menuentry "Windows Vista (loader) (on /dev/sda1)" --class windows --class os < 4 menuentry "Memtest86+-4.20" < #

    и хотим, чтобы по умолчанию грузился Windows. Тогда в /etc/sysconfig/grub2 пишем

    GRUB_DEFAULT='Windows Vista (loader) (on /dev/sda1)'

    Потом в терминале от пользователя root:

    grub-mkconfig -o /boot/grub/grub.cfg

    Что за жалобы про BIOS Boot Partition?

    При загрузке под PC BIOS используется MBR и небольшая свободная область диска после него (31 килобайт до 63-го сектора) — соответственно первая стадия и core.img; при использовании UEFI ожидается GPT-разбивка загрузочного диска, при которой нет ни MBR, ни этой области. Отсюда возникает необходимость встроить вторую стадию загрузчика куда-то ещё. Таким местом и решили взять определённый в GPT тип раздела BIOS Boot Partition.

    Инструмент разбивки дисков в составе инсталятора ALT Linux сделает такой раздел автоматически под UEFI, если разбиваете вручную или большой диск для BIOS — может потребоваться создать раздел минимального объёма (RED Hat рекомендует 1 мегабайт) с типом «bios boot partition» в терминологии alterator-vm либо меткой «bios_grub» в терминологии parted .

    Во время загрузки Windows искажена картинка, что делать?

    Если при загрузке, например, Windows 7 часть экрана содержит "шум", возможно, отдалённо напоминающий картинку заставки GRUB -- попробуйте выровнять используемые видеорежимы VESA:

    • в файле /etc/sysconfig/grub2 поменяйте GRUB_GFXMODE='800x600' на GRUB_GFXMODE='640x480'[1] ;
    • выполните команду update-grub или grub-mkconfig -o /boot/grub/grub.cfg

    Вы можете сделать заставку текстовой, указав GRUB_GFXMODE='console'.

    Где почитать ещё?

    • Викиучебник (debian-related документация) http://ru.wikibooks.org/wiki/Grub_2, с небольшими изменениями применимо и у нас.
    • http://people.apache.org/~skitching/MineOfInformation/linux/Booting_Linux_on_x86_with_Grub2.html (англ.)
    • GNU GRUB Manual 2.00 http://www.gnu.org/software/grub/manual/grub.html (англ.)
    • дистрибутивные вики: Arch, Frugalware, Gentoo

    А также в операционной системе:

    info grub info -f grub -n 'Simple configuration'

    Примечания

    Источник

Оцените статью
Adblock
detector