Для выбора и запуска операционной системы во время загрузки компьютера используется специализированная программа — загрузчик. Самый популярный загрузчик — Grub. При установке нескольких операционных систем, например, Linux поверх Windows, в меню загрузчика первой будет последняя установленная ОС.
Это не вызовет проблем у пользователей, которые пользуются Linux как основной системой, для них это даже более предпочтительный вариант. Но если вы еще новичок, и хотите использовать Linux второй системой, а Windows пока еще основной, до тех пор, пока не освоитесь, то наверное захотите чтобы первой была Windows. В этой статье мы рассмотрим как сделать загрузку Windows первой в Grub. Рассмотрим два способа: с помощью программы Grub Customizer и вручную, через файлы конфигурации загрузчика Grub.
Grub Customizer
Grub Customizer — это программа, позволяющая настраивать различные параметры загрузчика Grub. В том числе и положение и очередность пунктов загрузки. Установить программу можно из официальных репозиториев. Например, в Ubuntu нужно использовать ppa:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
Для запуска программы откройте терминал (Ctrl + Alt + T) и наберите grub-customizer:
grub-customizer
Для работы программы необходимы права root, в некоторых системах возможно придется использовать такую команду:
gksu grub-customizer
Также программу можно запустить из главного меню. Главное окно выглядит вот так:
Несколько секунд после запуска программа будет сканировать установленные операционные системы, затем в этом же окне мы сможем перенести загрузку Windows на первое место. Для этого кликните на нужном пункте правой кнопкой чтобы открылось контекстное меню:
В меню выберите пункт Переместить вверх. Это действие нужно будет повторить несколько раз, пока Windows не будет первой в списке. Теперь будет выполняться загрузка windows по умолчанию grub.
Если потом вы захотите опустить Windows обратно вниз, есть обратное действие — Переместить вниз.
Для сохранения настроек просто нажмите кнопку Сохранить. Готово. Можете перезагружать компьютер и смотреть что получилось.
Но я хочу затронуть еще пару настроек, которые могут быть полезны. Вместо того чтобы делать загрузку Windows первой в Grub, можно изменить пункт запускаемый по умолчанию. Перейдите на вкладку Основные настройки:
Здесь для выбора пункта по умолчанию используемого по умолчанию есть список Задействовать:
Кроме того, можно загружать по умолчанию последнюю загруженную ОС, для этого есть галочка:
Не забудьте снова нажать кнопку сохранить.
Как я и обещал, теперь рассмотрим как сделать загрузку WIndows первой в Grub с помощью конфигурационных файлов. Конфигурация Grub находится в файле /boot/grub/grub.cfg.
sudo gedit /boot/grub/grub.cfg
Как правило, строки меню выглядят вот так:
menuentry имя_пункта --опции {
...
}
Например пункт Windows:
menuentry 'Windows 8 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprob
er-chain-FC324E26324DE66C' {
....
}
Теперь чтобы изменить порядок пунктов меню достаточно вырезать все до обратной закрывающей скобочки, вместе с этой строкой, и вставить перед всеми другими пунктами. Затем можно сохранить файл и готово. Перезагружайте и смотрите. Загрузка Windows выполняется по умолчанию. Только минусом данного способа является то, что при обновлении конфигурации Grub все настройки собьются.
Аналогично тому как мы настраивали пункт, загружаемый по умолчанию в Grub Customizer, это можно сделать и в терминале. Откройте файл /etc/default/grub.
gksu gedit /etc/default/grub
Здесь нас интересует строчка:
GRUB_DEFAULT=0
Замените 0, на нужный пункт для загрузки, также вместо цифры можно указать имя пункта, например:
GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"
Посмотреть доступные пункты загрузки не открывая файл конфигурации можно командой:
sudo grep menuentry /boot/grub/grub.cfg
Еще можно настроить загрузку последней загруженной системы, для этого добавьте строчку
GRUB_SAVEDEFAULT=true
А в GRUB_DEFAULT укажите saved:
GRUB_DEFAULT=saved
Очевидным плюсом этого способа есть то, что настройки во время обновления конфигурации Grub не собьются, так как во время обновления информация берется из этого файла. Теперь давайте обновим конфигурацию и сохраним настройки командой:
grub-update
Не во всех системах работает такой вариант, поэтому можно использовать другую команду:
grub2-mkconfig -o /boot/grub/grub.cfg
Вот и все. Теперь вы знаете как сделать загрузку Windows первой в Grub. Но представленную в этой статье информацию можно использовать в более широких целях. Она будет полезна не только для Windows, но и для любых других нескольких систем, очередностью загрузки которых нужно управлять.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Время на прочтение
9 мин
Количество просмотров 121K
Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…
И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.
Предположим у вас имеется компьютер, с установленным на HDD загрузчиком GRUB2 и свободным разделом, отформатированном в NTFS. Устанавливать будем Windows 7 Ultimate SP1. Для этого потребуются:
- Установочный диск с виндой
- Чистая флешка объемом >= 4 Gb
- Архиватор 7-zip соответствующей разрядности
- Утилита BootICE, желательна, но совершенно не обязательна, можно обойтись и bcdedit.exe, входящим в дистрибутив винды
1. Создаем загрузочную флешку
Дело в том, что семерка не хочет устанавливаться в EFI-режиме с DVD. Вот не хочет и всё. К тому же, на установочном носителе нам понадобятся дополнительные утилиты, которые туда надо поместить, а в случае с флешкой это несколько проще, чем в случае с DVD.
Монтируем установочный образ с виндой, допустим он лежит у нас в /home/$USER/install с именем win7-setup.iso
$ mkdir ~/iso
$ sudo mount -t udf ~/install/win7-setup.iso ~/iso
Вставляем флешку в USB-порт. Допустим, она получила имя устройства /dev/sdb. Выполним её разметку в формате MBR
$ sudo fdisk /dev/sdb
Создем на флешке один единственный раздел. После чего форматируем её в FAT
$ sudo mkfs.vfat /dev/sdb1
Копируем содержимое дистрибутива винды на флешку
$ mkdir /tmp/flash
$ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100,fmask=113,dmask=002
$ cp -rv ~/iso/* /tmp/flash/
Скопируем конфиги EFI-загрузчика на уровень выше
$ cp -rv ~/tmp/flash/efi/microsoft/* ~/tmp/flash/efi/
Теперь нам нужен EFI-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру
В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp
$ cd /tmp
$ 7z e ~/iso/sources/install.wim \[1\].xml
и посмотрим с помощью какого-нибудь браузера, ибо в текстовом редакторе он выглядит ужасно, а специального редактора xml у меня в наличии не оказалось. Каждую редакцию винды описывают структурой вида
где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда
$ 7z e ~/iso/sources/install.wim 4/Windows/Boot/EFI/bootmgfw.efi
Оки, теперь перенесем полученный файл на флешку
$ mv bootmgfwm.efi /tmp/flash/efi/boot/bootx64.efi
Порядок, теперь у нас в наличии загрузочная флешка для установки винды. Теперь добавим на неё необходимые для установки утилиты — виндозную версию архиватора 7-zip и утилиту BootICE. Архиватор качаем с официального сайта и распаковываем на флешку в каталог utils
$ mkdir -p /tmp/flash/utils/7-Zip/
$ cd /tmp/flash/utils/7-Zip/
$ 7z x ~/downloads/7z1602-x64.exe
Туда же помещаем и bootice
$ cp ~/install/BOOTICEx64.exe /tmp/flash/utils
Уф, всё, отмонтируем флешку
$ cd ~
$ sudo umount /tmp/flash/
Перезагружаемся. Если у вас система с EFI и съемные диски стоят в приоритете загрузки, то компьютер загрузится в установку винды автоматом. Если же появилось таки меню GRUB, ничего страшного, жмем «С» и в консоли набиваем команду exit. Вас вывалит в меню EFI, где выбираем загрузку с флешки. Если же ваша система с BIOS, то тут чуть сложнее, ибо мы не стали заморачиваться с настройкой MBR на флешке. Тогда в консоли GRUB даем команду ls — появится список всех дисков и разделов. Находим нашу флешку, она отобразится в виде (hdX, msdosY), где X, Y — номер диска и раздела соответственно. Теперь вбиваем в консоли команды
grub> set root=hdX,Y
grub> ntldr /bootmgr
grub> boot
Начнется загрузка установщика винды. Он то загрузится, но нам он и не нужен — мы всё будем делать руками. Чтобы стало понятно, что к чему, придется рассмотреть некоторую теорию
2. О развертывании Windows из WIM-образа и капризном нраве Sysprep
Начиная с семерки установка Windows заключается в следующих этапах
- Разметка диска в соответствии с архитектурой системы инициализации оборудования. Если BIOS — установщик размечает диск в MBR. При наличии активной EFI — разметка будет GPT.
- Распаковка образа install.wim в выбранный для установки раздел
- Установка загрузчика и перезагрузка
- Инициализация оборудования. Ребут
- Локализация, ввод ключа, окончание настройки системы
Это стандартный путь. У нас же диск уже размечен. И нам не нужна автоматическая установка загрузчика — мы поставим его вручную. Разметка диска должна удовлетворять следующим требованиям
- Если система с EFI на диске должен присутствовать FAT-раздел с типом 0xEF. Если у нас уже установлен линукс с EFI-загрузчиком, то таковой раздел уже имеется
- Если система с BIOS, то раздел, в котором располагается загрузчик, а это наш NTFS-раздел должен быть активным. Это очень важно! Почему, будет объяснено ниже.
Таким образом, перед распаковкой системы мы должны убедится в том, что перечисленные требования выполнены. После того, как мы распакуем все файл системы и установим загрузчик, система перезагрузиться. После перезагрузки запустится утилита Sysprep, среди прочего настраивающая оборудования и проверяющая конфигурацию системы. Так вот, если в режиме EFI Sysprep не найдет загрузчик и его конфигурацию в EFI-разделе по пути EFI/microsof/boot, а в системе с BIOS каталог \Boot и bootmgr будут лежать в неактивном разделе, то Sysprep завершится с ошибкой sysprep generalize error, а в лог, расположенный по адресу \Windows\Panther\sysperr.log выплюнет что-то похожее на
2015-03-11 16:55:42, Error [0x0e00b3] TOOL Sysprep_Specialize_Bcd: There was an error opening the system store. Status=[0xC0000098]
2015-03-11 16:55:42, Error [0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'c:\Windows\System32\spbcd.dll,Sysprep_Specialize_Bcd', returned error code 1006
2015-03-11 16:55:42, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x3ee
и никакие танцы с бубном нам уже не помогут. Винда требует, чтобы загручик лежал в загрузочном разделе и точка. В случае с BIOS просто делаем активным раздел NTFS в котором лежит винда и туда же кладем и загрузчик. Грузится будем всё равно с помощью GRUB, а ему все равно, какой раздел будет активным. В случае с EFI загрузчик придется положить рядом с GRUB в EFI-разделе.
3. Распаковка системы
Итак, определимся, куда мы хотим ставить винду. Можно поставить в NTFS-раздел, а можно и в VHD-диск. Это уж как вам хочется. Я буду показывать процесс на примере с виртуальной машиной EFI, имеющей следующую разметку
The protective MBR's 0xEE partition is oversized! Auto-repairing.
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/loop1: 104857600 sectors, 50.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0D217C93-6699-435A-9BBB-61DFAA6F30B7
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 104857566
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 206847 100.0 MiB EF00 EFI system partition
2 206848 104855551 49.9 GiB 0700 Basic data partition
На этом диске нет линукса, установлен только GRUB в раздел с EFI. Если мы ставим систему непосредственно в NTFS-раздел, то загружаемся с флешки, дожидаемся запуска программы установки и жмем Shift + F10, чтобы вызвать консоль. Запускаем утилиту diskpart и смотрим список подключенных томов
X:\sources> diskpart
DISKPART> list vol
Видим, что флешка (объемом 8 Гб) подключена как диск C:, а раздел для установки вовсе не смонтирован. Непорядок. Делаем так
DISKPART> sel vol 3
DISKPART> remove
DISKPART> assign letter=E
DISKPART> sel vol 1
DISKPART> assign letter=C
DISKPART> list vol
DISKPART> sel vol 2
DISKPART> assign letter=F
Вот теперь порядок, диск на который будем ставить винду стал диском C:, флешка — диском E:, а EFI-раздел — диском F:
Если же мы хотим поставить систему на VHD, то делаем так
DISKPART> sel vol 3
DISKPART> remove
DISKPART> assign letter=E
DISKPART> sel vol 1
DISKPART> assign letter=G
DISKPART> exit
Для порядка создаем каталог с образами
X:\sources> md G:\vhd
X:\sources> diskpart
Создаем виртуальный диск, создаем на нем разметку GPT и раздел NTFS и монтируем его к C:
DISKPART> create vdisk file="G:\vhd\win7.vhd" maximum=25600 type=fixed
DISKPART> attach vdisk
DISKPART> clean
DISKPART> convert gpt
DISKPART> create part primary
DISKPART> format fs=ntfs quick
DISKPART> assign letter=C
EFI-раздел монтируем к F:
DISKPART> sel vol 2
DISKPART> assign letter=F
Получаем такую картину
Очень важно! Убеждаемся в том, что EFI-раздел отформатирован именно в FAT, а не в FAT32. Иначе Sysprep не простит нам этой ошибки. Если на компе уже есть линукс, то настройки будут верны.
Теперь распаковываем дистрибутив на диск C:
X:\sources> E:
E:\> utils\7-Zip\7zFM.exe
Откроется GUI архиватора 7-zip. В нем открываем каталог E:\sources, находим там файл install.wim
Правой кнопкой на этом файле вызываем контектстное меню и переходим по 7-zip -> Открыть архив. Появится содержимое образа.
Лезем в папку 4 — там лежит Ultimate
Выделяем всё Ctrl + A и жмем кнопку «Извлечь». Появится окно, где нам предложат указать путь распаковки
Указываем корень диска C: и жмем ОК.
Ну и теперь, как говорится: «Откиньтесь на спинку кресла и…»
4. Установка и настройка загрузчика
Итак, после некоторого время ожидания распаковка окончена. И вот тут, вот в этом месте винда обчно делает бяку, а именно портит MBR или перенастраивает NVRAM. Но мы не дадим ей этого сделать — мы установим загрузчик вручную.
В случае с EFI, переходим на раздел EFI, смонтированный к F: и создаем необходимые пути и копируем файлы загрузчика
E:\> F:
F:\> mkdir EFI\microsoft\boot
F:\> xcopy C:\Windows\Boot\EFI\* F:\EFI\microsoft\boot /s /e
F:\> mkdir EFI\microsoft\boot\Fonts
F:\> xcopy C:\Windows\Boot\Fonts\* F:\EFI\microsoft\boot\Fonts\ /s /e
F:\> copy C:\Windows\System32\config\BCD-Template F:\EFI\microsoft\boot\BCD
Отлично, загрузчик скопирован. Теперь настроим его
F:\> E:\utils\BOOTICEx64.exe
Открываем файл F:\EFI\Microsoft\Boot\BCD. В случае установки на раздел, его параметры задаются так
Если же мы устанавливали систему на VHD, то настройки будут такими
Важно! Имя вторичного загрузчика для EFI-системы winload.efi, для BIOS-системы — winload.exe.
В случае, если мы устанавливаем BIOS-систему установка загрузчика будет выглядеть так
F:\> mkdir C:\Boot
F:\> xcopy C:\Windows\Boot\PCAT\* C:\Boot /s /e
F:\> mkdir C:\Boot\Fonts
F:\> xcopy C:\Windows\Boot\Fonts\* C:\Boot\Fonts /s /e
F:\> copy C:\Boot\bootmgr C:\bootmgr
F:\> copy C:\Windows\System32\config\BCD-Template C:\Boot\BCD
Важно! Раздел, смонтированный к C: (там где размещен загрузчик) обязан быть активным! Убедитесь в этом перед перезагрузкой!
Настройку выполняем так же точно, используя BootICE.
Ну, вроде все. Закрываем все окна и идем в ребут. Флешку можно вытащить из компа.
5. Скрестим пальцы да вознесем молитвы тебе, о Великий и Ужасный Sysprep…!
GRUB у нас еще не настроен пункта для винды в меню нет. Как только появится меню GRUB жмем «C». В консоли набираем
grub> set root=hdX,Y
grub> chainloader /EFI/Microsoft/Boot/bootmgfw.efi
grub> boot
X, Y — соответственно диск и раздел, где лежит загрузчик. Это в случае EFI. В случае с BIOS делаем так
grub> set root=hdX,Y
grub> ntldr /bootmgr
grub> boot
X, Y — диск и раздел с NTFS. Там где распакована винда и лежит её загрузчик.
В режиме EFI вместо логотипа винды я увидел черный экран, так как не нашел в дистрибутиве билиотеки bootres.dll, которую надо поместить в папку EFI\Mictosoft\Boot\Resourses. В случае с BIOS всё в порядке — знакомая эмблема «семерки». А потом в обоих случаях увидим это
Это работает Sysprep. На 57% моргнет экран — настраивается видяха. И если мы все сделали верно, то надпись «Применение параметров системы» повисит довольно долго, потом система сообщит, что установка будет продолжена после перезагрузки. Если мы где-то напортачили с установкой загрузчика — неправильный EFI раздел или неактивный NTFS, то тогда будет ошибка Но мы молодцы и у нас все получится, и после очередной перезагрузки мы увидим это
а потом, наконец вот это
Дальше все как при обычной, штатной установке.
6. Настраиваем GRUB
Обратили внимание на то, что каждый раз мы грузим систему из консоли GRUB руками. Это очень хорошо — значит ни MBR ни NVRAM не перезаписаны коварным майкрософтом. Настало время грузится в арч и добавить в меню GRUB новый пункт
menuentry 'Windows 7 Ultimate SP1 (EFI)' {
set root=hdX,Y
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
в случае EFI. Или
menuentry 'Windows 7 Ultimate SP1' {
set root=hdX,Y
ntldr /bootmgr
}
в случае BIOS. Применяем настройки GRUB и перезагружаемся и видем систему в пункте меню загрузки
после выбора которого получаем загруженную Windows
Заключение
Упреждая гнев профессиональных win-админов, скажу сразу — я знаю о DISM. Именно информация об этой системе и привела меня к описанному решению. Цель была одна — выяснить сколько нужно возможностей собственно Windows для установки Windows.
Оказалось вот что — для установки Windows её среда необходима только для одного — настройки BCD-хранилища. Всё. Остальное можно сделать из среды любой другой операционной системы.
Если написать аналог bcdedit.exe под Linux, то установить Windows можно будет с линуксового Live-носителя.
Перейти к содержимому
После установки OpenSuSe 12.3 на компьютер с Windows 7 из при запуске Linux отсутствовал пункт альтернативной загрузки с диска Windows.
Немного погуглив, нашел решение, как добавить в GRUB2 пункт меню ля загрузки Windows 7.
Моя конфигурация:
/dev/sda1/ — Windows
/dev/sdb4/ — OpenSuse
Для добавления пункта загрузки Windows 7 к меню GRUB2 надо сделать следующее:
1. Чтобы узнать uuid раздела с Windows выполняем команды
ls -la /dev/disk/by-uuid / grep sda1
Получаем: lrwxrwxrwx 1 root root 10 окт 26 20:31 F26A40AF6A407281 -> ../../sda1
где F26A40AF6A407281 и есть искомый uuid.
2. Редактируем файл /etc/grub.d/40_custom и добавляем в него строки
menuentry «Windows 7» {
insmod part_msdos
insmod ntfs
set root='(hd0,1)’
search —no-floppy —fs-uuid —set F26A40AF6A407281
chainloader +1
}
3. После редактирования вышеназванного файла выполняем команду:
grub2-mkconfig -o /boot/grub2/grub.cfg
Перезагружаемся и можем загрузиться в старую Windows 7.
Многие пользователи после установки и обновления ядра в Ubuntu 11.10/12.04
обнаруживают при старте компьютера в загрузчике GRUB2
несколько ядер, а то и просто дублирование одного и того же, хотя старые ядра были удалены через Ubuntu-Tweak
. Конечно на загрузку системы это ни как не отражается, но портит вид загрузчика и раздражает всякий раз при включении компьютера.Как с этим бороться?Можно конечно поковыряться в файле и удалить лишние надписи, но ведь не все это могут сделать, да и само «ковыряние» не безопасно, т.к. если пользователь не опытен и сделал что-то не так, то система может просто не загрузится.
Он был полностью переписан, чтобы обеспечить пользователю значительно большую гибкость и производительность. Пользователь может создать пользовательский файл, в котором пользователь может разместить свои собственные записи в меню.
- Этот файл не будет перезаписан.
- Нумерация разделов изменилась.
В документации сообщества. Его модульные компоненты загружаются по мере необходимости.
Ошибка последней загрузки или загрузка в режим восстановления
Элемент по умолчанию подсвечивается, и пользователь может выполнить другие выборы до истечения времени ожидания.
- Меню отображается в течение заданного количества секунд.
- Таймаут по умолчанию — 2 секунды.
- Нормальные скрытые операции: не отображаются записи меню.
Если последняя загрузка не удалась или после загрузки в режим восстановления, меню будет отображаться до тех пор, пока пользователь не сделает выбор.
Для этого есть очень хороший графический инструмент под названием Grub Customizer
— менеджер настроек для GRUB2
. Он позволяет: переименовывать, упорядочивать, удалять/добавлять и скрывать элементы меню загрузчика.Вот пример моего загрузчика GRUB2
до редактирования:
К значению, как описано выше. Таким образом, требуется дополнительное изменение. Он также может ограничить доступ к определенным записям для определенных пользователей и может шифровать пароли открытого текста для повышения безопасности. Пожалуйста, обратитесь к документации сообщества.
Процедуры устранения неполадок и восстановления подробно описаны в документе сообщества, который также содержит раздел. Любой другой редактор открытого текста тоже хорош. После этого перезагрузки и выключения должны начать работать правильно. Его меню может быть настроено пользователем, чтобы представить более привлекательное визуальное меню, изменив цвета, цвета фона и разрешения.
Строки, что подчёркнуты на снимке, выводились в загрузчик Grub
и по сути, дублировались без надобности, т.е. как правило мы используем верхние две: первая для загрузки системы, а вторая для восстановления, если появятся какие-то проблемы при загрузке системы.
Вот как я отредактировал (убрал галочки с лишних пунктов) в Grub Customizer
. Снимок ниже.
Элементы темы будут включать цвета, шрифты, индикаторы прогресса, меню и метки.
Пожалуйста, посетите документацию сообщества. На этой странице описывается новая структура файла и подробная информация о том, как пользователь может изменить настройки по умолчанию, используемые для создания меню загрузки.
Файл является результатом различных сценариев, которые создают меню в разделах, причем каждый сценарий отвечает за определенную часть меню. Это изменилось, и теперь разработчики признают, что иногда пользователь может просто отредактировать файл вручную. Пользователь может сделать один или несколько из этих сценариев неисполняемыми и заменить пользовательскую запись или отредактировать фактический сценарий. Эти разделы более подробно описаны в разделе «Сценарии».
. Хотя наиболее распространенные параметры присутствуют в файле по умолчанию, для включения в этот файл доступны дополнительные настройки среды.
А также:
если у вас установлено две или более операционных систем,то с помощью этого приложения можно отредактировать загрузку выбранной системы по-умолчанию.Для этого нужно зайти в раздел основные настройки
и выбрать нужный пункт из выпадающего меню.
Сюда входят такие элементы, как фон и темы. Если файлы с алфавитными именами существуют, они запускаются после файлов с именем. Пользовательский файл, начинающийся с 06_, появится в верхней части меню, так как его буквенно-цифровая сортировка помещает его перед 10_ через 40_ файлов. В отсутствие изображения всплеска этот файл задает монохроматическую тему для начального отображения меню. Страницу для информации об этой функции. В настоящее время нет линии для удаления этой записи из меню. Пользователи, знакомые с базовыми сценариями, могут изменять эти переменные, чтобы изменить формат отображаемых записей меню. Удаление исполняемого бита из файла также не позволяет ему искать другие операционные системы. Если не найден, скрипт построит пункт меню из фактической загрузочной информации, которую он находит. Эти файлы не содержат элементов меню и, таким образом, не будут вмешиваться в меню из пользовательского сценария с более низким приоритетом. Это включает соответствующий режим режима восстановления, если он включен.
. Этот файл содержит базовые настройки, которые будут считаться нормальными для пользователя.
Ещё:
если зайти в меню
Настройки внешнего вида
,то можно изменить фон(картинку) загрузочного меню,которое мы видим при запуске системы с меню выбора параметров запуска.
После редактирования нужно нажать на кнопке
Сохранить
, чтобы действия применились, закрыть окно с программой
Grub Customizer
и выполнить команду в терминале:
Реальные случаи мультизагрузки
Файл представляет собой простой текстовый файл и может быть отредактирован любым текстовым редактором. Документацию сообщества для более полного объяснения.
- Для пункта меню в подменю запись становится двузначной записью.
- Первая запись — позиция названия подменю в главном меню.
- Вторая запись — это позиция внутри подменю.
В этом случае местоположение в меню не имеет значения.
Примечание. В течение этого периода меню не отображается, пока пользователь не нажмет клавишу. Это даст пользователям время, чтобы отобразить меню, нажав клавишу, после чего система загрузится без отображения меню. Подождите несколько секунд, пока пользователь нажмет клавишу.
. Это дает пользователю возможность прерывания автоматической загрузки, которая обычно не отображает меню.
sudo update-grub
Предупреждение
Обратите внимание! GRUB 2 до сих пор является бета-версией программного обеспечения. Несмотря на это, он уже поставляется с Ubuntu подобными системами, хотя является не совсем доработанным продуктом. Вы, наверное, сможете использовать его без каких-либо проблем. Хотя проблемы и существуют, но вероятность повреждения системы невелика.
Путь развития технологии
По истечении периода времени система загрузится.
. Меню может не скрываться, как указано в описании на этой странице. Чтобы просмотреть черный экран с загрузочными процессами, отображаемыми в тексте, удалите «тихий всплеск».
- Получает описательное имя в записи меню.
- Он используется для передачи параметров ядру.
- Записи добавляются только к концу обычного режима.
Пользователь также может добавлять несколько разрешений. Настройки разделяются запятой.
Восстановление после неудачной загрузки
- Длительность 1 с темпом 60 составит 1 секунду.
- Длительность 1 с темпом 480 дает звуковой сигнал в 125 секунд.
В нем упоминается способность играть мелодию с файлом командной игры, если мелодия состоит из малозначных чисел. Сохранение пользовательских переменных в этом файле позволяет легче управлять и изменять эти переменные по желанию.
- Устанавливает фоновое изображение, введите полный путь к изображению здесь.
- Конфигурацию вышеприведенных изображений.
Конечно, для этого нужен пароль администратора.
Вам необходимо это знать. Даже, в случаях, когда решаются задачи, требующие осторожного
обращения, которые осуществляют критически важные функции системы, например, разбиение жесткого
диска на разделы, последовательная загрузка, манипуляции с образом системы и другие, вы всегда
будете готовы к наихудшему развитию событий. Это значит:
После этого вы увидите экран, на котором вы можете увидеть конфигурацию. Вы можете использовать опцию стрелки в верхнем меню для этой задачи, после ее выполнения вы можете сохранить эту конфигурацию. Вы можете увидеть измененный порядок загрузки при следующем перезапуске. Если вы удалите оба параметра, вы увидите текстовый вывод системы на экране при загрузке для диагностики ошибок. После обновления конфигурации с помощью этой команды терминала.
Все файлы потеряны. Выберите систему, которую вы хотите запустить. Не указывайте целевой диск. Инструмент отображает список всех разделов. Выполните следующие четыре строки. Это делается для обеспечения загрузки системы, но для выбора другого ядра или ввода параметров загрузки меню остается важным. Для широко распространенных дистрибутивов существует мощный графический помощник для внесения изменений в загрузчик. Пакет затем устанавливается.
- Вы должны иметь проверенный порядок действий при отказе системы, чтобы не произошла
потеря всех ваших данных. - Поэтому вы должны владеть инструментами и знаниями о быстром восстановлении системы
после аварийного сбоя. Это включает в себя восстановление предыдущего состояние системы,
исправление поврежденных конфигураций, восстановление первичных загрузчиков и другие задачи. - Вы должны быть уверены в том, что вы делаете.
Просто помните, что GRUB 2 является бета-версией. Хотя тоже самое можно сказать и о
Google Mail, который был бета-версией приблизительно шесть лет или около этого, поэтому вы должны
быть осторожны. Еще одна важная деталь, содержание и соответствующее ему содержимое в этом
руководстве до сих пор, бывает, меняется вместе с изменениями в программном продукте GRUB 2,
поэтому следите за обновлениями.
После загрузки программа отображает записи лодок в списке «Конфигурация загрузчика», которая может быть изменена, переименована и удалена в порядке. Но это уже подробные настройки для тележек операционной системы. Некоторые из наиболее важных из-за перекрывающихся параметров загрузчика размещаются на странице «Общие настройки». Там вы можете найти определение стандартной записи лодки, параметр «Показать меню» и поле для времени ожидания в секундах.
Отредактируйте текущий загрузочный файл
Самое главное: изменения, описанные в этом разделе, предназначены только для текущего загрузочного файла. После обновления ядра вы должны сделать это снова. Как сделать долгосрочные изменения, которые все еще существуют после обновления ядра, можно найти в части 2.
GRUB 2 — перспективы развития
Это то, с чем вы должны ознакомиться до опробования GRUB 2. Когда GRUB 2 станет де-факто
загрузчиком для UNIX подобных операционных систем? В настоящее время GRUB legacy прекрасно
справляется и будет продолжать это делать еще много лет. Получив долгосрочную поддержку от компаний,
подобных RedHat и Novell, в серверных дистрибутивах, GRUB legacy остался ключевым игроком на самое
меньшее 5-10 лет.
Чтобы отредактировать файл, содержащий все настройки, у вас должны быть права на запись. Они задаются следующей командой. Откройте файл в текстовом редакторе. В нем описывается, как создавать настройки и что они делают. Учитываются только самые важные настройки. Указывает, какая запись должна быть выбрана по умолчанию в меню. Внимание: счетчик начинается с 0! Если выбрана первая запись, номер должен быть установлен в 0.
Это разрешение меню выбора. При изменении знайте, что ваш монитор должен поддерживать установленное разрешение. Если вы установите слишком высокое разрешение, у вас может не быть доступа к вашей системе! Цвета для меню выбора определены здесь. Верхняя строка — это основной цвет, нижняя строка указывает цвет выбранной записи. Первый цвет — это всегда цвет текста, второй — фон.
На настольных машинах внедрение должно происходить быстрее, но не стоит ждать чудес слишком
быстро. Тем не менее, это не помешает начать его изучение. Примите это к сведению, вы столкнетесь с
некоторыми ограничениями совместимости в дальнейшем, особенно во многих консервативных
дистрибутивах, которые не внедряют новые технологии слишком быстро.
Это отдельные пункты меню. Если вы не хотите полностью удалять запись, вы можете просто отключить ее, разместив # в начале каждой строки записи, тем самым вырезав запись. Также обратите внимание, что полная запись должна быть сделана. Если вы случайно удалите или удалите слишком много или слишком мало, ваша система может не запускаться.
В некоторых конфигурациях имеется дополнительный промежуточный этап 5, который находит и загружает этап 2 в подходящую файловую систему. Локальные записи из существующей конфигурации можно выбрать в графическом меню. Таким образом, например, ошибки, которые произошли во время обработки файла меню, могут быть устранены.
На данное время 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/ :
Так будет выглядеть 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 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:
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 меню (grub.cfg) не изменилось. Вам необходимо
запустить команду 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.
Переустановка GRUB
GRUB 2 может быть установлен даже во время работы операционной системы, когда она загружена.
Для этого вам не нужно выходить из среды операционной системы. Просто запустите команду grub-install с указанием устройства или необходимого вам раздела.
$ grub-install
может быть /dev/hda, /dev/sdb, /dev/sdc4, и так далее.
Важно, чтобы вы уделили внимание результатам работы этой команды. Если вы имеете внешние диски, которые подключены во время работы команды, то она добавит эти диски в список отображаемых устройств. В этом нет большого вреда, потому что, если конфигурации окажутся нерабочими, то она их удалит.
grub-install сообщения о нерабочих устройствах
Вот пример, этого:
Вам нужно открыть файл /boot/grub/device.map, удалить неверные данные, в нашем случае это /dev/sdb и заново выполнить команду grub-install .
Промежуточный итог
Это то, что нам нужно на данный момент. У вас есть инструменты, которые необходимы для начала работы.
До сих пор я старался делать вещи более понятными, поэтому я подготовил краткий обзор, который завершает введение и применение основных разделов. Отсюда мы и начнем.
GRUB 2 имеет три основные части:
- /etc/default/grub — файл содержащий установки меню GRUB 2.
- /etc/grub.d/ — директория, содержащая скрипты, создающие GRUB 2 меню.
- /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. Подобное мы делали раньше.
После этого нам необходимо сделать скрипты исполняемыми с помощью команды 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, как загрузчик по умолчанию, вам необходимо сделать наоборот.
Если вы не полностью уверены, посмотрите таблицу разделов.
В нашем примере, 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 и попробуем его применить к новый ситуации.
Для тех кто не видит, что показано на изображении, мы добавили в файл menu.lst следующие строки:
root (hd0,5)
chainloader (hd0,5)+1
После загрузки вы увидите меню (снова неважный скриншот):
Если вы попытаетесь загрузить Karmic Koala, выбрав ее из меню, то вы столкнетесь с неожиданной ошибкой 13 загрузчика GRUB:
Этот тип ошибки является общим для Linux пользователей, пытающихся загрузить Windows или Mac разделы. Для Windows решение состоит в переопределении разделов. Необходимо скрыть разделы или сделать их активными, это обычно решает проблему.
В отношении Mac, проблема подобна той, которую мы рассмотрим далее. Версия GRUB legacy, которая поставляется с openSUSE не обрабатывает Ubuntu разделы и структуру GRUB 2. Поэтому необходим другой метод, чтобы выполнить загрузку.
Загрузка Ubuntu (с GRUB 2) из openSUSE, правильный способ
Вот что вам нужно сделать, чтобы это работало. Вернитесь в openSUSE и откройте снова файл menu.lst. Вам нужно сделать его похожим на это меню:
Для тех, кто не видит, что показано на изображении, мы добавили в файл 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. Это должно выглядеть примерно так:
В основном, мы сделаем все тоже самое, что делали с 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.
Для ясности, мы не пропустим этот шаг.
Следующий шаг — проверка параметров команд. Большинству людей не нужно делать никаких изменений.
GRUB 2 теперь установлен:
До перезагрузки, убедитесь, что grub.cfg сформирован правильно. Проверьте его содержимое: правильность загрузочных конфигураций, ссылки на устройства загрузки и разделы. Воспользуйтесь командой fdisk , если это необходимо, чтобы убедиться, что все в порядке.
Ubuntu конфигурация:
Возможные ошибки
Вы можете столкнуться с ошибками в 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:
Как видите, мы имеем 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
Этот файл содержит несколько интересных настроек, которые мы изменим (конфигурация по умолчанию, время ожидания выбора конфигурации и другие).
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
$ 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, который станет загрузчиком по умолчанию. Просто убедитесь, что следуете моим инструкциям и вас ждет легкая и беззаботная загрузка.
Дополнительная информация (документы и ссылки)
(дополнительный материал, поможет избежать трудностей с заменой пунктов меню)
Заключение
Это все. Теперь у вас имеется пошаговое руководство по установке, конфигурированию и разрешению проблем с 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 и более ранних версиях, которые использовали бета версию начального загрузчика.
Теперь, посмотрим как это сделать:
$ grub-mkrescue —output=.iso /boot/grub
Вы можете использовать любое имя.
Ubuntu 9.10 and earlier:
$ grub-mkrescue —overlay=/boot/grub .iso
После создания ISO образа, вы запишите его на CD. Затем протестируйте его, желательно на другой машине. Сделайте так, чтобы GRUB загрузился с CD, а не локального диска. Если вы используете имена файлов без указания полного пути, то ISO образ будет создан в текущей директории.
Целевой (тестовый) хост настройте на загрузку с CD, rescue CD загрузит командную строку GRUB. Убедитесь, что загрузка произошла действительно с CD, и он работает как ожидалось, и содержит ваше GRUB меню. Для этого выполните следующую команду:
$ configfile /grub.cfg
Она выведет на экран ваше меню. Если вас устраивает результат, то держите этот диск под рукой на случай аварийных ситуаций. Помните, что нужно создавать новый ISO образ при каждом обновлении вашего GRUB меню.
Вы будете использовать rescue CD для загрузки нужной операционной системы и восстановления GRUB с помощью команды grub-install, как показано ранее. Rescue CD не будет работать, если вы удалите операционную систему или разделы, содержащие ее.
Есть также дискуссионные темы доступные на Ubuntu и wilderssecurity.com форумах, но они в основном касаются использования этих же команд и их вариаций в различных версиях Ubuntu.
Спасибо Ocky за этот совет!
Декабрь 2010, обновление:
Еще немного изменений. Здесь вы найдете их краткий обзор и дополнительную информацию.
Условные обозначения
Снова изменены условные обозначения. Для разделов MS-DOS, которые представляют абсолютное большинство среди разделов, GRUB 2 в Maverick (версия Ubuntu 10.10 Maverick Meerkat) использует новые обозначения. Вместо универсального обозначения hd(X,Y) , теперь будет hd(X,msdosY) , которое может немного запутать. Вы должны это учитывать, когда создаете сложные мультизагрузочные установки.
Для большей информации, пожалуйста, посмотрите мой обзор по Maverick .
Дополнительная информация для чтения
Если вы считаете, что есть необходимость в отдельном руководстве, по применению Fedora и GRUB2, то мы можем сделать его.
Июнь 2012, обновление:
Вышла официальная
версия GRUB 2.00. GRUB 2 стал привлекательным во всех отношениях. Мы увидим
главную release версию GRUB 2 в различных дистрибутивах уже к концу этого года.
Для конечных пользователей изменения будут незаметны. Просто используйте это
руководство и приятно проводите время.
Grub2 — это загрузчик операционных систем, который позволяет выбирать, какую ОС запустить при старте компьютера. Он является стандартным загрузчиком для большинства дистрибутивов Linux и предоставляет возможность выбора ОС и редактирования конфигурации загрузчика. Однако по умолчанию grub2 не содержит информацию о Windows, и поэтому необходимо добавить эту ОС в меню grub2 вручную.
Чтобы добавить Windows в grub2, нужно выполнить несколько простых шагов. Первым делом нужно открыть файл конфигурации grub2. Он обычно расположен в директории /etc/grub.d/ и называется 40_custom. Для редактирования файла конфигурации понадобится права суперпользователя, поэтому его открывают и редактируют командой sudo gedit /etc/grub.d/40_custom.
После открытия файла конфигурации необходимо добавить блок следующего вида:
menuentry «Windows» {
set root=(hd1,1)
chainloader +1
}
Вам может потребоваться изменить параметр set root=(hd1,1) в зависимости от того, на каком разделе находится ваша ОС Windows. По умолчанию, hd1 означает второй физический диск, а 1 — первый раздел на этом диске. Если ваша ОС находится на другом диске или разделе, нужно изменить соответствующие значения.
После того, как вы добавили блок для Windows в файл конфигурации, нужно сохранить и закрыть его. Далее выполните команду sudo update-grub. Она обновит меню grub2 и добавит Windows в список доступных ОС при загрузке компьютера. Теперь вы можете выбрать Windows при старте и запустить его без проблем.
Содержание
- Шаг 1: Подготовка к добавлению Windows в grub2
- Шаг 2: Установка os-prober для обнаружения Windows
- Шаг 3: Редактирование файла конфигурации grub2
- Шаг 4: Перезапуск grub2 для применения изменений
- Шаг 5: Проверка добавления Windows в grub2
Шаг 1: Подготовка к добавлению Windows в grub2
Прежде чем мы сможем добавить Windows в меню grub2, нам нужно выполнить несколько подготовительных шагов. Обратите внимание, что для успешного добавления Windows в grub2 вам потребуется установочный диск или USB-накопитель с загрузочной версией дистрибутива Linux.
1. Вставьте установочный диск или USB-накопитель в компьютер и перезагрузите систему.
2. Загрузитесь с установочного носителя и выберите опцию «Установить Linux» или подобную.
3. Далее, следуйте инструкциям установщика Linux и укажите параметры разделов для установки. Убедитесь, что вы выбрали то же самое хранилище, где уже установлена ваша текущая версия Linux. Если на вашем компьютере уже установлен только Windows, вы можете создать новый раздел для Linux.
4. Укажите раздел для загрузчика. В большинстве случаев, выбор будет автоматическим и установщик выберет раздел с Linux, однако, убедитесь, что загрузчик будет установлен на тот же раздел, где уже находится ваша текущая версия Linux.
5. После завершения установки выберите опцию перезагрузки системы. Теперь ваш компьютер должен загрузиться с установленной версией Linux.
Шаг 2: Установка os-prober для обнаружения Windows
- Открой терминал. Это можно сделать нажатием `Ctrl + Alt + T`.
- Введи команду `sudo apt-get install os-prober` в терминале.
- Нажми Enter и введи пароль администратора системы.
- Дождись завершения установки os-prober.
После завершения установки os-prober, теперь grub2 будет автоматически обнаруживать Windows при создании меню загрузки. Переходи к следующему шагу, чтобы настроить grub2 для добавления Windows в меню загрузки.
Шаг 3: Редактирование файла конфигурации grub2
1. Откройте терминал и выполните следующую команду, чтобы отредактировать файл конфигурации grub2:
sudo nano /etc/default/grub
2. Найдите строку GRUB_DEFAULT=0
и измените значение на GRUB_DEFAULT=saved
. Это позволит сохранить последний выбраный вариант загрузки.
3. Добавьте следующие строки после строки с опцией GRUB_DEFAULT=saved
:
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=menu
4. Найдите строку GRUB_TIMEOUT=5
и измените значение на то, которое вам нужно. Это определяет количество секунд задержки перед автоматической загрузкой дефолтной операционной системы.
5. Добавьте следующую строку, чтобы настроить цвет фона главного меню grub2:
GRUB_BACKGROUND="/путь/к/изображению/background.jpg"
Замените /путь/к/изображению/background.jpg
на путь к изображению, которое вы хотите использовать в качестве фона. Изображение должно быть в формате jpg.
6. Нажмите Ctrl + O
, чтобы сохранить изменения, а затем нажмите Ctrl + X
, чтобы выйти из редактора nano.
7. Обновите файл конфигурации grub2, выполнив следующую команду:
sudo update-grub
Теперь вы успешно отредактировали файл конфигурации grub2 для добавления Windows в меню загрузки. После перезагрузки вашей системы вы увидите новую опцию для загрузки Windows.
Шаг 4: Перезапуск grub2 для применения изменений
После всех предыдущих шагов необходимо перезапустить grub2, чтобы изменения в конфигурации вступили в силу. Для этого выполните следующие действия:
1. Откройте терминал или консоль суперпользователя.
2. Введите команду:
sudo update-grub
3. Нажмите Enter и дождитесь завершения обновления grub2.
4. Перезагрузите компьютер, чтобы убедиться, что изменения вступили в силу и Windows появилась в меню grub2.
Шаг 5: Проверка добавления Windows в grub2
После выполнения предыдущих шагов, добавление Windows в grub2 должно быть завершено. Теперь давайте проверим, правильно ли Windows была добавлена в меню grub2.
- Перезагрузите компьютер. При появлении экрана загрузки выберите операционную систему Linux.
- Дождитесь, пока Linux загрузится полностью.
- Откройте терминал и выполните команду
sudo update-grub
. Это обновит конфигурацию grub2. - Перезагрузите компьютер и при появлении экрана загрузки выберите «Advanced options for Ubuntu».
- В списке доступных ядер Linux найдите «Windows Boot Manager».
- Выберите «Windows Boot Manager» и нажмите Enter, чтобы запустить Windows.
Если Windows успешно запускается после выбора «Windows Boot Manager» в меню grub2, это означает, что Windows была успешно добавлена в grub2. Вы можете перезапустить компьютер еще раз для дополнительной проверки.