Настройка grub astra linux для windows

Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматичес...

Время прочтения
5 мин

Просмотры 119K

Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматически загружается Windows. Немного теории:

GRUB (GRand Unified Bootloader) — программа-загрузчик операционных систем.
GRUB может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.

Значит с теорией мы немного разобрались (думаю этого будет достаточно), теперь же рассмотрим, какие бывают подводные камни, при установке Dual Boot Windows и Linux на одном компьютере.

image

Эксперимент производился на рабочей станции со следующими характеристиками:

Base Board Information

  • Manufacturer: Acer
  • Product Name: Aspire XC600

Memory Device

  • Size: 4096 MB
  • Type: DDR3
  • Speed: 1333 MHz
  • Manufacturer: Kingston
  • Rank: 2

HDD

  • product: ST500DM002-1BD14
  • vendor: Seagate
  • physical id: 0.0.0
  • bus info: scsi@0:0.0.0
  • logical name: /dev/sda
  • size: 465GiB (500GB)
  • capabilities: gpt-1.00 partitioned partitioned:gpt

Доказано, что проблем с установкой Debian 8.6 Jessie совместно с Windows 10 не обнаружено. Debian корректно прописывается в автозагрузке, GRUB запускается без ошибок и две ОС также работают нормально.

Но, как показала практика, не со всеми дистрибутивами такое происходит. При установке Ubuntu 16.04.1 вместо Debian на ту же рабочую станцию вылез первый подводный камень — GRUB не стартовал, и Windows 10 автоматом шла на загрузку.

Решение проблемы было найдено спустя недели три-четыре (тогда уже надоело считать, сколько времени убито на решение проблемы). Оно оказалось неожиданным, но в тоже время вся система заработала. Значит, если вы столкнулись с такой же проблемой, приведенная ниже инструкция может вам пригодится и сэкономить кучу времени.

Важно! До начала выполнения инструкции нужно подготовить LiveCD с дистрибутивом Linux Mint — все операции мы будем выполнять на нем (я выбрал этот дистрибутив из-за того, что на него спокойно можно установить Midnight Commander, что сложно сделать на LiveCD с Ubuntu, так мы получаем больше пространства для маневров). Также стоит заметить, что команда из под консоли update-grub вам не поможет, так как она рассчитана на случай, когда GRUB запускается, но не видит другие ОС кроме Линукса. Также рекомендую создавать резервные копии файлов/каталогов, над которыми вы осуществляете хоть малейшие изменения.

  1. Через терминал, с правами root смонтировать раздел с EFI в папку /mnt. В моем случае, это была команда mount /dev/sda2 /mnt.
  2. Введите команду sudo -s и подтвердите пароль (он пустой по умолчанию) для последующих операций (многие советуют не делать этого, а вводить sudo и команду для выполнения — я поддерживаю это мнение, но инструкция рассчитана на опытных пользователей системы Linux, которые понимаю, что делают все на свой страх и риск).
  3. Запустить Midnight Commander командой mc.
  4. Найти в файловой системе следующий каталог: EFI в папке /mnt.
  5. Переименовать каталог Microsoft во что-нибудь другое, например в Microsoft2.
  6. Создаем новый каталог с именем Microsoft.
  7. Заходим в только что созданный каталог Microsoft и частично создаем внутри его иерархию папок аналогичную старому Microsoft (тому, что переименовали). В моем случае он имел такую структуру папок: /boot/, затем куча папок и файл bootmgfw.efi рядом с ними. Нужно воссоздать структуру папок ровно до этого файла. Т.е. всё, что лежит рядом с ним — не нужно, а всё, что идет до него (т.е. родительские папки, соседние с ними тоже не нужны) воссоздаем в нашей новой папке Microsoft. В моем случае понадобилось создать только папку /boot, итоговый путь до нового каталога вышел таким: /EFI/Microsoft/boot. Можно просто скопировать все папки и файлы — проверено, это работает и можно не создавать все вручную.
  8. Находим в каталоге из шага 6 папку с именем нашего дистрибутива Линукса, в нашем случае это Ubuntu. Копируем (оригиналы файлов и папку ubuntu на всякий случай оставляем, не помешают) все файлы из данной в папки в итоговый каталог, созданный на предыдущем шаге: /EFI/Microsoft/boot.
  9. В получившейся файловой системе находим файл grubx.efi или grubx64.efi (будет только один из них: в зависимости от разрядности установленного Линукса). Переименовываем его в bootmgfw.efi.
  10. Находим файл /boot/grub/grub.cfg в файловой системе установленного Линукса. Открываем его для редактирования. Внутри него находим слово «Microsoft» в контексте строки, начинающейся с «chainloader» и заменяем это слово (должно быть только одно вхождение и именно в строке с «chainloader», так что не ошибетесь) на название каталога, в который мы переименовали Microsoft (т.е. на Microsoft2 в нашем примере). Сохраняем изменения в файле.

Также, в этом файле вы можете поменять названия в списке, который выводит GRUB. Например, вместо

openSUSE Leap 42.2 27.01

в части кода:

menuentry 'openSUSE Leap 42.2 27.01'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  996b3ed5-150f-4de3-a40c-6d385e27d6de
	else
	  search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de
	fi
	echo	'Загружается Linux 4.4.36-8-default …'
	linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro  resume=/dev/sda7 splash=silent quiet showopts
	echo	'Загружается начальный виртуальный диск …'
	initrdefi /boot/initrd-4.4.36-8-default
}

Написать

openSUSE The best choice!:)

:

menuentry 'openSUSE The best choice!:)'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  996b3ed5-150f-4de3-a40c-6d385e27d6de
	else
	  search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de
	fi
	echo	'Загружается Linux 4.4.36-8-default …'
	linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro  resume=/dev/sda7 splash=silent quiet showopts
	echo	'Загружается начальный виртуальный диск …'
	initrdefi /boot/initrd-4.4.36-8-default
}

Хоть мелочь, а приятно! Остальное в коде советую не трогать.

Если трудно разобраться с управлением Midnight Commander (в этом нет ничего страшного, у меня тоже в первый раз были проблемы с этой программой), все операции можно выполнить в файловом менеджере Nautilus (или в другом, не суть важно), но изначально запустив его под правами пользователя root.

После этого идем на перезагрузку и радуемся результату. Но, как оказывается, такая проблема есть и у дистрибутива OpenSUSE Leap 42.2. Как показала практика, если на компьютере установлен дистрибутив OpenSUSE с Windows 10, то приведенная выше инструкция не поможет. Точнее, она поможет, но только ее нужно дополнить. После выполнения основной части выполняем следующие шаги:

  1. После выполнения всех операций заходим в папку /EFI/opensuse/x86_64-efi/ (название итоговой папки x86_64-efi может быть другим в зависимости от архитектуры ПК)
  2. Копируем файл grub.efi (если у вас включена опция Secure Boot, там будет еще файл shim.efi, тогда советую скопировать их вместе)
  3. Заходим в папку /EFI/Boot и удаляем все файлы, которые там есть (при обновлении загрузчика они снова появятся, но в этом нет ничего страшного)
  4. Вставляем файл (или файлы), которые мы скопировали и спокойно идем на перезагрузку.
    Вот и вся инструкция. Думаю, кому-то пригодится…

P.S. Если же у вас все хорошо, GRUB с OpenSUSE запускается, но не видит Windows, радуйтесь — проблема решается всего одной командной: grub2-mkconfig -o /boot/grub2/grub.cfg, а если у вас стоит Ubuntu, нужно выполнить просто update-grub.

Для тех же, кого заинтересовала данная тема, рекомендую прочитать статью: «Начальный загрузчик GRUB 2 — полное руководство».

1. Перед установкой и настройкой ОС создать на НЖМД таблицу разделов в формате GPT. Поскольку в составе инсталлятора ОС такие утилиты отсутствуют, рекомендуется создавать таблицу с использованием Live CD Parted Magic версии >= 6.6. На нем присутствуют графическая утилита gparted и консольная утилита gdisk, позволяющие выполнить указанные действия. Первой должна быть создана ESP. Размер ESP должен быть приблизительно равен 100 МБ. Отформатировать ESP необходимо в ФС FAT.

Примечание

В случае, если на ПЭВМ сначала устанавливается ОС Windows 7 с загрузчиком (U)EFI, предварительно создавать раздел ESP нет необходимости, т. к. инсталлятор Windows 7 создаст такой раздел автоматически;

2. Создать USB-накопитель, загружаемый через (U)EFI BIOS. Для этого удалить на USB-накопителе существующую таблицу разделов, создать новый раздел размером приблизительно 100 МБ, установить ему код ef (ESP), отформатировать созданный раздел в ФС FAT, монтировать и создать на нем следующую структуру директорий:

В директорию /EFI/Boot поместить файл bootx64.efi. Файл bootx64.efi предварительно скачать из открытых источников в сети Интернет либо создать при помощи EDK. Оставшееся на USB-накопителе свободное пространство отформатировать в любой необходимой ФС (FAT, FAT32, EXT, NTFS) и использовать для хранения данных.

На этот раздел необходимо скопировать deb-пакеты GRUB2 версии >=1.99-8. Их можно взять либо в открытых репозиториях debian (из Ubuntu не подойдут, поскольку собраны с использованием библиотек, отсутствующих в ОС), либо собрать самостоятельно из открытых исходных кодов. Должны быть следующие пакеты:

grub-common, grub2-common, grub-efi-amd64-bin, grub-efi-amd64;

3. Установка ОС проводится в штатном режиме в соответствии с эксплуатационной документацией, за исключением установки загрузчика. Загрузчик не устанавливать;

4. После завершения установки ОС необходимо перезагрузить ПЭВМ и вновь загрузиться с установочного диска ОС в режиме «Восстановление». В режиме восстановления в окне «Войти в режим восстановления» выбрать раздел, на который была установлена ОС, а затем выбрать «Запуск оболочки в /dev/наименование_раздела». Нажать <Alt+F2> и в консоли выполнить команду:

5. Выполнить команду, чтобы убедиться, что не установлены пакеты GRUB, кроме fly-admin-grubeditor:

Если какие-то пакеты все же установлены, необходимо их удалить командой:

6. Монтировать раздел с данными USB-накопителя и установить с него все deb пакеты GRUB2. Возможно для этого придется предварительно установить пакеты

gettext и efibootmgr с установочного диска ОС.

7. Создать в корне ФС директорию boot_EFI, монтировать к ней раздел ESP и создать на ней следующую структуру директорий:

Примечание

Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то создавать на разделе ESP всю структуру директорий нет необходимости, т. к. инсталлятор Windows 7 создал ее в процессе установки. Необходимо только создать директорию /EFI/grub;

8. Выполнить команду:

grub-install —boot-directory=/boot_EFI/EFI

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ должны появиться модули grub2;

9. Выполнить команду:

grub-mkimage -o /boot_EFI/EFI/grub/grub.efi -p /EFI/grub -O x86_64-efi acpi ata ata_pthru bitmap bitmap_scale boot cat chain cmp configfile cpio date datetime echo efi_gop elf ext2 extcmd fat fixvideo font fshelp gettext gfxmenu gfxterm gptsync gzio halt help hfs hfsplus jpeg keylayouts keystatus linux loadbios loadenv ls lspci mmap msdospart multiboot2 multiboot normal part_gpt part_msdos parttool png probe read reboot regexp search_fs_file search_fs_uuid search_label search serial terminal terminfo true uhci usb_keyboard usb usbms usbserial_common video_fb videoinfo video

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ будет создан файл grub.efi, собранный с поддержкой необходимых модулей.

Примечание

В данной команде приведен примерный список модулей. При необходимости можно собирать grub.efi с другими модулями, но нельзя использовать модуль at_keyboard, т. к. он может привести к зависанию загрузчика GRUB2;

10. Создать конфигурационный файл grub.cfg. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и необходимо добавить

GRUB2 возможность загружать Windows 7, то в файл /etc/grub.d/40_custom необходимо добавить следующие записи:

menuentry "Windows 7 x86_64 UEFI-GPT" {
search --file --no-floppy --set=root /EFI/Microsoft/Boot/BOOTMGFW.EFI
chainloader /EFI/Microsoft/Boot/BOOTMGFW.EFI
}

В случае, если расположение файла BOOTMGFW.EFI на ESP-разделе отличается от /EFI/Microsoft/Boot/, то необходимо указать корректный путь к нему. Выполнить следующую команду:

grub-mkconfig -o /boot_EFI/EFI/grub/grub.cfg

На некоторых BIOS при перезагрузке ОС возможно некорректное поведение ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр:

reboot=a,w

в menuentry ’Astra GNU/Linux, with Linux
<версия>-generic’ и

menuentry ’Astra GNU/Linux, with Linux
<версия>-generic (режим восстановления)’

в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID.

На некоторых BIOS при загрузке ОС возможно «зависание» ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр:

noefi

в menuentry ’Astra GNU/Linux, with Linux <версия>-generic’ и

menuentry ’Astra GNU/Linux, with Linux <версия>-generic (режим
восстановления)’

в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID;

11. Для соответствия спецификации EFI, а также для обеспечения возможности загрузки ОС средствами АПМДЗ необходимо скопировать файл /boot_EFI/EFI/grub/grub.efi в директорию /boot_EFI/EFI/Boot и переименовать его в bootx64.efi.

Примечание

Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то файл bootx64.efi уже существует. Рекомендуется переименовать его, например в bootx64_bak.efi;

12. Все подготовительные действия по настройке GRUB2 завершены. Размонтировать ESP-раздел, выйти из оболочки chroot-окружения командой exit и перезагрузить ПЭВМ. Загрузить ПЭВМ с предварительно подготовленного USB-накопителя;

13. Если USB-накопитель подготовлен правильно, то при загрузке с него произойдет запуск UEFI Shell. На экране монитора будет отображена карта разделов. Как правило, первым разделом fs0 будет указан ESP-раздел. Для перехода на него выполнить команду:

Затем при помощи команды cd перейти в директорию EFIgrub и запустить на исполнение grub.efi. Если все предыдущие действия выполнены корректно, то появится окно загрузчика GRUB2, в котором выбрать пункт меню ’Astra GNU/Linux, with Linux <версия>-generic’ и выполнить загрузку ОС.

Примечание

Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и в GRUB2 добавлена возможность загружать Windows 7, то в меню GRUB2 появится пункт «Windows 7 x86_64 UEFI-GPT», при выборе которого должна произойти загрузка Windows 7;

14. После загрузки ОС убедиться, что ядро загружено с поддержкой EFI-расширений путем проверки наличия директории /sys/firmware/efi. Теперь осталось передать менеджеру загрузки EFI информацию о загружаемых ОС. Для этого использовать утилиту efibootmgr, входящую в состав ОС. Для просмотра существующего порядка загрузки необходимо выполнить команду:

Для добавления записи, вызывающей загрузчик GRUB2, выполнить:

efibootmgr -L «GRUB Boot Manager» -d /dev/sda -p 1 -l \EFI\grub\grub.efi -c -v

где GRUB Boot Manager — название записи, как она будет выглядеть в BIOS, -d /dev/sda — диск, на котором расположен ESP-раздел, -p 1 — номер ESP-раздела (нумерация начинается с 1), -l \EFI\grub\grub.efi — путь к файлу grub.efi относительно корня ESP-раздела. Путь обязательно указывается через \. Для добавления записи, вызывающей загрузчик Windows 7, выполнить:

efibootmgr -L «Windows Boot Manager» -d /dev/sda -p 1 -l \EFI\Microsoft\Boot\BOOTMGFW.EFI -c -v

В случае неправильного добавления записи ее необходимо удалить следующим образом:

– выполнить команду efibootmgr -v и посмотреть номер записи (например, Boot0004*);
– удалить неправильную запись командой:

efibootmgr -b 0004 -B 0004

15. Перезагрузить ПЭВМ, зайти в BIOS и установить в меню загрузки первым пунктом «GRUB Boot Manager».

Загрузчик системы выполняет очень важную функцию. Он позволяет выбрать какую операционную систему стоит загружать, также инициализирует параметры ядра Linux и подготавливает его к загрузке. В большинстве дистрибутивов Linux используется загрузчик Grub. Он поддерживает все необходимые функции, в том числе и UEFI, а также очень настраиваемый.

В одной из предыдущих статей мы рассматривали установку загрузчика Grub в Linux. В этой же будет будет продолжена тема и более детально рассмотрена настройка загрузчика Grub. Мы рассмотрим как графическую настройку с помощью Grub Customizer, так и более сложный, но более гибкий вариант с помощью ручного редактирования конфигурационных файлов.

Настройка Grub с помощью Grub Customizer

Это самый легкий путь конфигурации загрузчика. Графическая программа настройки Grub Customizer позволяет настроить все основные параметры загрузчика, например, фоновое изображение, шрифт, порядок пунктов загрузки, параметры ядра и многое другое. Все это делается в пару кликов.

Программа доступна в официальных репозиториях большинства дистрибутивов, и вы можете ее оттуда легко установить. Для установки в Ubuntu выполните:

sudo apt install grub-customizer

В Fedora, Red Hat и CentOS команда будет немного отличаться:

sudo yum install grub-customizer

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

grub-customizer

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

grub

Главное меню загрузится через несколько десятков секунд. Программе нужно время, чтобы собрать список операционных систем, установленных на компьютере:

grub1

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

grub2

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

grub3

Последняя вкладка позволяет настроить внешний вид, тут вы можете выбрать одну из доступных тем, установить разрешение, или же задать пользовательские параметры цвета, шрифтов и фоновый рисунок:

grub4

grub5

Кроме того, нажав кнопку дополнительные параметры, вы можете настроить значения переменных /etc/default/grub, которые мы рассмотрим подробнее ниже.

grub7

Когда настройка Grub Customizer будет завершена просто нажмите кнопку Сохранить, чтобы применить все изменения.

grub8

Видео, где показана настройка GNU Grub в Linux с помощью Grub Customizer:

Но это все слишком просто и позволяет сделать только базовые вещи, если же нужна более тонкая настройка загрузчика Grub, придется разбираться с ручной настройкой конфигурационных файлов. Это мы и будем рассматривать ниже.

Сразу нужно сказать, что существует два способа настройки Grub Ubuntu, через конфигурационные файлы. Первый — через конфигурационный файл утилиты grub-mkconfig, который позволяет задать общие параметры для загрузчика и ручное редактирование /boot/grub/grub.cfg.

Первый — рекомендованный, и с помощью него можно настроить большинство параметров, в этом случае настройки не собьются, когда вы обновите ядро или загрузчик. Второй вариант еще более гибкий, но после любого обновления вы потеряете свои настройки. Так что то что можно настроить через /etc/default/grub настраиваем через него, все остальное — через /boot/grub/grub.cfg. Сначала рассмотрим первый вариант.

Настройка Grub через /etc/default/grub

Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.

  • GRUB_DEFAULT — указывает какой пункт нужно загружать по умолчанию. Может быть указан номер, или полное название или же строка saved, которая значит, что нужно загрузить пункт, указанный с помощью grub-reboot;
  • GRUB_SAVEDEFAULT — загружать последнюю использованную запись по умолчанию;
  • GRUB_HIDDEN_TIMEOUT — сколько секунд ждать перед тем, как вывести меню;
  • GRUB_HIDDEN_TIMEOUT_QUIET — если установлено true, то меню не будет показано;
  • GRUB_TIMEOUT — сколько секунд будет показано меню;
  • GRUB_CMDLINE_LINUX — добавить опции ядра для всех ядер, как обычных, так и режима восстановления;
  • GRUB_CMDLINE_LINUX_DEFAULT — добавить опции ядра только для обычных ядер;
  • GRUB_CMDLINE_LINUX_RECOVERY — опции ядра, только для режима восстановления;
  • GRUB_BADRAM — указать адреса оперативной памяти, которые не нужно использовать;
  • GRUB_TERMINAL — модуль терминала для Grub. Можно использовать console, только для текстового режима или gfxterm с поддержкой графики;
  • GRUB_GFXMODE — разрешение экрана в Grub, лучшие использовать auto, чтобы система выбрала сама то что ей нужно.
  • GRUB_DISABLE_RECOVERY — не включать в меню пункты восстановления;
  • GRUB_DISABLE_OS_PROBER — не искать другие операционные системы;
  • GRUB_BACKGROUND — адрес картинки для фона, должна находиться в той же папке что и файлы grub;
  • GRUB_THEME — устанавливает тему Grub.

Например, можно использовать такую конфигурацию:

GRUB_DISTRIBUTOR=""
GRUB_DEFAULT="saved"
GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="8"
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda7 splash=silent quiet"

Но как вы могли понять, этим способом вы не можете настроить порядок пунктов загрузки, а также некоторые другие параметры, поэтому давайте рассмотрим настройку непосредственно конфигурационного файла Grub.

Настройка Grub через /boot/grub/grub.cfg

Файл /etc/boot/grub/grub.cfg управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Поэтому, изменяя этот файл, мы можем настроить Grub как угодно. Сначала попытаемся разобраться с синтаксисом файла. Он очень напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают.

Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash. Рассмотрим основные из этих команд:

  • load_env — загрузить переменные окружения из файла;
  • set — установить значение переменной окружения. Используется как set имя_переменной=значение;
  • insmod — загрузить модуль из папки с модулями Grub;
  • linux — загружает ядро Linux;
  • initrd — подготавливает образ initrd для загрузки ядра;
  • boot — пытается загрузить систему;
  • chainloader — запускает загрузчик из другого раздела;
  • search — установить значение переменной выполнив поиск по заданным параметрам, например, может найти диск по его UUID или метке;
  • menuentry — позволяет создать пункт меню;

Это все команды, которые вам понадобятся. Но две последние нужно рассмотреть подробнее, так как они будут использоваться чаще всего.

Команда search используется для поиска дисков и имеет такой синтаксис:

$ search опции_поиска —set=имя_переменной —hint приметы_устройства основной_параметр

  • Опции поиска задают по какому критерию нужно искать, например, —fs-uuid — искать по UUID, —label — по метке, —no-floppy — не искать в схемных носителях.
  • Приметы устройства дают программе дополнительные подсказки для более быстрого поиска;
  • Основной параметр — значение, по которому будем выполнять поиск.

Например, команда может выглядеть вот так:

search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint='hd0,msdos5' c52ca066-e48f-4df2-bc7e-4d885a354090

Вторая команда, которая нам очень понадобится, это menuentry. Она используется для создания пунктов меню, с помощью которых будут загружаться операционные системы и дистрибутивы linux. Синтаксис этой команды такой:

menuentry имя_пункта {
команды установки переменных окружения
загрузка модулей
linux файл_ядра параметры_ядра
initrd файл_initrd
}

Обычно, для нормальной загрузки операционной системы сначала необходимо установить корневой раздел, для этого, возможно, нужно загрузить некоторые модули, дальше нужно запустить ядро с нужными параметрами и добавить образ initrd если это требуется. Самый простой пример пункта меню:

menuentry "Ubuntu" {
set root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
}

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

# Время показа меню 5 секунд

set timeout=5

# Установим разрешение экрана и укажем что это же разрешение нужно сохранять для ядра:

set gfxmode=»1280×800″
set gfxpayload=keep

# Загрузим необходимые модули для работы видео режима, нужно для использования фоновой картинки

insmod vbe
insmod gfxterm
terminal_output gfxterm

# Установка шрифта с поддержкой Unicode:

font «/boot/grub2/fonts/unicode.pf2»
loadfont unicode

# Загрузим модуль работы с jpeg и зададим фоновый рисунок:

insmod jpeg
background_image «/boot/fon.jpg»

# Установим переменные окружения для настройки цвета меню:

set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black

# Пункт меню для нашей операционной системы:

menuentry «Ubuntu» {
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
}

menuentry «OpenSUSE» {
insmod gzio
insmod part_msdos
insmod ext2
set root=’hd0,msdos5′
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default
}

Теперь, когда вы знаете как примерно выглядит конфигурационный файл Grub, вы сможете разобраться с файлом, созданным автоматически. Пункты меню выводятся по порядку, поэтому чтобы поменять их местами будет достаточно поменять местами команды в файле. Программа настройки Grub — это хорошо, но также важно понимать как все работает на низком уровне.

Выводы

Настройка grub может показаться довольно сложной вещью, но если разобраться, то все вполне выполнимо. В этой статье мы рассмотрели несколько способов настройки загрузчика, для различных ситуаций, и я думаю, теперь у вас не возникнет проблем с этой программой. Если у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Установка и настройка ОС на ПЭВМ с (U)EFI BIOS. Использование (U)EFI-загрузчика

1. Перед установкой и настройкой ОС создать на НЖМД таблицу разделов в формате GPT. Поскольку в составе инсталлятора ОС такие утилиты отсутствуют, рекомендуется создавать таблицу с использованием Live CD Parted Magic версии >= 6.6. На нем присутствуют графическая утилита gparted и консольная утилита gdisk, позволяющие выполнить указанные действия. Первой должна быть создана ESP. Размер ESP должен быть приблизительно равен 100 МБ. Отформатировать ESP необходимо в ФС FAT.

П р и м е ч а н и е. В случае, если на ПЭВМ сначала устанавливается ОС Windows 7 с загрузчиком (U)EFI, предварительно создавать раздел ESP нет необходимости, т. к. инсталлятор Windows 7 создаст такой раздел автоматически;

2. Создать USB-накопитель, загружаемый через (U)EFI BIOS. Для этого удалить на USB-накопителе существующую таблицу разделов, создать новый раздел размером приблизительно 100 МБ, установить ему код ef (ESP), отформатировать созданный раздел в ФС FAT, монтировать и создать на нем следующую структуру директорий:

/EFI
/EFI/Boot

В директорию /EFI/Boot поместить файл bootx64.efi. Файл bootx64.efi предварительно скачать из открытых источников в сети Интернет либо создать при помощи EDK. Оставшееся на USB-накопителе свободное пространство отформатировать в любой необходимой ФС (FAT, FAT32, EXT, NTFS) и использовать для хранения данных.

На этот раздел необходимо скопировать deb-пакеты GRUB2 версии >=1.99-8. Их можно взять либо в открытых репозиториях debian (из Ubuntu не подойдут, поскольку собраны с использованием библиотек, отсутствующих в ОС), либо собрать самостоятельно из открытых исходных кодов. Должны быть следующие пакеты:

grub-common, grub2-common, grub-efi-amd64-bin, grub-efi-amd64;

3. Установка ОС проводится в штатном режиме в соответствии с эксплуатационной документацией, за исключением установки загрузчика. Загрузчик не устанавливать;
4. После завершения установки ОС необходимо перезагрузить ПЭВМ и вновь загрузиться с установочного диска ОС в режиме «Восстановление». В режиме восстановления в окне «Войти в режим восстановления» выбрать раздел, на который была установлена ОС, а затем выбрать «Запуск оболочки в /dev/наименование_раздела». Нажать <Alt+F2> и в консоли выполнить команду:
5. Выполнить команду, чтобы убедиться, что не установлены пакеты GRUB, кроме fly-admin-grubeditor:

dpkg -l | grep grub

Если какие-то пакеты все же установлены, необходимо их удалить командой:

dpkg --purge имя_пакета

6. Монтировать раздел с данными USB-накопителя и установить с него все deb пакеты GRUB2. Возможно для этого придется предварительно установить пакеты

gettext и efibootmgr с установочного диска ОС.

7. Создать в корне ФС директорию boot_EFI, монтировать к ней раздел ESP и создать на ней следующую структуру директорий:

/EFI
/EFI/Boot
/EFI/grub

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то создавать на разделе ESP всю структуру директорий
нет необходимости, т. к. инсталлятор Windows 7 создал ее в процессе установки. Необходимо только создать директорию /EFI/grub;

8. Выполнить команду:

grub-install --boot-directory=/boot_EFI/EFI

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ должны появиться модули grub2;

9. Выполнить команду:

grub-mkimage -o /boot_EFI/EFI/grub/grub.efi -p /EFI/grub -O x86_64-efi acpi ata ata_pthru bitmap bitmap_scale boot cat chain cmp configfile cpio date datetime echo efi_gop elf ext2 extcmd fat fixvideo font fshelp gettext gfxmenu gfxterm gptsync gzio halt help hfs hfsplus jpeg keylayouts keystatus linux loadbios loadenv ls lspci mmap msdospart multiboot2 multiboot normal part_gpt part_msdos parttool png probe read reboot regexp search_fs_file search_fs_uuid search_label search serial terminal terminfo true uhci usb_keyboard usb usbms usbserial_common video_fb videoinfo video

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ будет создан файл grub.efi, собранный с поддержкой необходимых модулей.

П р и м е ч а н и е. В данной команде приведен примерный список модулей. При необходимости можно собирать grub.efi с другими модулями, но нельзя использовать модуль at_keyboard, т. к. он может привести к зависанию загрузчика GRUB2;

10. Создать конфигурационный файл grub.cfg. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и необходимо добавить

GRUB2 возможность загружать Windows 7, то в файл /etc/grub.d/40_custom необходимо добавить следующие записи:

menuentry "Windows 7 x86_64 UEFI-GPT" {
search --file --no-floppy --set=root /EFI/Microsoft/Boot/BOOTMGFW.EFI
chainloader /EFI/Microsoft/Boot/BOOTMGFW.EFI
}

В случае, если расположение файла BOOTMGFW.EFI на ESP-разделе отличается от /EFI/Microsoft/Boot/, то необходимо указать корректный путь к нему. Выполнить следующую команду:

grub-mkconfig -o /boot_EFI/EFI/grub/grub.cfg

На некоторых BIOS при перезагрузке ОС возможно некорректное поведение ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр
reboot=a,w в menuentry ’Astra GNU/Linux, with Linux <версия>-generic’ и menuentry ’Astra GNU/Linux, with Linux <версия>-generic (режим восстановления)’
в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID.

На некоторых BIOS при загрузке ОС возможно «зависание» ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр noefi в
menuentry ’Astra GNU/Linux, with Linux <версия>-generic’ и menuentry ’Astra GNU/Linux, with Linux <версия>-generic (режим восстановления)’ в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID;

11. Для соответствия спецификации EFI, а также для обеспечения возможности загрузки ОС средствами АПМДЗ необходимо скопировать файл

/boot_EFI/EFI/grub/grub.efi в директорию /boot_EFI/EFI/Boot и переименовать его в bootx64.efi.

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то файл bootx64.efi уже существует. Рекомендуется переименовать его, например в bootx64_bak.efi;

12. Все подготовительные действия по настройке GRUB2 завершены. Размонтировать ESP-раздел, выйти из оболочки chroot-окружения командой exit и перезагрузить ПЭВМ. Загрузить ПЭВМ с предварительно подготовленного USB-накопителя;
13. Если USB-накопитель подготовлен правильно, то при загрузке с него произойдет запуск UEFI Shell. На экране монитора будет отображена карта разделов. Как

правило, первым разделом fs0 будет указан ESP-раздел. Для перехода на него выполнить команду:

fs0:

Затем при помощи команды cd перейти в директорию EFIgrub и запустить на исполнение grub.efi. Если все предыдущие действия выполнены корректно, то появится окно загрузчика GRUB2, в котором выбрать пункт меню ’Astra GNU/Linux, with Linux <версия>-generic’ и выполнить загрузку ОС.

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и в GRUB2 добавлена возможность загружать Windows 7, то в меню GRUB2 появится пункт «Windows 7 x86_64 UEFI-GPT», при выборе которого должна произойти загрузка Windows 7;

14. После загрузки ОС убедиться, что ядро загружено с поддержкой EFI-расширений путем проверки наличия директории /sys/firmware/efi. Теперь осталось передать менеджеру загрузки EFI информацию о загружаемых ОС. Для этого использовать утилиту efibootmgr, входящую в состав ОС. Для просмотра существующего порядка загрузки необходимо выполнить команду:

efibootmgr -v

Для добавления записи, вызывающей загрузчик GRUB2, выполнить:

efibootmgr -L "GRUB Boot Manager" -d /dev/sda -p 1 -l \EFI\grub\grub.efi -c -v

где GRUB Boot Manager — название записи, как она будет выглядеть в BIOS, -d /dev/sda — диск, на котором расположен ESP-раздел, -p 1 — номер ESP-раздела (нумерация начинается с 1), -l \EFI\grub\grub.efi — путь к файлу grub.efi относительно корня ESP-раздела. Путь обязательно указывается через \.
Для добавления записи, вызывающей загрузчик Windows 7, выполнить:

efibootmgr -L "Windows Boot Manager" -d /dev/sda -p 1 -l \EFI\Microsoft\Boot\BOOTMGFW.EFI -c -v

В случае неправильного добавления записи ее необходимо удалить следующим образом:

– выполнить команду efibootmgr -v и посмотреть номер записи (например, Boot0004*);
– удалить неправильную запись командой:

efibootmgr -b 0004 -B 0004

15. Перезагрузить ПЭВМ, зайти в BIOS и установить в меню загрузки первым пунктом «GRUB Boot Manager».

Содержание

  1. Операционные системы Astra Linux
  2. Операционные системы Astra Linux
  3. Операционные системы Astra Linux
  4. Настройка загрузчика Grub
  5. Настройка Grub с помощью Grub Customizer
  6. Настройка Grub через конфигурационные файлы
  7. Настройка Grub через /etc/default/grub
  8. Настройка Grub через /boot/grub/grub.cfg
  9. Выводы
  10. Не загружается Linux, чиним загрузчик GRUB
  11. Что такое Grub
  12. От чего могут возникнуть проблемы
  13. Восстановление Grub с помощью LiveCD/USB
  14. Как создать LiveCD/USB
  15. С помощью Rufus:
  16. С помощью Etcher:
  17. Восстановление с помощью chroot
  18. Восстановление Grub в rescue mode
  19. Восстановление Grub с помощью утилиты Boot repair
  20. Выводы

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.

Источник

Настройка загрузчика Grub

Загрузчик системы выполняет очень важную функцию. Он позволяет выбрать какую операционную систему стоит загружать, также инициализирует параметры ядра Linux и подготавливает его к загрузке. В большинстве дистрибутивов Linux используется загрузчик Grub. Он поддерживает все необходимые функции, в том числе и UEFI, а также очень настраиваемый.

В одной из предыдущих статей мы рассматривали установку загрузчика Grub в Linux. В этой же будет будет продолжена тема и более детально рассмотрена настройка загрузчика Grub. Мы рассмотрим как графическую настройку с помощью Grub Customizer, так и более сложный, но более гибкий вариант с помощью ручного редактирования конфигурационных файлов.

Настройка Grub с помощью Grub Customizer

Это самый легкий путь конфигурации загрузчика. Графическая программа настройки Grub Customizer позволяет настроить все основные параметры загрузчика, например, фоновое изображение, шрифт, порядок пунктов загрузки, параметры ядра и многое другое. Все это делается в пару кликов.

Программа доступна в официальных репозиториях большинства дистрибутивов, и вы можете ее оттуда легко установить. Для установки в Ubuntu выполните:

sudo apt install grub-customizer

В Fedora, Red Hat и CentOS команда будет немного отличаться:

sudo yum install grub-customizer

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

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

grub

Главное меню загрузится через несколько десятков секунд. Программе нужно время, чтобы собрать список операционных систем, установленных на компьютере:

grub1

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

grub2

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

grub3

Последняя вкладка позволяет настроить внешний вид, тут вы можете выбрать одну из доступных тем, установить разрешение, или же задать пользовательские параметры цвета, шрифтов и фоновый рисунок:

grub4

grub5

Кроме того, нажав кнопку дополнительные параметры, вы можете настроить значения переменных /etc/default/grub, которые мы рассмотрим подробнее ниже.

grub7

Когда настройка Grub Customizer будет завершена просто нажмите кнопку Сохранить, чтобы применить все изменения.

grub8

Видео, где показана настройка GNU Grub в Linux с помощью Grub Customizer:

Но это все слишком просто и позволяет сделать только базовые вещи, если же нужна более тонкая настройка загрузчика Grub, придется разбираться с ручной настройкой конфигурационных файлов. Это мы и будем рассматривать ниже.

Настройка Grub через конфигурационные файлы

Настройка Grub через /etc/default/grub

Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.

Например, можно использовать такую конфигурацию:

GRUB_DISTRIBUTOR=»»
GRUB_DEFAULT=»saved»
GRUB_HIDDEN_TIMEOUT=»0″
GRUB_HIDDEN_TIMEOUT_QUIET=»true»
GRUB_TIMEOUT=»8″
GRUB_CMDLINE_LINUX_DEFAULT=»resume=/dev/sda7 splash=silent quiet»

Но как вы могли понять, этим способом вы не можете настроить порядок пунктов загрузки, а также некоторые другие параметры, поэтому давайте рассмотрим настройку непосредственно конфигурационного файла Grub.

Настройка Grub через /boot/grub/grub.cfg

Файл /etc/boot/grub/grub.cfg управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Поэтому, изменяя этот файл, мы можем настроить Grub как угодно. Сначала попытаемся разобраться с синтаксисом файла. Он очень напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают.

Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash. Рассмотрим основные из этих команд:

Это все команды, которые вам понадобятся. Но две последние нужно рассмотреть подробнее, так как они будут использоваться чаще всего.

Команда search используется для поиска дисков и имеет такой синтаксис:

Например, команда может выглядеть вот так:

Вторая команда, которая нам очень понадобится, это menuentry. Она используется для создания пунктов меню, с помощью которых будут загружаться операционные системы и дистрибутивы linux. Синтаксис этой команды такой:

menuentry имя_пункта <
команды установки переменных окружения
загрузка модулей
linux файл_ядра параметры_ядра
initrd файл_initrd
>

Обычно, для нормальной загрузки операционной системы сначала необходимо установить корневой раздел, для этого, возможно, нужно загрузить некоторые модули, дальше нужно запустить ядро с нужными параметрами и добавить образ initrd если это требуется. Самый простой пример пункта меню:

menuentry «Ubuntu» <
set root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
>

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

# Время показа меню 5 секунд

# Установим разрешение экрана и укажем что это же разрешение нужно сохранять для ядра:

set gfxmode=»1280×800″
set gfxpayload=keep

# Загрузим необходимые модули для работы видео режима, нужно для использования фоновой картинки

insmod vbe
insmod gfxterm
terminal_output gfxterm

# Установка шрифта с поддержкой Unicode:

font «/boot/grub2/fonts/unicode.pf2»
loadfont unicode

# Загрузим модуль работы с jpeg и зададим фоновый рисунок:

insmod jpeg
background_image «/boot/fon.jpg»

# Установим переменные окружения для настройки цвета меню:

set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black

# Пункт меню для нашей операционной системы:

menuentry «Ubuntu» <
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
>

menuentry «OpenSUSE» <
insmod gzio
insmod part_msdos
insmod ext2
set root=’hd0,msdos5′
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default
>

Выводы

Настройка grub может показаться довольно сложной вещью, но если разобраться, то все вполне выполнимо. В этой статье мы рассмотрели несколько способов настройки загрузчика, для различных ситуаций, и я думаю, теперь у вас не возникнет проблем с этой программой. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Не загружается Linux, чиним загрузчик GRUB

grub2 cli large

Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

Что такое Grub

GRUB screenshot

От чего могут возникнуть проблемы

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.

Восстановление Grub с помощью LiveCD/USB

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.

Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:

rufus ru

Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:

rufus ru1

Находим загруженный образ через менеджер, после чего жмем «Старт».

С помощью Etcher:

Опять же, идем на официальный сайт, где скачиваем последнюю версию утилиты. Далее делаем все так, как показано на этой гифке:

screenshot11

Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:

Открываем таблицу разделов с помощью команды:

Примерно такая таблица будет выведена на экран:

По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.

С помощью следующей команды мы смонтируем этот раздел в /mnt:

Теперь, для записи grub в MBR, нужно ввести следующую команду:

Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.

Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:

Вот и все, восстановление закончено!

Восстановление с помощью chroot

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:

Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.

Далее мы переходим в окружающую среду chroot с помощью команды:

И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:

Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:

Если все прошло успешно, выходим из chroot, используя команду:

Далее нужно отмонтировать все разделы. Для этого вводим в терминал:

В случае, если вы монтировали раздел /boot введите команду:

Теперь перезагружаем систему с помощью:

Можно также обновить меню Grub, используя команду:

Восстановление Grub в rescue mode

Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.

Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:

Для начала вводим следующую команду:

В выводе будет что-то подобное:

В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:

После выполнения команд Grub загрузится в полнофункциональном режиме. Будут найдены все операционные системы, которые установлены на компьютере, после чего будет показано стандартное меню загрузки.

Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:

Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:

И подгрузить модули:

Ну и теперь запустить GRUB:

Восстановление Grub с помощью утилиты Boot repair

1335260967

С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

Если с первым способом все понятно: нужно просто скачать и записать образ с помощью соответствующих инструментов. То во втором уже нужно знать конкретные команды, которые выглядят следующим образом:

В утилите будет доступно два варианта на выбор:

Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

Вам обязательно стоит заглянуть на официальный сайт Boot Repair. Там вы сможете найти более подробную информацию обо всех возможностях и особенностях программы. Там же будет доступна информация о выходе новых версий: фиксах и улучшениях самой утилиты, а также многом и многом другом.

Выводы

Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

Источник

Оригинал: GRUB 2 bootloader — Full tutorial

Автор: Igor Ljubuncic

Дата публикации: 05 сентября 2012 г.

Перевод: С. Русинов

Дата публикации перевода: 4 февраля 2013 г.

А я тебя вижу!
Законченное руководство с сайта Dedoimedo «GRUB 2.00 руководство по мультизагрузке»
(GRUB 2.00 multi-boot tutorial) помещено
в 117-ом выпуске журнала «Linux User & Developer Magazine»! Рекомендую
посмотреть его.

Загрузчик GRUB 2 находится в постоянном развитии. Со временем часть информации должна измениться, так как свойства добавляются, удаляются и меняются. Последние обновления, пожалуйста, смотрите ниже в разделе Updates.

Это руководство описывает GRUB версии 2, последующую версию популярного загрузчика.
Если вас интересует руководство по оригинальной (сейчас, так называемая, legacy)
версии GRUB, пожалуйста, посмотрите эту
статью.

Добро пожаловать в руководство по начальному загрузчику GRUB 2! Обязательно
прочитайте мое руководство
по GRUB legacy. В течение двух с половиной лет только
оно одно набрало около полумиллиона просмотров. Это доказывает, что оно практично
и очень популярно у пользователей во всем мире.

Я хочу повторить подобный успех с руководством по GRUB 2. Моя цель предоставить
пользователям, запускающим UNIX-подобные операционные системы или осуществляющим мультизагрузку
на своих компьютерах с помощью загрузчика GRUB, простое пошаговое руководство, проверенное и
работоспособное, которое позволит им быстро, просто и безопасно управлять загрузкой операционных
систем.

В этом руководстве вы узнаете как работать с GRUB 2. Как добавить и удалить конфигурации
меню, как адаптировать под свои требования загрузочные конфигурации с помощью заголовков и
загрузочных опций, как осуществить двойную загрузку и тройную загрузку операционных систем.
Особое внимание будет уделено совместному использованию GRUB legacy и GRUB 2 и адаптации Windows
к этой структуре. После этого мы узнаем, как избавиться от ошибок. Следуйте за мной.

Содержание

  1. Предупреждение
  2. GRUB 2 — перспективы развития
  3. Введение в GRUB 2

    1. Новая структура
    2. Пример файла grub.cfg
    3. Пример директории /etc/grub.d/
    4. Пример /etc/default/grub
  4. Основное применение

    1. Как работает GRUB 2?
    2. Добавление нового GRUB скрипта
    3. Обновление GRUB
    4. Изменение порядка загрузки скрипта с помощью изменения номеров
    5. Замена загрузочной конфигурации по умолчанию
    6. OS Prober (поиск загрузочных конфигураций)
    7. Переустановка GRUB
    8. Промежуточный итог
  5. Реальные случаи мультизагрузки

    1. Двойная загрузка: две операционные системы с GRUB 2
    2. Двойная загрузка: две операционные системы с GRUB legacy и GRUB 2
    3. Двойная загрузка: Windows 7 и Ubuntu
    4. Обновление GRUB legacy до GRUB 2
  6. Дополнительные тестовые сценарии

    1. Тройная загрузка
  7. Адаптация меню GRUB

    1. Редактирование /etc/default/grub
    2. Удаление memtest из меню
    3. Изменение параметров titles (заголовков) в блоках меню
    4. Изменение темы (фоновое изображение)
  8. Восстановление GRUB 2

    1. Восстановление после неудачной загрузки
  9. Обзор небольших проблем

    1. Механизм получения дампа памяти при падении ядра
    2. Имена команд
  10. Сравнение версий GRUB legacy и GRUB 2

    1. GRUB legacy
    2. GRUB 2
    3. Вывод
  11. Дополнительная информация (документы и ссылки)

    1. Официальная информация
    2. Другие полезные источники по GRUB 2
  12. Заключение
  13. Обновления

Предупреждение

Обратите внимание! GRUB 2 до сих пор является бета-версией программного обеспечения. Несмотря на это, он уже поставляется с Ubuntu подобными системами, хотя является не совсем доработанным продуктом. Вы, наверное, сможете использовать его без каких-либо проблем. Хотя проблемы и существуют, но вероятность повреждения системы невелика.

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

  • Вы должны иметь проверенный порядок действий при отказе системы, чтобы не произошла
    потеря всех ваших данных.
  • Поэтому вы должны владеть инструментами и знаниями о быстром восстановлении системы
    после аварийного сбоя. Это включает в себя восстановление предыдущего состояние системы,
    исправление поврежденных конфигураций, восстановление первичных загрузчиков и другие задачи.
  • Вы должны быть уверены в том, что вы делаете.

Теперь мы знаем об этом и пойдем дальше смело.

Просто помните, что GRUB 2 является бета-версией. Хотя тоже самое можно сказать и о
Google Mail, который был бета-версией приблизительно шесть лет или около этого, поэтому вы должны
быть осторожны. Еще одна важная деталь, содержание и соответствующее ему содержимое в этом
руководстве до сих пор, бывает, меняется вместе с изменениями в программном продукте GRUB 2,
поэтому следите за обновлениями.

GRUB 2 — перспективы развития

Это то, с чем вы должны ознакомиться до опробования GRUB 2. Когда GRUB 2 станет де-факто
загрузчиком для UNIX подобных операционных систем? В настоящее время GRUB legacy прекрасно
справляется и будет продолжать это делать еще много лет. Получив долгосрочную поддержку от компаний,
подобных RedHat и Novell, в серверных дистрибутивах, GRUB legacy остался ключевым игроком на самое
меньшее 5-10 лет.

На настольных машинах внедрение должно происходить быстрее, но не стоит ждать чудес слишком
быстро. Тем не менее, это не помешает начать его изучение. Примите это к сведению, вы столкнетесь с
некоторыми ограничениями совместимости в дальнейшем, особенно во многих консервативных
дистрибутивах, которые не внедряют новые технологии слишком быстро.

На данное время GRUB 2 применяется только в системах семейства Ubuntu, которые занимают
только третью часть рынка настольных систем на базе Linux. Данное обстоятельство делает это
руководство актуальным только для одного из двух или даже трех домашних пользователей Linux,
которые могли бы быть заинтересованы в том, чтобы узнать больше о GRUB 2 и его применении.

Теперь давайте перейдем к реальным механизмам.

Введение в GRUB 2

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

В GRUB 2 внесено много новых изменений. И GRUB 2 имеет ряд улучшений: лучшую переносимость
и систему модулей, поддерживает не-ASCII таблицу символов, динамическую загрузку модулей,
управление физической памятью и другие.

Все эти новшества практически бесполезны для большинства пользователей. Для управления
GRUB 2 необходимо знать изменения в конфигурационных файлах и их размещение.

Новая структура

Конфигурационные файлы старого загрузчика GRUB были (и до сих пор!) размещены в
/boot/grub/, включая файл menu.lst. Этот файл считывался во время загрузки и
его содержимое отображалось на экране пользователя в виде пользовательского меню GRUB.

GRUB 2 размещает свои файлы в трех местах:

/boot/grub/grub.cfg — Это главный конфигурационный файл, который заменил
menu.lst. В отличие от menu.lst, этот файл не может быть отредактирован
вручную! Я настоятельно рекомендую не пытаться вмешиваться в этот файл, используя команду chattr
или что-то подобное. Пусть все остается как есть.

/etc/grub.d/ — Это новая директория, содержащая GRUB скрипты. Эти скрипты
являются структурными элементами, из которых состоит grub.cfg файл. Когда выполнена соответствующая
команда GRUB, скрипты выполняются в определенной последовательности, и создают конфигурационный
файл grub.cfg.

/etc/default/grub — Этот файл содержит установки меню GRUB, которые считываются
GRUB скриптами и записываются в конфигурационный файл grub.cfg. Он является частью GRUB и
предназначен для его кастомизации (обеспечение соответствия требованиям пользователя). Он похож
на старый конфигурационный файл menu.lst, в нем находятся существующие загрузочные конфигурации.

Это значит, что если вы хотите изменить меню GRUB, вам будет нужно отредактировать
существующие скрипты или создать новые и после этого обновить меню. Это больше похоже на LILO,
в которой меню редактировалось на лету, чем на GRUB legacy.

Пример файла grub.cfg

Этот файл размещен в следующией директории /boot/grub/:

Boot grub

Так будет выглядеть grub.cfg файл:

grub.cfg

Это очень интересно, потому что он является просто оболочкой скрипта. Большинство людей, скорее всего, не захотят читать его содержимое или полностью с ним разбираться. Все же этот файл стоит бегло просмотреть перед обновлением GRUB меню, чтобы быть уверенным в правильности конфигураций и в том, что все они находятся в файле, как вы рассчитывали. Выполните это, если хорошо разбираетесь в скриптах.

Пример директории /etc/grub.d/

Содержимое этой директории на только что установленной системе, в данном случае Kubuntu:

Директория

Давайте рассмотрим скрипты:

00_header этот скрипт загружает установки GRUB из /etc/default/grub, такие, как время ожидания выбора конфигурации, конфигурация загружаемая по умолчанию и другие. Позже мы поговорим об этом подробнее.

05_debian_theme определяет фон, цвета и темы. Имя этого скрипта зависит о выбранного дистрибутива и изменяется при выборе другого дистрибутива в GRUB 2.

10_linux загружает конфигурации меню для установленного дистрибутива.

20_memtest86+ загружает утилиту тестирования памяти.

30_os-prober скрипт, который сканирует жесткие диски на наличие других операционных систем и добавляет их в загрузочное меню.

40_custom является шаблоном, который вы можете использовать для создания дополнительных конфигураций, которые добавятся в загрузочное меню.

Вы обратили внимание на нумерацию в именах скриптов? Это несколько похоже на порядок скриптов Запуска/Завершения на различных уровнях выполнения. Нумерация осуществляется согласно очередности. Это означает, что скрипт 10_linux будет выполнен до 20_memtest86+ и поэтому он размещен выше в загрузочном меню.

Эти скрипты не очень интересны. Так же как и grub.cfg файл, они не могут быть отредактированы, за исключением скрипта 40_custom. Вам нужно быть очень осторожными, когда вы работаете с этими скриптами.

Скоро мы увидим как они выглядят и узнаем как с ними работать.

Пример /etc/default/grub

Этот файл находится в /etc/default:

Директория по умолчанию

Эта директория содержит много других файлов, так что не подумайте, что все они используются GRUB. Файл grub является текстовым файлом, это показано на примере скрипта 00_header. Вы можете вносить свои собственные изменения в него, если хотите, конечно. Мы рассмотрим это позже в разделе кастомизация.

Grub

Теперь мы знаем какие файлы являются основными. Посмотрим, как мы можем их использовать.

Основное применение

Теперь, добавим к нашим теоретическим знаниям немного практики.

Как работает GRUB 2?

GRUB 2 работает подобно этому:

/etc/default/grub содержит кастомизацию; /etc/grub.d/ содержит скрипты содержащие информацию о меню GRUB и скрипты, загружающие операционные системы. Когда вы запускаете команду update-grub, он считывает содержимое grub файла и скрипты из grub.d, и создает файл grub.cfg.

Это все!

Для изменения grub.cfg вам необходимо отредактировать grub файл или скрипты, размещенные в grub.d.

Скрипты предназначены для выполнения. Это значит, что стандартная процедура выполнения должна
быть для них включена. Если вы отключите стандартную процедуру выполнения, то они не будут запущены.

Это означает, что вы можете разместить в директории grub.d столько файлов, сколько вам нужно,
так как они не являются исполняемыми оболочкой скриптами, которые может считывать update-grub.
Если вы хотите использовать их, вам нужно активировать для них стандартную процедуру выполнения или,
наоборот, отключить ее, если необходимо сделать их не доступными для update-grub.

Давайте рассмотрим скрипты.

Например, 00_header и 05_debian_theme:

00_header

05_debian_theme

40_custom более содержателен, но он не поможет нам понять, как можно настраивать скрипты. Не беспокойтесь, мы скоро все узнаем.

40_custom

Добавление нового GRUB скрипта

Чтобы добавить новую загрузочную опцию, вам необходимо следовать основным правилам:

Создать новый файл с префиксом XX_ в имени, где XX числовая последовательность. Если вы хотите разместить новую конфигурацию выше других, используйте меньшее число, если вы хотите разместить ее ниже других, то используйте большее число.

Например, 11_ конфигурация будет размещена после конфигурации по умолчанию, 08_конфигурация будет размещена перед конфигурацией 10_ linux.

Следующий шаг — записать необходимые данные. Вот пример:


#!/bin/sh -e
echo "Some string"
cat << EOF
menuentry "Something" {
set root=(hdX,Y)
-- boot parameters --
}
EOF

Давайте рассмотрим этот файл:

Это shell скрипт, что следует из объявления в первой строке файла.

echo "Some string" строка, которую вы увидите после запуска команды update-grub. Если вы не хотите видеть вывод на экран команды echo, то вы можете перенаправить его на стандартную ошибку или /dev/null:

$ echo "Some string" > &2

Пример: echo "Adding openSUSE 11.2"

cat << EOF определяет начало текущей загрузочной конфигурации.

menuentry "Something" это имя, которое будет показано в меню. Пример: Linux.

set root=(hdX,Y) — вернемся к уже знакомому материалу, установка корневого (root) устройства.

Очень важно! GRUB 2 использует нумерацию разделов с 1, а не с 0, как было в GRUB legacy! Это крайне важно, помните об этом!

Другими словами, устройства по прежнему нумеруются с 0, а разделы с 1. Например, это значит, что sda1 теперь (hd0,1), а НЕ (hd0,0), как было раньше!

-- boot parameters -- (загрузочные параметры) будут меняться в зависимости от ОС (операционной системы). В Linux вы можете использовать, что-то подобное:


linux /boot/vmlinuz
initrd /boot/initrd.img

Однако в Windows вы будете использовать, скорее всего, следующую команду:


$ chainloader (hdX,Y)+1

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


#!/bin/sh -e
echo "Adding my custom Linux to GRUB 2"
cat << EOF
menuentry "My custom Linux" {
set root=(hd0,5)
linux /boot/vmlinuz
initrd /boot/initrd.img
}
EOF

Или в случае Windows, приблизительно так:


#!/bin/sh -e
echo "Adding Windows 8 to GRUB 2 menu"
cat << EOF
menuentry "Windows 8" {
set root=(hd0,1)
chainloader (hd0,1)+1
}
EOF

EOF конец GRUB файла.

Теперь у нас есть готовый файл. И нам нужно сделать его исполняемым.

$ chmod +x XX_new_os_script

GRUB 2 команды

Еще одна вещь, на которую мне хотелось бы обратить внимание, это данные, содержащиеся во
фрагменте cat << EOF. Как мы сейчас видели, команда cat определяет начало кода в
скрипте, который будет полностью добавлен в GRUB меню, и он не интерпретируется оболочкой. Другими
словами, все, что находится между cat << EOF и EOF, является командами GRUB.

Мы можем использовать ряд различных команд в этом скрипте. Некоторые из них мы встречали
раньше в GRUB legacy, но появились новые, незнакомые команды.

Не беспокойтесь, есть полный список команд, который включает все команды и даже аналогичные
команды GRUB legacy. Некоторые команды были заменены на другие. Для получения дополнительной
информации, пожалуйста, посмотрите GRUB 2 command list.

Обновление GRUB

Новый скрипт создан и размещен, но GRUB меню (grub.cfg) не изменилось. Вам необходимо
запустить команду update-grub, она выполнит обновление меню.

$ update-grub

Это пример из конфигурации двойной загрузки, которую мы рассмотрим подробнее позже. Я добавил две конфигурации Kubuntu и одну Ubuntu в GRUB меню Ubuntu. Я сделал это, чтобы исключить конфигурацию по умолчанию 10_linux, которая неприглядная и использует в заголовке имя универсального ядра, что вносит путаницу в обозначение и одинаково для Ubuntu и Kubuntu.

Давайте рассмотрим подробнее. Наша первая задача — это добавить новые скрипты. После мы увидим, что они загружаются хорошо и удалим дубликаты.

Новый скрипт

Обновление

После перезагрузки, мы получим вот это. Прошу прощения за некрасивый скриншот.

Размещение новых скриптов

Один раз мы использовали новые скрипты и загрузка прошла удачно. Теперь можно выполнить команду chmod -x для скрипта 10_linux и исключить generic (универсальные) 2.6.31-14 конфигурации, что позволит содержать наше меню в превосходном состоянии.

Изменение порядка загрузки скрипта с помощью изменения номеров

Вы также можете изменить номера скриптов, если хотите. Например, я изменил конфигурацию Kubuntu 08 и 09 и сделал, чтобы они загружались первыми до конфигурации по умолчанию и собственного скрипта Ubuntu.

Переопределение порядка загрузки

Замена загрузочной конфигурации по умолчанию

Это можно сделать примерно так же, как показывалось выше. Для проверки правильно ли загружаются ваши новые скрипты, можно обратиться к рабочему примеру файла grub.cfg и проверить правильность написания linux и initrd строк.

Вот пример, который есть у меня:

Шаблон

И соответственно, я создал новый скрипт:

Копирование

OS Prober (поиск загрузочных конфигураций)

OS Prober может тоже помочь вам. Он найдет дополнительные конфигурации на вашем жестком диске и добавит их в меню. Вы можете использовать его для добавления информации в созданные вами скрипты. Для получения дополнительной информации снова обратимся к файлу grub.cfg, раздел os-prober.

OS prober

Переустановка GRUB

GRUB 2 может быть установлен даже во время работы операционной системы, когда она загружена.
Для этого вам не нужно выходить из среды операционной системы. Просто запустите команду grub-install с указанием устройства или необходимого вам раздела.


$ grub-install <target>

<target> может быть /dev/hda, /dev/sdb, /dev/sdc4, и так далее.

Важно, чтобы вы уделили внимание результатам работы этой команды. Если вы имеете внешние диски, которые подключены во время работы команды, то она добавит эти диски в список отображаемых устройств. В этом нет большого вреда, потому что, если конфигурации окажутся нерабочими, то она их удалит.

grub-install сообщения о нерабочих устройствах

Вот пример, этого:

Установка

Вам нужно открыть файл /boot/grub/device.map, удалить неверные данные, в нашем случае это /dev/sdb и заново выполнить команду grub-install.

Снова установка

Промежуточный итог

Это то, что нам нужно на данный момент. У вас есть инструменты, которые необходимы для начала работы.
До сих пор я старался делать вещи более понятными, поэтому я подготовил краткий обзор, который завершает введение и применение основных разделов. Отсюда мы и начнем.

GRUB 2 имеет три основные части:

  1. /etc/default/grub — файл содержащий установки меню GRUB 2.
  2. /etc/grub.d/ — директория, содержащая скрипты, создающие GRUB 2 меню.
  3. /boot/grub/grub.cfg — GRUB 2 не редактируемый конфигурационный файл.

Команда update-grub считывает директорию /etc/grub.d и просматривает в ней исполняемые скрипты. Скрипты считываются в порядке их нумерации и записываются в файл grub.cfg вместе с установками меню, которые считываются из файла /etc/default/grub.

Загрузочные конфигурации образуются из нескольких источников: по умолчанию это дистрибутив, другие операционные системы, найденные на доступных дисках и скрипты, записанные пользователем в соответствии с требуемыми правилами. Скрипты записываются как shell (sh — оболочка).

Вы можете добавить/удалить конфигурации. Просто выполните команду chmod для нужного скрипта, поэтому можно не удалять неиспользуемые скрипты. GRUB 2 может быть переустановлен в любое время, даже во время работы операционной системы, когда она загружена.

Уже хорошо? Отлично. Вы видите, это довольно просто.

Сейчас давайте рассмотрим несколько реальных случаев. Позже мы будем настраивать GRUB 2 и узнаем как восстановить его после серьезных ошибок и ошибок в конфигурациях.

Реальные случаи мультизагрузки

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

Некоторые эксперименты были проведены на действительно существующих физических
системах, и некоторые скриншоты загрузочных меню представлены в виде фотографий. Поэтому они слегка
искривлены и не так хорошо выглядят, как остальные скриншоты. Это сделано чтобы убедить вас, что
работа с GRUB 2 также проста, как и другие административные задачи. Они просто требуют немного
терпения и внимания.

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

Это, наверное, простейшая конфигурация двойной загрузки. Обе операционные системы используют GRUB 2, таким образом, они могут легко взаимодействовать друг с другом. В нашем случае это две системы Ubuntu 9.10 и Kubuntu 9.10 с одинаковой файловой системой Ext4.

Ubuntu была установлена первой, GRUB 2 установлен в главную загрузочную запись (MBR) на диске /dev/sda. Kubuntu установлена второй, ее загрузчик также установлен в MBR, который перезаписал предыдущий экземпляр GRUB 2. Однако, скрипт OS probe обнаружил и добавил Ubuntu в конфигурационные файлы.

Если вы читали мое руководство по Kubuntu, то вы знаете, что загрузочная конфигурация Kubuntu также обозначается как и Ubuntu. Это может внести путаницу, если у вас несколько различных Ubuntu конфигураций на вашей машине.

В этом разделе мы сделаем следующее:

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

Это даст нам первоначальную информацию о работе GRUB 2 и о том, что нужно делать пользователям для обеспечения правильного функционирования. После этого мы проверим загрузку систем с GRUB 2 из GRUB legacy и наоборот. И после этого мы добавим Windows.

Частично мы видели это ранее. Заменим имеющуюся конфигурацию по умолчанию, которая выглядит не столь привлекательно, как нам бы хотелось.

Поэтому обратимся к файлу grub.cfg. Проверим синтаксис 10_linux и скопируем из него некоторые данные в новые скрипты, которые мы назвали 08_9_10_kubuntu и 09_9_10_kubuntu_recovery. Подобное мы делали раньше.

Запись 1

Восстановление записи

После этого нам необходимо сделать скрипты исполняемыми с помощью команды chmod +x и обновить GRUB. Очень просто.

Новое обновление

Новый скрипт

После перезагрузки и проверки работы системы мы можем заменить 10_linux конфигурацией с собственными скриптами.

Работа сделана, все очень просто!

Двойная загрузка: две операционные системы с GRUB legacy и GRUB 2

Это интересный случай. Предположим, вы имеете две операционные системы подобные Ubunty 9.10, которые используют новый загрузчик GRUB 2 и загружаются из раздела с файловой системой Ext4, и классический дистрибутив подобный openSUSE 11.2, который тоже использует Ext4 файловую систему, но загружается с помощью старой версии GRUB.

Вот что мы узнаем:

  • Как загрузить Ubuntu из среды openSUSE GRUB.
  • Как загрузить openSUSE из среды Ubuntu GRUB.
  • Как редактировать конфигурации в обоих системах, чтобы они оставались рабочими.

Давайте, сделаем это.

Решение: какую систему сделать системой по умолчанию?

Это то, что вам необходимо решить. У вас имеется два варианта загрузки. и вам нужно выбрать один по умолчанию.

Если бы вы спросили меня ранее, то я бы порекомендовал вам использовать GRUB legacy в качестве загрузчика по умолчанию, потому что это качественный продукт и имеет известные официальные каналы поддержки. Запуск GRUB 2 для вас будет не так важен.

Таким образом, если для загрузки вы используете GRUB legacy, то вам необходимо сделать следующее:

  • Установить GRUB в главную загрузочную запись (MBR) во время установки дистрибутива, например, openSUSE, как в нашем примере. Обратите на это внимание, когда устанавливаете дистрибутив!
  • Установить GRUB 2 в корневой раздел, в который установлен используемый дистрибутив, в этом случае Ubuntu. Уделите этому внимание, когда устанавливаете дистрибутив!

Другими словами, если вы планируете использовать GRUB 2, как загрузчик по умолчанию, вам необходимо сделать наоборот.

Выбор загрузчика

Разделы по умолчанию

Настройки загрузчика

Если вы не полностью уверены, посмотрите таблицу разделов.

fdisk

В нашем примере, Ubuntu была установлена первой с корневой директорией в /dev/sda6 и домашней директорией home в /dev/sda7. openSUSE была установлена следующей в /dev/sda1. Так как мы хотим использовать загрузчик GRUB legacy, тогда нужно сделать следующее:

  • Загрузчик Ubuntu необходимо установить в /dev/sda6.
  • Загрузчик openSUSE нужно установить в MBR (/dev/sda).

Когда это выполнено, загрузите систему и посмотрите, что получилось.

После установки openSUSE вы заметите, что зеленое меню GRUB содержит только конфигурацию
openSUSE. Причина этого в том, что GRUB legacy не знает, как интерпретировать структуру GRUB 2,
поэтому не может найти дополнительные конфигурации меню. Вы должны добавить их вручную.

Загрузите openSUSE и откройте в текстовом редакторе файл menu.lst. Вначале сделайте его резервную копию!

В действительности мы не знаем как работать с GRUB 2 конфигурациями из GRUB legacy. Поэтому мы будем конфигурировать его так же как Windows. Настроим последовательную загрузку (chainload) другой операционной системы, когда управление передается другому загрузчику.

Будет ли это работать? Я не знаю, но давайте проверим! Воспользуемся нашим опытом работы с GRUB и попробуем его применить к новый ситуации.

Chainload - последовательная загрузка

Для тех кто не видит, что показано на изображении, мы добавили в файл menu.lst следующие строки:


title Ubuntu 9.10 Karmic Koala
root (hd0,5)
chainloader (hd0,5)+1

После загрузки вы увидите меню (снова неважный скриншот):

Меню GRUB

Если вы попытаетесь загрузить Karmic Koala, выбрав ее из меню, то вы столкнетесь с неожиданной ошибкой 13 загрузчика GRUB:

Не поддерживаемый формат

Этот тип ошибки является общим для Linux пользователей, пытающихся загрузить Windows или Mac разделы. Для Windows решение состоит в переопределении разделов. Необходимо скрыть разделы или сделать их активными, это обычно решает проблему.

В отношении Mac, проблема подобна той, которую мы рассмотрим далее. Версия GRUB legacy, которая поставляется с openSUSE не обрабатывает Ubuntu разделы и структуру GRUB 2. Поэтому необходим другой метод, чтобы выполнить загрузку.

Для получения дополнительно информации, посмотрите GRUB error messages.

Загрузка Ubuntu (с GRUB 2) из openSUSE, правильный способ

Вот что вам нужно сделать, чтобы это работало. Вернитесь в openSUSE и откройте снова файл menu.lst. Вам нужно сделать его похожим на это меню:

GRUB правильная запись

Для тех, кто не видит, что показано на изображении, мы добавили в файл menu.lst следующую конфигурацию:


title Ubuntu 9.10 Karmic Koala
root (hd0,5)
kernel /boot/grub/core.img
savedefault
boot

Вам, наверное, интересно, что мы здесь сделали. Вот ответ, core.img файл является небольшим образом ядра, который позволяет вам корректно загрузить драйвера и правильно идентифицировать и инициализировать действительное ядро. Вы можете рассматривать этот файл как переходный initrd.img.

После перезагрузки будет доступно меню GRUB 2. Выберите нужную строку и загрузите систему.

После загрузки Ubuntu вы можете сделать маленькую хитрость, если хотите. Вы можете повторить запуск update-grub скрипта. Скрипт найдет установленную openSUSE и добавит ее в меню. Вы получите рекурсивное меню GRUB, то есть меню, которое вызывает другое меню, которое в свою очередь, вызывает другое …

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

Смешанное окружение

Другой интересный случай — это двойная загрузка Mandriva 2010 и Ubuntu 9.10. Когда устанавливается Mandriva, вы имеете возможность вручную отредактировать меню загрузчика GRUB, даже до первой загрузки. Это правда, многие дистрибутивы позволят вам конфигурировать загрузочное меню на определенном этапе установки. Если вы знаете, что вам нужно, вы можете сэкономить время и настроить конфигурации меню в процессе установки.

Теперь, как редактировать GRUB меню в процессе установки Mandriva. Это должно выглядеть примерно так:

Добавление Ubuntu

В основном, мы сделаем все тоже самое, что делали с openSUSE. Подробнее, пожалуйста, смотрите в статье выше.

Двойная загрузка: Windows 7 и Ubuntu

Скорее всего это будет интересно совсем не многим пользователям. В общем это все тоже, что было рассмотрено нами раньше. Чтобы было интереснее, я добавил один новый элемент — это обновление GRUB до GRUB 2.

Исходные тестовые данные: двойная загрузка Windows 7 и Ubuntu Jaunty, как в моем новом руководстве. Jaunty использует GRUB legacy, но он может быть обновлен до GRUB 2, что мы и сделаем.

В начале выполним процедуру обновления загрузчика, обратите внимание на эту важную деталь. После этого убедимся, что Ubuntu и Windows системы хорошо загружаются.

Обновление GRUB legacy до GRUB 2

Во-первых, установим пакет GRUB 2:


$ sudo apt-get install grub2

Посмотрите на терминал. Через некоторое время, ответьте на несколько запросов.

Последовательная загрузка (сhainload) — первая

Во-первых, нужно решить, пойти по правильному пути и установить GRUB 2 в MBR (главную загрузочную запись) или по тестовому пути, то есть сделать корневым тот раздел, в который установлена Ubuntu и осуществить последовательную загрузку из GRUB legacy. Мы делали это ранее, и знаем как сделать это сейчас с помощью файла core.img.

Для ясности, мы не пропустим этот шаг.

Chainload - первая последовательная загрузка

Chainload - последовательная загрузка

Следующий шаг — проверка параметров команд. Большинству людей не нужно делать никаких изменений.

Опции

GRUB 2 теперь установлен:

Сделано

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

Ubuntu конфигурация:

Linux конфигурация

Windows конфигурация:

Windows конфигурация

Теперь перезагрузка и проверка. Ваше GRUB меню будет изменено и включает конфигурацию с последовательной загрузкой внутри GRUB 2.

Последовательная загрузка внутри GRUB 2

Возможные ошибки

Вы можете столкнуться с ошибками в GRUB, например, ошибкой 11 или ошибкой 15, когда пытаетесь загрузиться в GRUB 2.

Ошибка

Например, ошибка 11 означает, что выбрано неверное корневое устройство или загрузочное устройство имеет ID (идентификатор) больше, чем его действительный номер. Для устранения ошибки необходимо изменить одну из строк конфигурации.

У вас будет выделена конфигурация, осуществляющая последовательную загрузку, поэтому для
решения проблемы, нажмите e для редактирования конфигурации. Затем измените команду root
так, чтобы она отражала ваше реальное загрузочное устройство. Не забывайте, вы работаете с GRUB
legacy, в котором нумерация разделов начинается с 0.

В худшем случае переберите возможные варианты командой root (hdX,Y), пока не найдете
правильный вариант. Измените строку с командой root, нажмите Enter, после нажмите b для загрузки.

Однако, если GRUB использует непонятную длинную строку, которая называется идентификатором устройства (ID), то вам будет нужно заменить строку root с uuid. После этого вы сможете загрузить ядро. HowtoForge — хороший пример со скриншотами.

В итоге, вы увидите меню GRUB 2:

меню GRUB 2

Как видите, мы имеем Ubuntu конфигурации и Vista загрузчик (Windows 7). Все выглядит хорошо.
Теперь загрузим Ubuntu и Windows 7, и убедимся, что все работает правильно.

Как только все будет выполнено, загрузите Ubuntu и завершите процесс миграции. Сейчас вы можете записать GRUB 2 в MBR и сделать его загрузчиком по умолчанию.


$ sudo upgrade-from-grub-legacy

Миграция завершена

Обратите внимание на отображенное устройство и измените его соответствующим образом. Это все. Мы сделали это. Мы узнали как обновить GRUB, как справиться с некоторыми ошибками и как правильно загрузить двойную загрузочную конфигурацию, которая включает Windows и Linux.

Дополнительные тестовые сценарии

Тройная загрузка

Начиная с этого момента, все очень просто. Используйте любой загрузчик, какой хотите (GRUB, GRUB 2).

Если вы установили в качестве загрузчика GRUB legacy, тогда вы будете загружать Windows конфигурации, так же как мы делали в оригинальной статье. Только еще добавите /boot/grub/core.img для GRUB 2 конфигураций.

Но если вы используете GRUB 2, тогда примените OS Prober для поиска других операционных систем. Если вам не нравятся заголовки, создайте пользовательские загрузочные конфигурации на основе уже существующих (созданных OS Prober).

Теперь все в ваших руках.

Адаптация меню GRUB

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

Редактирование /etc/default/grub

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

/etc/default/grub

GRUB_DEFAULT=0 определяет пункт меню, загружаемый по умолчанию. Нумерация осуществляется с 0, также как и меню. Измените настройки как вам нужно. Если вы установите GRUB_DEFAULT=saved, то будет загружен
пункт, выбранный во время предыдущей загрузки.

GRUB_TIMEOUT="10" определяет время ожидания. Измените настройку как вы хотите. Очень маленькое значение не рекомендуется. Установка значения -1 укажет GRUB ожидать выбора конфигурации пользователем вручную и нажатия Enter.

Как вы видите, существует много других настроек, но я не буду перечислять их все. Самое главное, помните что они существуют, и где их можно найти. Не делайте изменений вслепую. Посмотрите официальную документацию, и всегда делайте резервную копию файла перед его изменением.

Еще один момент, который может заинтересовать вас, как отключить пункты меню recovery.

Отключение пунктов меню recovery

Следующая строка в файле /etc/default/grub позволяет отключить режим отображения пунктов меню recovery. Просто раскомментируйте строку и обновите GRUB:

GRUB_DISABLE_LINUX_RECOVERY=»true»

Отключение пунктов memtest в меню

Если вы хотите скрыть пункты меню, содержащие memtest, то просто выполните команду chmod -x для скрипта 20_memtest. Он не будет запускаемым и не будет считываться при формировании grub.cfg файла и, соответственно, не будет добавлен в него при следующем обновлении GRUB.


$ sudo chmod -x 20_memtest86+

Изменение параметров titles (заголовков) в блоках меню

Можно внести небольшие изменения в существующую конфигурацию, как я предлагал ранее, то есть создать Linux конфигурацию по умолчанию и отключить (с помощью команды chmod -x сделать не исполняемым) скрипт 10_linux. Однако, вы можете редактировать текущий скрипт, который может работать по-разному и предоставлять информацию в более понятном формате.

Это немного странный материал, который можно найти в Ubuntu install title tweaks.

Изменение темы (фоновое изображение)

Вы, наверное, хотите использовать красивое изображение во время загрузки вместо скучного голубого фона. Не переживайте, его быстро можно изменить. Достаточно отредактировать скрипт 05_debian_theme.

Во-первых, найдите нужные вам картинки, которые вы хотите увидеть во время загрузки. Обратите внимание на параметры изображения, чтобы меню было контрастным и выделялось на фоне изображения, и было легко читаемым. Я покажу пример своего оформления, из которого вы все узнаете.

Для начала изображения нужно разместить в какой-то определенной директории. По умолчанию GRUB 2 берет изображения из /usr/share/images/desktop-base. Вы можете использовать это размещение или собственное, которое можете создать сами. Например, /usr/share/images/grub, как показано в Ubuntu blog.

Скопируйте ваши изображения туда, и помните о расширении. По умолчанию GRUB 2 работает с .png и .tga файлами. Вы также можете использовать .jpg файлы, если хотите.

Следующий шаг, редактирование скрипта 05_debian_theme. Необходимо заменить соответствующую запись собственной:

Добавление нового изображения

Что я сделал, закомментировал исходную строку цикла for-loop, которая считывала изображение(я), и создал собственную. Если вы чувствуете себя неуверенно при редактировании конфигурационного файла, вам лучше отложить настройку темы и сделать это позднее.

Мой файл размещен здесь: /usr/share/images/grub/dark.png.

Теперь, файл изменен, выполните команду update-grub для обновления конфигурационного файла grub.cfg. Если вы сделали все правильно, вы увидите сообщение в терминале Found Debian background.

Найдено новое изображение

Обратите внимание, что в меню GRUB не будут использоваться фоновые изображения, если отключена соответствующая опция. Чтобы ее включить, нужно изменить строку use_bg=false в скрипте темы на use_bg=true.

Перезагрузите и проверьте:

Новая тема

Как видите, выбранное мной фоновое изображение оказалось очень плохим! Вы не можете увидеть текст! По этой причине тщательно выбирайте фоновое изображение, которое будете использовать. Лучшим выбором будет тема с небольшими градиентами.

Для получения подробной информации, пожалуйста, обратитесь к Wiki документации.

Восстановление GRUB 2

Восстановление после неудачной загрузки

Вдруг случится, что вы повредите GRUB 2? Должен же быть способ восстановить его и спасти положение? Все как обычно, есть два пути: легкий и сложный.

Легкий путь: Super Grub Disk

Это мощный инструмент, который работает с GRUB 2, так что не беспокойтесь. Установите его на CD/DVD диск, загрузитесь с него и восстановите поврежденный GRUB.

SGD

Сложный путь: Ручное исправление с помощью live CD

Вам необходим live CD, подобный Ubuntu или Kubuntu, который имеет на борту GRUB 2. Загрузитесь в live сессию (сессия временной загрузки операционной системы), монтируйте жесткий диск и установите GRUB 2 в MBR.

Вот последовательность команд, которые необходимо выполнить (предполагая, что диск = /dev/sda). Вам необходимо смонтировать раздел с установленным дистрибутивом (например, Ubuntu) и содержащим /boot директорию. Он может быть отдельным разделом в системе, это зависит от параметров, выбранных во время установки системы.

После его монтирования вам нужно запустить еще раз команду grub-install.


$ mount /dev/sda1 /mnt/
$ grub-install --root-directory=/mnt /dev/sda

Если это не сработает, то вам необходимо будет выполнить длительную и сложную процедуру, которая описана в official GRUB 2 Ubuntu Wiki documentation.

Применяйте команду fdisk для поиска корневого устройства до его монтирования. В качестве примера, предположим, что /dev/sda1 отведен под /boot раздел, а /dev/sda2 является корневым разделом в вашем дистрибутиве.


$ sudo mount /dev/sda2 /mnt

Если у вас /boot раздел размещен на отдельном разделе, то вам необходимо монтировать и его.


$ sudo mount /dev/sda1 /mnt/boot

Далее размонтируем устройства, используя опцию —bind. Для дополнительной информации о работе команды mount, пожалуйста, посмотрите на странице man.


$ sudo mount --bind /dev /mnt/dev

Фактически, сейчас у вас есть корневая система для монтирования. Теперь вы можете изменить размещение root (/) на /mnt. Это можно сделать с помощью команды chroot.


$ sudo chroot /mnt

Это значит, что команда выполненная в этом терминале будет обращаться к /mnt/. Теперь, переконфигурируем GRUB пакет:


$ dpkg-reconfigure grub-pc

Вам должны сказать GRUB, какое устройство нужно использовать. Вы можете осуществить выбор с помощью клавиши пробел. Показанные устройства будут совпадать с данными из файла карты устройств. Если у вас только одно устройство, то путаницы быть не должно.

После этого вы можете выйти из рабочей среды команды chroot. Это делается нажатием сочетания клавиш Ctrl + D. Затем демонтируйте устройства. Первым демонтируйте /dev, а после все остальные.


$ sudo umount /mnt/dev
$ sudo umount /mnt

Теперь выполните перезагрузку. GRUB 2 будет восстановлен.

Обзор небольших проблем

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

Механизм получения дампа памяти при падении ядра

GRUB 2 имеет раздел, в котором настраивается механизм получения и сохранения дампа памяти при падении ядра. Механизм работает подобно Kdump, он установлен, сконфигурирован и может быть изменен в разделе настроек ядра. Применять его не самая лучшая идея, так как скрипт не проверяет смещение, где он может разместить поврежденное ядро. При этом выделение памяти должно быть сделано администратором и непроизвольным образом, а в определенном диапазоне, потому что неизвестен объем поврежденного ядра.

Механизм получения дампа памяти при падении ядра

Имена команд

Две главные команды: grub-install и update-grub, отличаются порядком употребления слова grub, что не очень хорошо. Либо обе должны иметь префикс grub, или обе должны иметь суффикс grub.

Сравнение GRUB legacy и GRUB 2

Теперь хороший вопрос, какой из них вы будете использовать, а какой нет?

GRUB legacy

Это старая версия и больше не разрабатывается, но работает отлично и хорошо зарекомендовала себя. Редактировать GRUB меню очень просто и не требуется высокая квалификация пользователя, то есть нужно только создать в соответствии с правильным синтаксисом и сохранить.

GRUB 2

GRUB 2 является бета версией программного обеспечения. На данный текущая версия 1.97, которая запросто может стать официальной. Это делает его менее успешным кандидатом для применения в производственных системах.

Кроме того, GRUB 2 более сложен в работе, по ряду причин: а) он требует уверенного владения shell, которым владеет далеко не каждый; б) изменить GRUB меню гораздо сложнее и требуется выполнить три этапа, прежде чем оно будет изменено; в) изменения не сохраняются автоматически и должны быть «скомпилированы» в меню всякий раз, при внесении изменений, как и в случае с загрузчиком LILO.

В настоящее время, GRUB 2 поддерживается небольшим числом дистрибутивов, поэтому маловероятно получить поддержку и найти ответы он-лайн (в сети Интернет, например). Поэтому у вас есть шанс столкнуться с проблемами использования GRUB 2 в смешанном окружении.

Вывод

В обоих руководствах по GRUB я показал, что даже сложные ситуации могут быть разрешены сравнительно просто. Это можно осуществить с помощью совместного использования обоих загрузчиков GRUB legacy и GRUB 2, как подробно показано в моих примерах.
Сейчас для вас, наверное, лучше GRUB legacy, если вы не очень опытный пользователь.

Если вы запускаете Ubuntu, тогда вы можете оставить GRUB 2, который станет загрузчиком по умолчанию. Просто убедитесь, что следуете моим инструкциям и вас ждет легкая и беззаботная загрузка.

Дополнительная информация (документы и ссылки)

Я настоятельно рекомендую посмотреть следующие статьи, обзоры и howtos руководства:

Официальная информация

GRUB 2 official site

GRUB 2 Manual

GRUB 2 Ubuntu Wiki documentation

GRUB 2 Command List

Другие полезные источники по GRUB 2

Начальный загрузчик GRUB — полное руководство (моя статья) (перевод на русский язык)

Herman’s GRUB pages (отличная коллекция руководств howto)

GRUB error messages

How to change GRUB 2 theme

GRUB 2 title tweaks (дополнительный материал, поможет избежать трудностей с заменой пунктов меню)

GRUB 2 on archlinux Wiki (дополнителный материал)

How to install GRUB 2 on Ubuntu 9.04

Заключение

Это все. Теперь у вас имеется пошаговое руководство по установке, конфигурированию и разрешению проблем с GRUB 2, которое содержит: описание структуры и основных функций, многочисленные реальные примеры, подобные двойной загрузке с GRUB legacy, последовательной загрузке GRUB 2 и Windows, а также инструменты и инструкции по решению проблем. Это руководство должно быть очень полезно для вас, будь вы начинающий пользователь, недавний пользователь Windows, перешедший на Linux, или ветеран Linux.

В сравнении с GRUB legacy GRUB 2 немного сложнее в использовании, он требует хорошо знать и уверенно работать с shell, с которым большинство пользователей мало знакомы. При этом он не позволяет простого изменения, и загрузочная конфигурация должна собираться каждый раз перед применением после внесения изменений.

Подлинная мощь GRUB 2 до сих пор не раскрыта.

Я надеюсь, что вам понравится это руководство не меньше, чем предыдущее. Я буду обновлять его периодически, если основные функции GRUB изменятся в следующей версии, а также, если напишу важный совет или найду интересный прием.

Успехов и расширяйте ваши познания!

Пока.

Обновления

Любые обновления и все что касается GRUB 2 будет размещено здесь, включая новые свойства, исправления, дополнительные тестовые примеры, а также другие материалы, советы и приемы. Все это вы сможете найти здесь, но можете предложить и свои советы и приемы, и т.п.. Я предлагаю вам, время от времени просматривать этот раздел.

Декабрь 2009, обновление:

Несколько вопросов, заданных моими читателями.

Нужно ли мне что-то делать, если я использую Ext3 файловую систему? Можно ли boot разделы GRUB отформатировать в Ext4?

Ответ: Может быть. Если ваш дистрибутив поддерживает Ext4, то да, если не поддерживает, то нет, потому что он не сможет ничего прочитать из разделов отформатированных в Ext4. Самый простой путь, преодолеть ограничения совместимости файловой системы, использовать под /boot отдельный раздел, отформатированный в Ext3. Этот способ будут поддерживать все современные дистрибутивы Linux.

У меня есть два диска. Ubuntu Karmic находится на втором диске. Что мне использовать в GRUB core.img файл или можно использовать обычный способ последовательной загрузки (chainload)?

Ответ: Eсли ваш загрузчик установлен в корне второго диска, тогда вы можете использовать традиционный метод последовательной загрузки (chainload). Однако, если вы используете один загрузчик, тогда вы должны воспользоваться core.img файлом.

Из-за чего отличаются 40_custom скрипт и ваши пользовательские скрипты?

Ответ: Скрипт 40_custom уже настроен для использования, во время сборки конфигурационного файла GRUB, в соответствии с содержанием других скриптов. Однако, пользовательские скрипты вы можете записать в любое время. Обязательная строка в этом скрипте exec tail -n +3 $0, но вам не нужно использовать ее в собственных скриптах.

Будут ли обновлены мои скрипты, если обновлю ядро другой операционной системы установленной в этой же системе?

Ответ: Автоматического обновления не произойдет. Вам нужно будет перезаписать ссылки на ядра вручную. Один из путей решения этой задачи, создание символической ссылки на последнее ядро и initrd image (Стартовая корневая файловая система, которая монтируется в первую очередь. initrd входит в состав ядра, и загружается как его часть во время загрузки. Ядро монтирует initrd в первой части загрузочного процесса для последующей загрузки модулей и реальной корневой файловой системы.) с помощью vmlinuz и initrd с универсальными именами. Именно это реализовано в openSUSE, и позволяет вам сохранять статическим ваше GRUB меню. После обновления ядра, в изменениях нуждаются только символические ссылки. Изменять конфигурационные файлы GRUB не нужно.

Я не могу установить пользовательский фон в меню GRUB!

Ответ: Посмотрите раздел в скрипте debian_theme и установите значение параметра use_bg в true.

Июнь 2010, обновление:

GRUB 2 текущая версия 1.98 и это stable release (В версию STABLE попадают только протестированные разработки. Это гарантия того, что они останутся в системе и дальше. По мере работы, когда в STABLE накапливается довольно много изменений и есть гарантия стабильности, STABLE переводится в RELEASE. То есть, существуют моменты времени, когда STABLE и RELEASE полностью идентичны.). Имеется несколько небольших изменений в функциональности, но 99% того, что написано выше, все еще актуально.

GRUB 2 rescue CD (диск аварийного восстановления)

Если вы не используете Super Grub Disk (SGD) или live CD с Linux дистрибутивом, поддерживающим GRUB 2, тогда вы, наверное, хотите создать свой собственный CD диск, для восстановления GRUB 2 (rescue CD). Преимущество этой процедуры в том, что rescue CD будет иметь собственное меню GRUB.

Это делается с помощью команды grub-mkrescue, которая похожа синтаксисом на Lucid Lynx, который используется в GRUB2-1.98-1ubuntu5 и Karmic и более ранних версиях, которые использовали бета версию начального загрузчика.

Теперь, посмотрим как это сделать:

Ubuntu 10.04:


$ grub-mkrescue --output=<name>.iso /boot/grub

Вы можете использовать любое имя.

Ubuntu 9.10 and earlier:


$ grub-mkrescue --overlay=/boot/grub <name>.iso

После создания ISO образа, вы запишите его на CD. Затем протестируйте его, желательно на другой машине. Сделайте так, чтобы GRUB загрузился с CD, а не локального диска. Если вы используете имена файлов без указания полного пути, то ISO образ будет создан в текущей директории.

Целевой (тестовый) хост настройте на загрузку с CD, rescue CD загрузит командную строку GRUB. Убедитесь, что загрузка произошла действительно с CD, и он работает как ожидалось, и содержит ваше GRUB меню. Для этого выполните следующую команду:

$ configfile /grub.cfg

Она выведет на экран ваше меню. Если вас устраивает результат, то держите этот диск под рукой на случай аварийных ситуаций. Помните, что нужно создавать новый ISO образ при каждом обновлении вашего GRUB меню.

Вы будете использовать rescue CD для загрузки нужной операционной системы и восстановления GRUB с помощью команды grub-install, как показано ранее. Rescue CD не будет работать, если вы удалите операционную систему или разделы, содержащие ее.

Ссылки:

How to make your own GRUB2RESCUE CD-ROM

Есть также дискуссионные темы доступные на Ubuntu и wilderssecurity.com форумах, но они в основном касаются использования этих же команд и их вариаций в различных версиях Ubuntu.

Спасибо Ocky за этот совет!

Декабрь 2010, обновление:

Еще немного изменений. Здесь вы найдете их краткий обзор и дополнительную информацию.

Условные обозначения

Снова изменены условные обозначения. Для разделов MS-DOS, которые представляют абсолютное большинство среди разделов, GRUB 2 в Maverick (версия Ubuntu 10.10 Maverick Meerkat) использует новые обозначения. Вместо универсального обозначения hd(X,Y), теперь будет hd(X,msdosY), которое может немного запутать. Вы должны это учитывать, когда создаете сложные мультизагрузочные установки.

Для большей информации, пожалуйста, посмотрите мой обзор по Maverick.

Дополнительная информация для чтения

Также, добро пожаловать, на официальный форум Ubuntu в тему по GRUB2.

Декабрь 2011, обновление:

Несколько дополнительных изменений. Официальная версия GRUB 1.99 и в нее внесено несколько изменений. Прежде всего сделаны важные внешние изменения. В старых версиях ядра меню представлялось в виде цельного списка, теперь оно отображается подобно списку файлов в обособленной директории, что делает его более читабельным. Кроме этого, в Ubuntu меню стало отображаться с более высоким разрешением и более мелким размером шрифта. Теперь рассмотрим некоторые другие изменения.

Загрузка Xen ядера в мультизагрузочной конфигурации под управлением GRUB2

Вы видели этот пример в моем вводном руководстве по Xen. Особенности:

Отметьте, пожалуйста, если вы используете последовательную загрузку openSUSE с GRUB 2, то вам необходимо специально создать конфигурацию для Xen ядра, которая не должна быть автоматически добавлена с помощью скрипта OS probe. Посмотрите на отличие этой конфигурации от стандартных загрузочных блоков.

multiboot /boot/xen.gz
module /boot/vmlinuz-xen <options>
module /boot/initrd-xen

Конечно, в ней приведены полные пути к вашим установкам, устройствам, и т.п. Здесь приведен скриншот файла меню, находящегося на моей тестовой машине:

Меню GRUB 2

Поддержка Fedora 16 Verne

Fedora
16 также поддерживает GRUB2. Некоторые установки немного отличаются от систем
базирующихся на Debian. Навигация в Fedora покажется вам немного более сложной
после работы в GRUB 2 на Ubuntu и системах из его семейства. Поддержка GRUB2
в Fedora реализована не очень хорошо, так как она совсем недавно поддерживает
GRUB 2, и, конечно, имеются ошибки в некоторых функциях.

Как обновить меню GRUB

Для обновления используйте следующую команду:

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

Команда создаст grub.cfg файл в соответствии с вашими скриптами из /etc/grub.d.

Fedora - файл grub.d

Изменение скрипта header (строка меню по умолчанию и время ожидания)

В Ubuntu изменить пункт меню по умолчанию и время ожидания очень просто. Но в Fedora это совсем не так. Редактирование файла 00_header является более сложным. Вы должны изменить функционал скрипта, чтобы получить то, что вам нужно.

Время ожидания задается функцией make_timeout(). Эта функция допускает два входных параметра: GRUB_TIMEOUT и GRUB_TIMEOUT_BUTTON, которые объявляются в начале скрипта 00_header.

Заголовок файла

Переменные будут принимать различные значения в зависимости от параметров рабочих окружений и конфигураций. Если для вас сложно отследить присвоение значений, то вы можете просто присвоить им требуемые значения.

Функция make_timeout(), вы можете отредактировать ее объявление set timeout=${2} и сделать ее значение статическим. Скрипт проигнорирует входные параметры и будет использовать присвоенные вами значения. Например, вы хотите увеличить время ожидания с 5 секунд до 20 секунд.

функция make_timeout

В этом случае измените скрипт следующим образом:

#set timeout=${2}
set timeout=20

Вначале обязательно сделайте резервную копию! И не нужно ничего удалять, просто закомментируйте строки, которые вам не нужны. Этот метод позволит вам вернуть предыдущее состояние, если это потребуется.

После редактирования файла, вы должны заново собрать grub.cfg файл. После того как файл обновится, вы можете проверить правильно ли обрабатывается значение timeout из конфигурационного файла.

Изменения времени ожидания

И теперь загружаемся, заметьте время ожидания на счетчике.

Загрузка

Дополнительная информация

Более подробную информацию можно получить на следующих онлайн страницах:

GRUB2 — FedoraProject.org

GRUB2 features — FedoraProject.org

Если вы считаете, что есть необходимость в отдельном руководстве, по применению Fedora и GRUB2, то мы можем сделать его.

Июнь 2012, обновление:

Вышла официальная
версия GRUB 2.00. GRUB 2 стал привлекательным во всех отношениях. Мы увидим
главную release версию GRUB 2 в различных дистрибутивах уже к концу этого года.
Для конечных пользователей изменения будут незаметны. Просто используйте это
руководство и приятно проводите время.

Это еще не все…

Если вам понравилась статья, поделитесь ею с друзьями:


0 / 0 / 0

Регистрация: 27.01.2021

Сообщений: 3

1

27.01.2021, 14:54. Показов 9819. Ответов 30


Добрый день, заранее извиняюсь если такая тема уже есть.
Помогите пжл сделать дуал бут. Опишу ситуацию: есть пк с материнкой asrock b460m-hdv и накопителем М.2 на 256гб. материнка новая, поддерживает только uefi, быстрая загрузка отключена, secure boot тоже отключен, используется режим legacy usb support.
Флешки для вин10 и астры отформатированы в fat32, схема разделов GPT. установил вин10, раздел efi fat32 присутствует, далее ставлю астру разметку диска выбрал автоматическую. на этапе установки загрузчика grub система не спрашивает куда его ставить и не выдает предупреждение что на диске обнаружена еще одна операционная система, установка завершена, обе ОС встали вроде нормально. Выставляю в биосе загрузку с астры, появляется grub но вин10 в списке загрузчиков нет, в астре прописываю sudo update-grub, появилась винда но при нажатии запуска вин10 на мониторе висит логотип астры и дальше ничего не идет. А если в биосе ставлю загрузку windows boot manager то запускается вин10. может поможет кто нибудь что надо сделать или что сделано не так?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

28.01.2021, 15:39

2

Мало вероятно, что поможет, но можно попробовать в 10-ке отключить гибернацию. Открыть ком.строку от имени администратора и выполнить

Если не поможет, то системы можно загружать через Boot menu (F12 или другая клавиша),, чтобы каждый раз не заходить в BIOS.



0



0 / 0 / 0

Регистрация: 27.01.2021

Сообщений: 3

28.01.2021, 21:45

 [ТС]

3

завтра попробую, отпишусь



0



Эксперт NIX

2657 / 776 / 173

Регистрация: 14.01.2013

Сообщений: 3,582

29.01.2021, 04:25

4

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

powersfg -h off

Небольшая опечатка вкралась.



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

29.01.2021, 09:58

5

Цитата
Сообщение от Kubuntovod
Посмотреть сообщение

Небольшая опечатка вкралась.

Спасибо. Исправляюсь, правильная команда



0



Developer☭

210 / 112 / 24

Регистрация: 01.02.2019

Сообщений: 505

Записей в блоге: 2

29.01.2021, 22:18

6

dima_58rus, нет сообщения, наверно потому что Вы выбрали авто-установку . В астре дебиановский установщик, откуда я могу сделать вывод, что авто-установка кушает весь диск полностью (вообще должно об этом писаться в установщике). То бишь на одном диске у Вас должна быть одна система. Советую форматнуть весь диск (дабы переустановить grub) создать 3 раздела:
1 — винда
2 — астра
3 — своп раздел
(Всё это можете сделать в установщике винды). Далее, когда винда будет установлена, перезагружаемся, запускаем установщик астры. Там всё как в debian: тык, тык, далее, далее. На моменте с разметкой диска вы должны присвоить второму разделу метку «/» (место где будет монтироваться система) и swap третьему разделу. Далее, далее — готово. Из фс советую btrfs, либо jfs, т.к. они шустрые, так же советую настроить LVM.

Добавлено через 1 минуту

Не по теме:

Андрей1224, о, а это мне пригодится :D



0



0 / 0 / 0

Регистрация: 27.01.2021

Сообщений: 3

30.01.2021, 20:23

 [ТС]

7

попробую этот вариант тоже сделать, времени пока не очень много позаниматься этим. Вчера вот ради интереса нашел на работе комп с относительно свежей материнкой на uefi Asus B365M-A, взял теже флешки с ОС ничего не перезаписывал, накатил 10ку потом астру, такие же шаги установки прошел, обновил загрузчик граб, и все заработало на этой материнке (через граб загружаются обе ОС без проблем). Даже с включенной опцией Быстрая загрузка в uefi. Чудеса какие то. Может на Асроке еще биос сырой или сама по себе материнка такая (



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

31.01.2021, 09:27

8

Цитата
Сообщение от dima_58rus
Посмотреть сообщение

Чудеса какие то. Может на Асроке еще биос сырой или сама по себе материнка такая

Да никаких чудес. Железо всё разное, а «сырых» и «кривых» UEFI прошивок как говорится «вагон и маленькая тележка» (хотелось бы, чтобы их было поменьше).



1



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

26.10.2022, 10:29

9

Доброго времени суток!
Сразу к сути проблемы. В наличии имеется пользовательский ПК Dell OptiPlex 7090 с установленной W10 на SSD M2 (NVMe KIOXIA 256GB). При установке Astra Linux CE второй ОС на SSD, установка Астры проходит ровно, но при этом она даже не спрашивает куда ставить GRUB, прописывает все в автомате. После перезагрузки появляется меню из 3-х пунктов: 1. AstraLinuxCE, 2. Windows Boot Manager (на nvme0n1p2), 3. System Setup.
При выборе 1 пункта Астра грузится нормально.
При выборе 2 пункта появляется серая заставка Астры и винда не грузится.
При выборе 3 пункта загрузка BIOS-a.
В биосе есть возможность выставить приоритет загрузки. Если ставишь WBM, то сразу грузится винда безо всяких меню выбора. Если выставляешь приоритет загрузчика astralinuxce — появляется меню выбора загрузки ОС, но при выборе загрузки винды — заставка Астры и винда не загружается.
В биосе ПК есть предупреждение NOTE: Legacy Boot not supported on this platform. Понятно, что режим легаси не поддерживается, но таких ПК достаточно большое количество и все они у пользователей в работе. Переустанавливать W10 — это такое себе…

Самое интересное в том, что на ПК Lenovo, HP c SSD M2, Астра встает ровно и загрузка ОС на выбор происходит без проблем.
Версия прошивки контроллера NVMe KIOXIA 256GB самая последняя.
Четвертую неделю ломаю голову ,
Подскажите, пожалуйста, в каком направлении копать? Буду благодарен за любые ответы.



0



Андрей1224

Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

26.10.2022, 14:12

10

Цитата
Сообщение от Yugra_86
Посмотреть сообщение

В биосе ПК есть предупреждение NOTE: Legacy Boot not supported on this platform. Понятно, что режим легаси не поддерживается, но таких ПК достаточно большое количество и все они у пользователей в работе. Переустанавливать W10 — это такое себе…

Windows переустанавливать смысла нет. Про Legacy загрузку это просто предупреждение, к Вашим системам не относится, так как системы у Вас установлены в UEFI режиме.

Я бы посоветовал
1. Проверить в UEFI-BIOS включена или нет Fast Boot (ещё может называться Quick Boot), если включена, то отключить. Проверить загрузку систем.
2. В Windows отключить гибернацию

Bash
1
powercfg -h off



0



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

26.10.2022, 15:24

11

Добавлено через 2 минуты

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

Windows переустанавливать смысла нет. Про Legacy загрузку это просто предупреждение, к Вашим системам не относится, так как системы у Вас установлены в UEFI режиме.
Я бы посоветовал
1. Проверить в UEFI-BIOS включена или нет Fast Boot (ещё может называться Quick Boot), если включена, то отключить. Проверить загрузку систем.
2. В Windows отключить гибернацию
Bash
Выделить код
1
powercfg -h off

Андрей1224 Спасибо за ответ. К сожалению не помогло.
1. В биосе отсутствует полное отключение FastBoot, есть только опция Minimal, при которой сокращается время загрузки за счет пропуска определенного оборудования и конфигурации, инициализируемых во время загрузки.
2. Гибернация в W10 отключена.
Dell такой Dell…



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

27.10.2022, 09:55

12

Yugra_86,
Secure Boot в BIOS не включена? Если включена, то отключить.
Можно попробовать обновить GRUB.
Более радикальный вариант, это переустановить GRUB? может в нём что-то криво «встало».



0



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

27.10.2022, 15:12

13

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

Secure Boot в BIOS не включена? Если включена, то отключить.
Можно попробовать обновить GRUB.
Более радикальный вариант, это переустановить GRUB? может в нём что-то криво «встало».

Спасибо за ответ!

Secure Boot отключен.

Команда update-grub выполняется, GRUB видит Windows Boot Manager, показывает где находится (nvme0n1p2) и полный путь к bootmgfw.efi, говорит, что EFI confuguration добавлен в меню.

Переустановка GRUB не спасает положение.

По поводу «кривизны» — раз 10 начинал с нуля: «голый» SSD — установка W10 — установка Astra Linux CE. Положительного эффекта не наблюдается. Все дистрибутивы лицензионные.
Хотя, если ставить Ubuntu рядом с W10 — меню выбора ОС работает!
Предполагаю, что в Ubuntu самый «свежий» загрузчик GRUB, который корректно распознает и корректно отрабатывает передачу виндовому загрузчику при выборе ОС.
Но у меня есть Астра и ставить нужно ее, какой бы не был там старый загрузчик…

Может быть есть какие-то еще мысли?



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

27.10.2022, 15:24

14

Цитата
Сообщение от Yugra_86
Посмотреть сообщение

Может быть есть какие-то еще мысли?

Что-то крутится в голове, что я упускаю какую-то деталь, но пока не могу вспомнить что именно. Если вспомню, то напишу. А пока Вам видимо придётся загружать Windows через Boot Menu (F12 или другая клавиша). Ещё вариант, это попробовать использовать загрузчик rEFInd, возможно он сможет загружать Windows и Астру.



0



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

27.10.2022, 15:32

15

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

Что-то крутится в голове, что я упускаю какую-то деталь, но пока не могу вспомнить что именно. Если вспомню, то напишу. А пока Вам видимо придётся загружать Windows через Boot Menu (F12 или другая клавиша). Ещё вариант, это попробовать использовать загрузчик rEFInd, возможно он сможет загружать Windows и Астру.

Спасибо за ответ!
С целью предотвращения несанкционированных действий со стороны пользователя, BIOS запаролен. Вариант хороший, но в данном случае неактуальный…
К сожалению, сторонний софт ставить на ПК пользователей запрещено. Такова политика, да и со стороны ИБ будут вопросы…

Все-таки я надеюсь, что деталь найдется и мысль сформируется.



0



1424 / 867 / 87

Регистрация: 27.02.2021

Сообщений: 4,199

27.10.2022, 16:38

16

В установщике путь для граба на какой раздел указываешь, не везде автоматом в уефай прописывается, где-то и вручную приходиться указать загрузочный виндовый ESP, который в fat 32.



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

27.10.2022, 18:25

17

Цитата
Сообщение от Yugra_86
Посмотреть сообщение

С целью предотвращения несанкционированных действий со стороны пользователя, BIOS запаролен. Вариант хороший, но в данном случае неактуальный…
К сожалению, сторонний софт ставить на ПК пользователей запрещено. Такова политика, да и со стороны ИБ будут вопросы…

Вот это направило мои мысли и воспоминания в нужную сторону и я вспомнил. Можно ещё попробовать такой вариант.
Когда появляется GRUB, просто нажать клавишу Esc и должна будет загрузиться Windows со своего загрузчика (то есть мы выходим из GRUB и загрузка передается Windows Boot Manager).



0



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

27.10.2022, 20:04

18

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

Вот это направило мои мысли и воспоминания в нужную сторону и я вспомнил. Можно ещё попробовать такой вариант.
Когда появляется GRUB, просто нажать клавишу Esc и должна будет загрузиться Windows со своего загрузчика (то есть мы выходим из GRUB и загрузка передается Windows Boot Manager).

Спасибо за ответ!
Завтра попробую этот метод и отпишусь.

Добавлено через 20 минут

Цитата
Сообщение от vladj2007
Посмотреть сообщение

В установщике путь для граба на какой раздел указываешь, не везде автоматом в уефай прописывается, где-то и вручную приходиться указать загрузочный виндовый ESP, который в fat 32.

Спасибо за ответ!
В том-то и дело, что на обычных HDD я могу указать конкретный раздел куда устанавливать загрузчик (/dev/sda*). Но в этой ситуации тот же инсталлятор Астры вообще не предлагает какой-либо выбор.
Ранее я обозначил, что проблема возникла на конкретной модели ПК и конкретного производителя. На тех же Lenovo и HP (модели разные, но все они с SSD) Астра ровно встает рядом с W10 и загрузка ОС на выбор осуществляется без проблем.
Как вариант, можно попробовать — это через GUI GRUBа Астры в дополнительных настройках указать куда установить загрузчик.
Завтра попробую и этот метод. Отпишусь.



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

28.10.2022, 09:27

19

Цитата
Сообщение от Yugra_86
Посмотреть сообщение

Но в этой ситуации тот же инсталлятор Астры вообще не предлагает какой-либо выбор.

Он и не должен предлагать выбор. В UEFI режиме место установки GRUB одно, это раздел EFI, других вариантов нет.



0



0 / 0 / 0

Регистрация: 26.10.2022

Сообщений: 13

28.10.2022, 13:07

20

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

Когда появляется GRUB, просто нажать клавишу Esc и должна будет загрузиться Windows со своего загрузчика (то есть мы выходим из GRUB и загрузка передается Windows Boot Manager).

Спасибо за ответ!
К сожалению, метод не сработал…



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

28.10.2022, 13:07

Помогаю со студенческими работами здесь

В GRUB тормозит клавиатура, если загружено не через UEFI
Кратко:
Обнаружил, что если загрузиться на системе с UEFI как на обычной через БИОС, то клавиатура…

Ubuntu uefi не могу загрузить Виндовс7 bios через grub
Привет парни! есть комп с 2мя ЖД…на одном стоит Вин7,на другом Ubuntu 16.04.x64
нужно что бы при…

Как grub-install в uefi grub записывает
Доброго времени суток!
Собственно, сабж. Я пишу программу, которая записывает загрузчик в…

Dual-boot on dual HDD (Win8+Ubuntu)
Господа, возник вопрос.
У меня два физических диска.
Первый — SSD Crucial M500. На нём стоит…

Создаем /boot/grub/grub.conf ?
Теперь мы заполним grub.conf нашими значениями для чего ?

Как отключить в БИОСе Secure boot и UEFI boot, чтобы установить семёрку?
gecata, Привет, подскажи пожалуйста детально, как отключить в БИОСе Secure boot и UEFI boot,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

/Для загрузки Linux-систем (как впрочем и любой другой UNIX-подобной системы) существует универсальный загрузчик GRUB – GRand Unified Boot loader. Он обладает довольно широким функционалом. Позволяющим не только осуществлять корректную загрузку операционных систем (ОС), но и управлять непосредственно конфигурацией и самим процессом загрузки в интерактивном режиме. В деятельности, связанной с системным администрированием знание возможностей GRUB и умение их применять очень часто экономит в различных и нестандартных ситуациях огромное количество времени системным администраторам.

Содержание

  1. Как работает GRUB?
  2. Настройка параметров ядра
  3. Мультисистемная конфигурация

Загрузчик GRUB – это GNU-проект, разработанный специально для использования в качестве загрузчика по-умолчанию для систем UNIX и Linux. Для подавляющего числа дистрибутивов GRUB давно поставляется «из коробки». Его главной задачей является работа со списком (который подготавливается заранее вручную или автоматически) вариантов загрузки, из которого выбирается нужный для последующей загрузки системного ядра с определёнными для выбранного варианта параметрами.

Стоит отметить, что на данный момент в большинстве случаев используется загрузчик GRUB2, однако некоторые разработчики дистрибутивов по прежнему продолжают применять первоначальную версию загрузчика, часто называемую GRUB Legacy. Обе эти ветви развития существуют и развиваются параллельно. Основное же отличие между ними — это синтаксис в файлах конфигурации.

GRUB читает конфигурацию загрузки при каждом запуске компьютера. Сами файлы конфигурации (в зависимости от используемой версии и дистрибутива) следующие: /boot/grub/menu.lst, /boot/grub/grub.conf или /boot/grub/grub.cfg для версии 2. В системах Red Hat используются файлы grub.conf, а для Ubuntu, SUSE и Solaris – menu.lst. Эти файлы имеют незначительные различия в синтаксисе конфигурации. Для примера, содержимое grub.conf может быть таким:

default=0
timeout=10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Enterprise Linux Server (2.6.18-92.1.10.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.10.el5 ro root=LABEL=/

В этом примере конфигурируется загрузка всего одной системы Red Hat, которая (согласно default=0) будет загружена автоматически по прошествии 10 секунд (timeout=10), если не будет нажата какая-либо клавиша на клавиатуре. При этом корневая файловая система должна искаться, согласно параметру (hd0,0) команды root, на первом разделе первого жесткого диска.

Для поиска файла ядра задаётся путь относительно загрузочного раздела, монтируемого в каталог /boot. Для приведённого примера ядро будет загружаться из файла /vmlinuz-2.6.18-92.1.10.el5. Затем загрузчик выведет на экран заставку из файла /boot/grub/splash.xpm.gz, находящегося, как указано в команде splashimage, на разделе (hd0,0).

Настраивать параметры загрузки можно и в интерактивном режиме, используя интерфейс командной строки. Для этого нужно на экране меню загрузки нажать клавишу «c».

После чего мы попадем в командную строку. В которой уже можно выполнять команды.

Таким образом с помощью командной строки возможны все те же действия, что выполняются по инструкциям из файлов конфигурации. Как можно видеть, для этого загрузчик предоставляет целый набор команд со своими параметрами. Это бывает очень полезным, когда необходимо загружать системы, не имеющие соответствующей конфигурации в конфигурационных файлах или когда нужно восстановить «сломанную» конфигурацию. Для ознакомления со списком самых главных команд используется клавиша <Tab> в режиме работы командной строки загрузчика. В следующей таблице представлены наиболее часто используемые команды GRUB:

Команда Назначение
reboot Перезагружает систему
find Производит поиск файла во всех смонтированных логических разделах
root Задаёт корневое устройство (логический раздел)
kernel Загружает ядро системы с корневого устройства
help Выводит интерактивную справку по команде
boot Загружает систему с указанного образа ядра

Настройка параметров ядра

Системное ядро во время его загрузки можно (и нужно) заставить вести себя определённым образом, например опрашивать определённые устройства, искать демон init по нестандартным путям, указывать корневое устройство и т. д. Всё это легко позволяет настроить загрузчик. Для этого он использует некоторые параметры, самые основные из которых приведены в следующей таблице:

Параметр Назначение
acpi=off Отключает системы Advanced Configuration и Power Interface (управление питанием)
init=/bin/bash Указывает ядру запускать только интерпретатор bash — обычно используется для восстановления системы после сбоев
root=/dev/foo Указывает ядру, что корневым устройством является /dev/foo
single Задает режим однопользовательской загрузки (только для Linux. Для систем Solaris используется ключ -s — предназначен для работы со стандартом OpenBoot

Важно заметить, что конфигурация, задаваемая при помощи интерфейса командной строки GRUB не сохраняется. Для задания постоянной конфигурации загрузки необходимо отредактировать файл grub.conf (grub.cfg для GRUB2) или menu.lst.

Мультисистемная конфигурация

Энтузиасты очень любят держать на одной машине несколько разных ОС. GRUB хоть и был разработан не для энтузиастов и экспериментов. Однако он универсален и мультисистемную загрузку обеспечивает в полной мере. Для того, чтобы GRUB мог работать с несколькими загрузочными конфигурациями и находить на жёстких дисках (или других устройствах хранения) разные ОС, должна быть задана соответствующая мультисистемная конфигурация. Она подобна тому примеру, что уже был рассмотрен в предыдущей главе, но только теперь необходимо иметь отдельные наборы инструкций для каждой из систем.

Важно понимать, что каждый раздел может содержать отдельный вторичный загрузчик для своей системы, но должен быть также и основной — главный загрузчик, который будет, при необходимости, передавать управление вторичному. В качестве главного в большинстве случаев необходимо использовать загрузчик GRUB. Так, например и в случае мультисистемной конфигурации, в которой соседствуют системы Windows и Linux в качестве главного обязательно должен быть загрузчик GRUB, да ещё и на отдельном от Windows устройстве.

Конфигурация GRUB для загрузки Windows-систем несколько отличается от Linux. Так, например конфигурация запуска Windows XP может быть такой:

title Windows 10
rootnoverify (hd0,0)
chainloader +1

Здесь команда chainloader предназначена для передачи управления Windows-загрузчику, расположенному в первом секторе (+1) первого раздела первого жёсткого диска (hd0,0). А команда rootnoverify указывает GRUB, что монтировать раздел (hd0,0) не нужно, т. к. должна загружаться «неродная» система Windows. Пример мультисистемной конфигурации:

default=0
timeout=5
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
hiddenmenu
title Windows 10
rootnoverify (hd0,0)
chainloader +1
title Red Hat
root (hd0,1)
kernel /vmlinuz

В этом примере ОС Windows должна будет загружаться по-умолчанию (default=0). Через 5 секунд (в течение которых не нажата какая-либо клавиша на клавиатуре) с первого раздела первого жёсткого диска. А ОС Red Hat – со второго раздела того же диска.

Также важно отметить, что в процессе обновлений (как правило автоматических) системного ядра, файлы старых версий ядер не удаляются. Но при этом скрипты из пакета обновлений могут автоматически отредактировать конфигурацию загрузки. Добавив новый вариант загрузки для нового ядра. Которое устанавливается в систему независимо от уже имеющихся в ней других ядер. Поэтому ничего удивительного в том, что пунктов меню, отражающих варианты загрузки. Cо временем (после каждого обновления ядра) становится всё больше и больше. Это довольно удобно, т. к. в случае, если с новым ядром система стала работать некорректно. Или вовсе «сломалась» – есть возможность использовать старое ядро. Воспользовавшись соответствующим пунктом меню загрузки GRUB.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Содержание

Настройка загрузки Astra Linux

Информация в данном разделе актуальна для Astra Linux SE 1.7.2

Отображение загрузочного меню GRUB2

При изменении настройки отображения загрузочного меню GRUB2 с помощью графического меню ОС «fly-admin-grub2», могут появится следующие проблемы:

  • Сведения о текущем состоянии отображения меню GRUB2, получаемые с помощью консольной команды «astra-nobootmenu-control» могут быть неактуальными

  • При расхождении сведений о текущих настройках отображения меню GRUB2 в графическом меню ОС «fly-admin-grub2» и сведениях, получаемых с помощью консольной команды «astra-nobootmenu-control», попытки изменить настройки с помощью консольной команды «astra-nobootmenu-control» могут быть безрезультатными.

Настройка в графическом меню

Настройки GRUB2 находятся на панели управления «Пуск > Панель Управления > Система > Загрузчик GRUB2»

Данное окно можно открыть выполнив команду с наивысшими правами

fly-admin-grub2

Настройка в терминале

Обратите внимание, что команда содержит слово «nobootmenu» — отсутствие загрузочного меню, поэтому когда эта возможность включена, то загрузочное меню отключено.

Для получения желаемого результата выполните команду с наивысшими правами

Отключить отображение загрузочного меню:

astra-nobootmenu-control enable

Включить отображение загрузочного меню:

astra-nobootmenu-control disable

Узнать текущий статус отображения загрузочного меню:

astra-nobootmenu-control is-enabled

Значения результатов статуса:

  • «ВКЛЮЧЕНО» — отображение меню GRUB2 отключено. Код завершения «0»

  • «ВЫКЛЮЧЕНО» — отображение меню GRUB2 включено. Код завершения «1»

Подробная справка о команде:

man astra-nobootmenu-control

Автоматический вход пользователя

Настройка в графическом меню

Настройка в терминале

Для получения желаемого результата выполните команду с наивысшими правами

Установить автоматический вход для пользователя

astra-autologin-control enable (имя пользователя)

Отключить автоматический вход

astra-autologin-control disable

Узнать текущий статус автоматического входа

astra-autologin-control is-enabled

Подробная справка о команде:

man astra-autologin-control

Имя текущего пользователя, для которого включен автоматический вход указано в файле ‘/etc/X11/fly-dm/fly-dmrc“.
Секция — «X-:0-Core», ключ — «AutoLoginUser»

Мандатный контроль целостности

Установка уровня контроля целостности по умолчанию

Для отключения запроса уровня целостности при входе необходимо в файле «/etc/X11/fly-dm/fly-dmrc», в секции «X-:0-Core» удалить знак комментария в начале строки у ключа «AutoLoginMAC» и установить необходимое значение

AutoLoginMAC=0:63:0x0:0x0! #Высокий уровень
AutoLoginMAC=0:0:0x0:0x0! #Низкий уровень

Посмотреть с какими уровнями целостности был выполнен вход ранее можно в файле «/var/log/fly-dm.log». Значения можно найти по тексту

"Session labeled by 'some_privileged' with label"

Отключение контроля целостности

В графическом меню

Для открытия окна управления политикой безопасности перейдите по пунктам меню «Пуск > Панель управления > Безопасность > Политика безопасности» или выполните команду с наивысшими правами

fly-admin-smc

В открывшемся окне «Управление политикой безопасности» выберите пункт «Мандатный контроль целостности».

На панели настроек снимите флажок «Подсистема Мандатного Контроля Целостности», а затем нажмите нажмите на зеленый кружок с белой галочкой, который находится в верхней части окна.

Если мандатный контроль целостности был успешно отключен, то система сообщит о необходимости перезагрузить систему чтобы изменения вступили в силу.

В терминале

Для получения желаемого результата выполните команду с наивысшими правами

Включить контроль целостности:

astra-mic-control enable

Отключить контроль целостности:

astra-mic-control disable

Узнать текущий статус контроля целостности:

astra-mic-control is-enabled

Подробная справка о команде:

man astra-mic-control

Официальная документация

Понравилась статья? Поделить с друзьями:
  • Настройка ftp сервера на windows server 2016 в домене
  • Настройка ftp сервера на windows server 2012 r2 с авторизацией
  • Настройка ftp сервера filezilla на windows server 2008
  • Настройка ftp папки в windows server 2008
  • Настройка gpo windows server 2008 r2