Настройка grub2 для запуска windows

Время на прочтение9 мин

Количество просмотров128K

Наверняка почти у каждого пользователя ОС 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. Для этого потребуются:

  1. Установочный диск с виндой
  2. Чистая флешка объемом >= 4 Gb
  3. Архиватор 7-zip соответствующей разрядности
  4. Утилита 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 заключается в следующих этапах

  1. Разметка диска в соответствии с архитектурой системы инициализации оборудования. Если BIOS — установщик размечает диск в MBR. При наличии активной EFI — разметка будет GPT.
  2. Распаковка образа install.wim в выбранный для установки раздел
  3. Установка загрузчика и перезагрузка
  4. Инициализация оборудования. Ребут
  5. Локализация, ввод ключа, окончание настройки системы

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

  • Если система с 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-носителя.

2 minute read

This post assumes that Windows was installed first, and then CentOS was installed second.

Once you install CentOS 7 alongside your Windows OS, you may find that you cannot boot into Windows. The Grub bootloader may only show your Linux OS as your only options to boot from.

centos7 with grub2

To fix this and have the Grub bootloader list your Windows OS, you need to edit the Grub bootloader files. If you have used CentOS is the past (with 6 or earlier), you may find that editing Grub is different. Previously, you would edit /boot/grub/grub.conf. This is no longer the case, as the grub2.cfg file is generated dynamically, based on dependency files. Here’s what you need to edit to configure your bootloader.

  1. Boot into CentOS 7, if you haven’t already.
  2. Determine what partition your Windows OS resides on by running sudo fdisk -l in Terminal. Here’s my output:
     Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 sectors
     Units = sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     Disk label type: dos
     Disk identifier: 0xcd8b1219
    
        Device Boot      Start         End      Blocks   Id  System
     /dev/sda1   *        2048     4194303     2096128    7  HPFS/NTFS/exFAT
     /dev/sda2         4194304   360402758   178104227+   7  HPFS/NTFS/exFAT
     /dev/sda3       360402942   625141759   132369409    5  Extended
     /dev/sda5       612595712   625141759     6273024   82  Linux swap / Solaris
     /dev/sda6       360407040   361431039      512000   83  Linux
     /dev/sda7       361433088   612589567   125578240   8e  Linux LVM
     
         + In this example, /dev/sda1 is the recovery partition, and /dev/sda2 is the Windows OS partition. Since partition indexes start at zero, the Windows OS partition will be `hd0,1` (a = 0, 2 = 1; or first disk, second partition) when we edit the Grub file. Make note of this.
    
  3. Open a terminal and navigate to /etc/grub.d/:
     cd  /etc/grub.d/
     
  4. Edit the 40_custom file. You may not see the file if you ls in /grub.d/. That’s okay.
       sudo nano 40_custom
     
  5. You should see the following in the nano text editor:
     #!/bin/sh
     exec tail -n +3 $0
     # This file provides an easy way to add custom menu entries.  Simply type the
     # menu entries you want to add after this comment.  Be careful not to change
     # the 'exec tail' line above.
     
  6. Below the last #, type on a new line:
     menuentry "Windows 7" {
             set root=(hd0,1)
             chainloader +1
             }
     
  7. Finally, run the following to apply the changes to the grub.cfg file:
     grub2-mkconfig --output=/boot/grub2/grub.cfg
     
    • Once you reboot, you should see the option of booting into Windows 7. If a default boot entry into Windows (or something else) is requested, then you need to edit the GRUB_DEFAULT in /etc/default/grub:
       GRUB_DEFAULT="Windows 7"
       

Grub Add Windows Boot Entry: A Step-by-Step Guide

If you’re dual-booting Windows and Linux, you may have found that the GRUB bootloader doesn’t always list Windows as an option when you start your computer. This can be a problem if you want to quickly and easily switch between operating systems.

Fortunately, it’s relatively easy to add a Windows boot entry to GRUB. In this guide, I’ll show you how to do just that. I’ll also provide some tips on troubleshooting common problems.

So, if you’re ready to learn how to add a Windows boot entry to GRUB, read on!

Column 1 Column 2 Column 3
Title Description Link
How to add a Windows boot entry to GRUB This guide will show you how to add a Windows boot entry to GRUB, the bootloader used by most Linux distributions. How to Add a Windows Boot Entry to GRUB
Troubleshooting GRUB boot problems This guide will help you troubleshoot GRUB boot problems, such as when GRUB is not showing up, or when you are unable to boot into Windows from GRUB. Troubleshooting GRUB Boot Problems


What is GRUB and why do you need it?


GRUB, which stands for GRand Unified Bootloader, is a bootloader that is used to load the operating system (OS) on a computer. It is a very versatile bootloader that can be used to boot multiple operating systems from the same computer, as well as to boot from a USB drive or CD-ROM.

GRUB is installed on the master boot record (MBR) of the hard drive, and it is the first thing that is loaded when the computer starts up. GRUB then scans the hard drive for operating systems and presents a menu from which the user can select which OS to boot.

GRUB is a very important part of the boot process, and it is essential for ensuring that the correct operating system is loaded. If GRUB is not working properly, it can prevent the computer from booting up correctly.

Adding a Windows boot entry to GRUB is a relatively simple process, but there are a few things that you need to know in order to do it correctly.

First, you need to know the location of the Windows installation files. This is usually located in the `/boot/efi` directory on the hard drive.

Second, you need to know the name of the Windows boot loader. This is usually called `bootmgfw.efi`.

Once you have this information, you can follow these steps to add a Windows boot entry to GRUB:

1. Open the GRUB configuration file. This file is located in the `/etc/grub.d/` directory.
2. Find the section that starts with `menuentry “Windows”`.
3. Add the following lines to the end of the section:

set root=(hd0,gpt2)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

4. Save the GRUB configuration file.
5. Regenerate the GRUB bootloader. This can be done by running the following command:

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

6. Reboot the computer.

Once the computer has rebooted, you should see the Windows boot entry in the GRUB menu. You can select this entry to boot into Windows.

GRUB is a powerful and versatile bootloader that can be used to boot multiple operating systems from the same computer. Adding a Windows boot entry to GRUB is a relatively simple process, and it can be done by following the steps in this guide.

Troubleshooting common problems

Here are some common problems that you may encounter when trying to add a Windows boot entry to GRUB:

  • The Windows boot entry is not showing up in the GRUB menu. This is usually caused by a missing or incorrect configuration file. To fix this, you can try reinstalling GRUB or manually editing the GRUB configuration file.
  • The Windows boot entry is not working. This can be caused by a number of factors, such as a corrupt Windows installation or a missing or incorrect driver. To fix this, you can try reinstalling Windows, updating your drivers, or using a third-party bootloader.
  • The Windows boot entry is taking too long to load. This can be caused by a number of factors, such as a slow hard drive or a large Windows installation. To fix this, you can try defragmenting your hard drive or reducing the size of your Windows installation.

If you are having trouble troubleshooting these problems, you can try asking for help on a Linux forum or mailing list.

Tips and tricks for using GRUB

Here are some tips and tricks for using GRUB:

  • To add a new boot entry, you can use the `grub-install` command. This command will install GRUB to the specified device and create a new boot entry for the specified operating system.
  • To edit a boot entry, you can use the `grub-editenv` command. This command will open the GRUB configuration file in a text editor, where you can make changes to the boot entry.
  • To delete a boot entry, you can use the `grub-remove-menuentry` command. This command will delete the specified boot entry from the GRUB menu.
  • To change the order of the boot entries, you can use the `grub-set-default` command. This command will set the specified boot entry as the default boot entry.
  • To change the timeout for the GRUB menu, you can use the `grub-set-timeout` command. This command will set the number of seconds that the GRUB menu will be displayed before automatically booting the default boot entry.

For more information on using GRUB, you can refer to the GRUB documentation.

In this article, we have shown you how to add a Windows boot entry to GRUB. We have also provided some tips and tricks for troubleshooting common problems and using GRUB. If you have any other questions about GRUB, please feel free to ask in the comments below.

Q: How do I add a Windows boot entry to GRUB?

A: To add a Windows boot entry to GRUB, follow these steps:

1. Boot into the GRUB bootloader.
2. Press the e key to edit the current boot configuration.
3. Find the line that starts with `menuentry` and contains the name of your Windows installation.
4. Add the following options to the end of the line:

options=quiet splash

5. Save the changes and exit the GRUB bootloader.

Your Windows installation should now be listed as a boot option in GRUB.

Q: What if I get an error when I try to add a Windows boot entry to GRUB?

A: There are a few possible reasons why you might get an error when trying to add a Windows boot entry to GRUB. Here are some common troubleshooting tips:

  • Make sure that you are using the correct version of GRUB for your operating system.
  • Make sure that you have the correct drivers for your Windows installation.
  • Make sure that you have added the correct options to the `menuentry` line.
  • Try booting into Windows from a recovery disk or a USB drive. This can help you identify any problems with your Windows installation.

If you are still having problems, you can try asking for help on a forum or mailing list dedicated to GRUB.

Q: How do I change the order of the boot entries in GRUB?

A: To change the order of the boot entries in GRUB, follow these steps:

1. Boot into the GRUB bootloader.
2. Press the e key to edit the current boot configuration.
3. Find the line that starts with `menuentry` and contains the name of the boot entry you want to move.
4. Use the arrow keys to move the line up or down in the list.
5. Save the changes and exit the GRUB bootloader.

Your Windows installation should now be listed in the desired order in GRUB.

Q: How do I delete a Windows boot entry from GRUB?

A: To delete a Windows boot entry from GRUB, follow these steps:

1. Boot into the GRUB bootloader.
2. Press the e key to edit the current boot configuration.
3. Find the line that starts with `menuentry` and contains the name of the Windows installation you want to delete.
4. Press the d key to delete the line.
5. Save the changes and exit the GRUB bootloader.

Your Windows installation should now be removed from GRUB.

In this blog post, we discussed how to add a Windows boot entry to GRUB. We covered the steps on how to do this on both a UEFI and BIOS system. We also provided some troubleshooting tips in case you run into any problems.

Here are the key takeaways from this blog post:

  • To add a Windows boot entry to GRUB on a UEFI system, you need to use the `efibootmgr` command.
  • To add a Windows boot entry to GRUB on a BIOS system, you need to edit the `grub.cfg` file.
  • If you are having trouble adding a Windows boot entry to GRUB, you can try the following troubleshooting tips:
  • Make sure that the Windows installation media is properly connected to your computer.
  • Make sure that the Windows boot files are located in the correct directory.
  • Make sure that the Windows boot entry is configured correctly in GRUB.

We hope this blog post has been helpful. If you have any other questions about adding a Windows boot entry to GRUB, please feel free to leave a comment below.

Author Profile

Hatch, established in 2011 by Marcus Greenwood, has evolved significantly over the years. Marcus, a seasoned developer, brought a rich background in developing both B2B and consumer software for a diverse range of organizations, including hedge funds and web agencies.

Originally, Hatch was designed to seamlessly merge content management with social networking. We observed that social functionalities were often an afterthought in CMS-driven websites and set out to change that. Hatch was built to be inherently social, ensuring a fully integrated experience for users.

Now, Hatch embarks on a new chapter. While our past was rooted in bridging technical gaps and fostering open-source collaboration, our present and future are focused on unraveling mysteries and answering a myriad of questions. We have expanded our horizons to cover an extensive array of topics and inquiries, delving into the unknown and the unexplored.

Latest entries

Содержание

  1. GRUB2. Восстановление. Запуск системы.
  2. Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate
  3. Введение
  4. 1. Подготовка почвы
  5. 2. Создаем VHD-образ с системой
  6. 3. Настройка загрузчика bootmgr
  7. 4. Установка Windows 7 Ultimate на VHD-образ
  8. 5. Настройка загрузчика Grub2
  9. Заключение
  10. Как сделать загрузку Windows первой в Grub
  11. Grub Customizer
  12. Изменение порядка загрузки Grub через терминал
  13. Оцените статью:
  14. Об авторе
  15. 11 комментариев
  16. Содержание
  17. Предупреждение
  18. Введение в GRUB 2
  19. Новая структура
  20. Пример файла grub.cfg
  21. Пример директории /etc/grub.d/
  22. Пример /etc/default/grub
  23. Основное применение
  24. Как работает GRUB 2?
  25. Добавление нового GRUB скрипта
  26. GRUB 2 команды
  27. Обновление GRUB
  28. Изменение порядка загрузки скрипта с помощью изменения номеров
  29. Замена загрузочной конфигурации по умолчанию
  30. OS Prober (поиск загрузочных конфигураций)
  31. Переустановка GRUB
  32. grub-install сообщения о нерабочих устройствах
  33. Промежуточный итог
  34. Реальные случаи мультизагрузки
  35. Двойная загрузка: две операционные системы с GRUB 2
  36. Двойная загрузка: две операционные системы с GRUB legacy и GRUB 2
  37. Решение: какую систему сделать системой по умолчанию?
  38. Загрузка Ubuntu (с GRUB 2) из openSUSE, правильный способ
  39. Двойная загрузка: Windows 7 и Ubuntu
  40. Обновление GRUB legacy до GRUB 2
  41. Возможные ошибки
  42. Дополнительные тестовые сценарии
  43. Тройная загрузка
  44. Адаптация меню GRUB
  45. Редактирование /etc/default/grub
  46. Отключение пунктов меню recovery
  47. Отключение пунктов memtest в меню
  48. Изменение параметров titles (заголовков) в блоках меню
  49. Изменение темы (фоновое изображение)
  50. Восстановление GRUB 2
  51. Восстановление после неудачной загрузки
  52. Легкий путь: Super Grub Disk
  53. Сложный путь: Ручное исправление с помощью live CD
  54. Обзор небольших проблем
  55. Механизм получения дампа памяти при падении ядра
  56. Имена команд
  57. Сравнение GRUB legacy и GRUB 2
  58. GRUB legacy
  59. GRUB 2
  60. Вывод
  61. Дополнительная информация (документы и ссылки)
  62. Официальная информация
  63. Другие полезные источники по GRUB 2
  64. Заключение
  65. Обновления
  66. Декабрь 2009, обновление:
  67. Июнь 2010, обновление:
  68. GRUB 2 rescue CD (диск аварийного восстановления)
  69. Декабрь 2010, обновление:
  70. Условные обозначения
  71. Дополнительная информация для чтения
  72. Декабрь 2011, обновление:
  73. Загрузка Xen ядера в мультизагрузочной конфигурации под управлением GRUB2
  74. Поддержка Fedora 16 Verne
  75. Как обновить меню GRUB
  76. Изменение скрипта header (строка меню по умолчанию и время ожидания)
  77. Дополнительная информация
  78. Июнь 2012, обновление:

GRUB2. Восстановление. Запуск системы.

текст гласил: «Поддерживается несколько BASH-подобных команд редактирования строки. Есть вывод списка команд по TAB для дополнения. Также есть везде, где возможно, вывод списка по TAB для устройств или файлов. «

Ну, и собсна,строка «grub> «

По логике вещей стало понятно,что похоже накрылось что-то в загрузчике GRUB. На тот момент я знал о загрузчке:

а) он загружает (что-то. Наверное,систему)

б) он называется GRUB

в) может загружать разные ОС

Все. Да и сейчас не рсбо больше знаю.

Методом проб и ошибок систему я запустил.

2) Восстановление загрузчика.

linux /boot/vmlinuz(здесь указываем полное название ядра,а не просто «vmlinuz») root=/dev/sdaY

initrd /boot/initrd(указываем соответственно ядру, и опять же полное название включая расширение)

Те кто шпаргалку не понял. листайте ниже. там объяснения и фото.

Эта команда возвратит известные диски и разделы.

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

На вариантах hd0,5 и hd0,1 команда выдала, что на данных разделах имеется файловая система ext. Значит на одном из них и должна находиться наша система.

Проверить можно также командой ls. Добавив после раздела слэш.

Команда возвратила название каталогов (папок) находящихся на этом разделе. Среди них есть каталог Boot, который нам и нужен.

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

Тут мы видим каталог grub2, а также видим два ядра(vmlinuz) и два файла initrd соответствующих ядрам. Это очень нужная информация!

Дальше мы, используя команду set prefix, устанавливаем префикс и корневой раздел

Указываем путь к файловой системе

загружаем модуль загрузки linux

Теперь нам надо загрузить ядро. У меня их почему-то два. Выбирал наугад.

linux /boot/vmlinuz-4.15.0-desktop-47.2rosa-x86_64 root=/dev/sda1

В конце обязательно указываем root-раздел

В интернетике пишут,что полное название ядра можно не указывать. Можно ограничиться записью вида:

Но у меня почему-то такой вариант не проходил ни в какую. До тех пор пока не указал имя ядра полностью. Может из-за того,что ядра два?!

Теперь выбираем образ инит-диска(еще б мне кто объяснил что такое вообще)

Указывают, что выбор инит-диска можно записать короче

У меня такой вариант не прошел.

Ну-с и последнее. загрузка.

После того как загрузитесь не забудьте установить GRUBcustomizer и поправить свой загрузчик. А то вся это пляска будет при каждой загрузке.

Источник

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Введение

Ни для кого уже не секрет, что начиная с версии Windows 7 Ultimate, операционные системы от Майкрософт умеют загружаться будучи установленными на образ жесткого диска формата VHD. Однако, данная возможность «из коробки» доступна только пользователям этой самой Windows 7 Ultimate.

У меня же, убежденного пользователя Arch Linux, потребность в применении этой технологии возникла из-за необходимости иметь винду под рукой в дуалбуте и именно в реальном окружении. 90% процентов задач, для которых нужен Windows, разумеется решаются путем виртуализации, и мощности современного железа, и возможности виртуальных машин, позволяют даже в игры играть в виртуальной среде. Однако, возникла необходимость в использовании пакета «Универсальный механизм», который под вайном работает криво (допускаю и что руки у меня кривые), а в виртуальной среде, понятное дело, безбожно теряет прыть. В общем понадобилась Windows, но таскать разделы на винте и менять его разметку страшно не хотелось ради установки одной программы под винду.

Решение нашлось в реализации загрузки из VHD-образа с использованием загрузчика Grub2, ставшего стандартом де-факто во многих популярных дистрибутивах Linux. Об этом собственно и пойдет речь.

Какие преимущества перед стандартной установкой Windows в дуалбут с линуксом дает такая методика:

Итак, перейдем к описанию метода.

1. Подготовка почвы

Для хранения образов нам таки потребуется NTFS-раздел, который может быть как первичным, так и логическим, и не обязательно активным. Его можно создать с помощью gparted, там же и отформатировав в NTFS. У меня на НDD была зарезервирована неразмеченная область для разного рода экспериментов с осями, её я и отдал под данный раздел

Далее делаем этот раздел доступным для виртуальных машин VirtualBox

то есть создаем виртуальный диск в виде файла-ссылки на раздел реального HDD. Этот диск подключаем к виртуальной машине с Windows 7 Ultimate — она пригодится нам для решения поставленной задачи

2. Создаем VHD-образ с системой

Теперь надо создать VHD-образ HDD. Его придется создавать средствами, предоставляемыми Windows 7 Ultimate, ибо диски, создаваемые тем же VirtualBox вызывают последующий вывал загружаемой винды в BSOD.

после чего указываем путь к нему и задаем его параметры

Лучше всё же выбрать фиксированный размер образа — это будет работать быстрее.

Щелкаем ОК и пока идет процесс, выполним

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

Сам загрузчик bootmgr и каталог с его конфигом boot банально копируем с установочного DVD Windows 7 в корень раздела NTFS, туда же, где размещается папка с VHD-дисками.

Удаляем файл \boot\bcd, ибо этот контейнер хранит конфигурацию с загрузочного DVD, и создаем новый контейнер. Для этого используем крохотную утилитку bootice. Запускаем её, выбираем вкладку “BCD edit”.

Далее жмем “Create new BCD”, выбираем путь по которому будет расположен файл конфигурации и создаем его с именем BCD. Далее выбираем этот файл и жмем “Easy mode” – запуск редактора в упрощенном режиме.

Файл конфигурации откроется в режиме редактирования, нажимаем кнопку “Add” и выбираем вариант “New VHD boot entry”. Редактор сосздаст шаблон загрузочной записи и нам остается лишь вписать путь к нашему образу.

Путь к VHD-файлу от корня раздела с образами прописываем в поле “File”. После этого жмем “Save current system” и выходим из программы.

Дожидаемся пока закончится процесс создания VHD-образа и покидаем виртуальную семерку.

4. Установка Windows 7 Ultimate на VHD-образ

Выполнена средствами VirtualBox. Для этого:

Однако, надо сказать вот о чем. Мы помним, что наша система инсталирована в ВМ, а поэтому некоторые устройства определены на этапе установки и система подсунула для них соотвествующие драйвера. При запуске на Вашем реальном компьютере с вероятностью в 99% получится BSOD. Это связано с тем, что VirtualBox эмулирует контролер IDE следующим образом

и этот драйвер, работая в загружаемой системе конфликтует с реально установленным на мат. плате контроллером, при попытке системы прочесть файл образа с диска. Решается просто – выбираем “Обновить драйвер”, говорим, что не надо искать а мы сами укажем нужный драйвер и выберем “Стандартный двухканальный контролер IDE”

После этого выключаем нашу виртуальную машину и делаем её «реальной»

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

В конфиг Grub2 необходимо добавить загрузочную запись такого вида

где (hd0,msdos4) — NTFS-раздел, где размещены VHD-образы.

После этого можно перезагружаться и пробовать…

Заключение

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

Изображенное на скринах – это полноценная ОС, работающая на реальном железе. Но она – всего лишь файл на Вашем жестком диске. Этот файл может быть скопирован, удален, перемещен, архивирован и прочее. К тому же, такой метод решает извечную проблему конфликта Windows vs Linux на одном HDD. Теперь они мирно уживаются друг с другом и не портят друг другу жизнь.

Источник

Как сделать загрузку Windows первой в Grub

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

Grub Customizer

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Для запуска программы откройте терминал (Ctrl + Alt + T) и наберите grub-customizer:

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

Также программу можно запустить из главного меню. Главное окно выглядит вот так:

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

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

Для сохранения настроек просто нажмите кнопку Сохранить. Готово. Можете перезагружать компьютер и смотреть что получилось.

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

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

Кроме того, можно загружать по умолчанию последнюю загруженную ОС, для этого есть галочка:

Не забудьте снова нажать кнопку сохранить.

Изменение порядка загрузки Grub через терминал

Как я и обещал, теперь рассмотрим как сделать загрузку WIndows первой в Grub с помощью конфигурационных файлов. Конфигурация Grub находится в файле /boot/grub/grub.cfg.

sudo gedit /boot/grub/grub.cfg

Как правило, строки меню выглядят вот так:

Например пункт Windows:

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

Аналогично тому как мы настраивали пункт, загружаемый по умолчанию в Grub Customizer, это можно сделать и в терминале. Откройте файл /etc/default/grub.

gksu gedit /etc/default/grub

Здесь нас интересует строчка:

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

GRUB_DEFAULT=»Windows 8 (loader) (on /dev/sda1)»

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

sudo grep menuentry /boot/grub/grub.cfg

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

А в GRUB_DEFAULT укажите saved:

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

Не во всех системах работает такой вариант, поэтому можно использовать другую команду:

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

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

11 комментариев

Значит так заходим в терминал и вводим:
/boot/grub/
Дальше sudo nicoedit grub.cfg (где nicoedit название вашего текстового редактора) (в некоторых случаях menu.lst)
Вводим пароль
Открывается окно текстового редактора.
Выбор ОС по умолчанию

В нем сначала просматриваем список загрузки в нижней части файла. Пример:

title Ubuntu, kernel 2.6.20-16-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro quiet splash
initrd /boot/initrd.img-2.6.20-16-generic
quiet
savedefault

title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro single
initrd /boot/initrd.img-2.6.20-16-generic

title Ubuntu, memtest86+
root (hd1,0)
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian # ones.
title Other operating systems:
root

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Windows XP
root (hd0,0)
savedefault
makeactive
chainloader +1

Теперь в верхней части файла ищем запись:

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify ‘saved’ instead of a number. In this case, the default entry
# is the entry saved with the command ‘savedefault’.
# WARNING: If you are using dmraid do not change this entry to ‘saved’ or your
# array will desync and will not let you boot your system.
default 0

Если по умолчанию (т.е. без вмешательства пользователя) должна загружаться ОС Linux, оставляем запись default 0 без изменения. Если же это должна быть ОС Windows, изменяем запись: default 4.

Сохраняем файл, выходим из редактора и терминала.

Источник

Законченное руководство с сайта 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 к этой структуре. После этого мы узнаем, как избавиться от ошибок. Следуйте за мной.

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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 работает подобно этому:

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

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

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

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

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

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

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

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

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

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

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

$ echo «Some string» > &2

Пример: echo «Adding openSUSE 11.2»

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

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

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

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

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

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

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

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

$ chmod +x XX_new_os_script

GRUB 2 команды

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

Обновление GRUB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы можете добавить/удалить конфигурации. Просто выполните команду 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 в конфигурационные файлы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

title Ubuntu 9.10 Karmic Koala
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. Выберите нужную строку и загрузите систему.

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

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

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

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

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

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

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

$ sudo apt-get install grub2

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

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

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

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

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

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

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

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

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

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

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

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

Обратите внимание на отображенное устройство и измените его соответствующим образом. Это все. Мы сделали это. Мы узнали как обновить 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$ sudo mount /dev/sda2 /mnt

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

$ sudo mount /dev/sda1 /mnt/boot

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

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

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

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

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

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

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

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

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

Имена команд

Сравнение 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

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

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

Заключение

Это все. Теперь у вас имеется пошаговое руководство по установке, конфигурированию и разрешению проблем с 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 скрипт и ваши пользовательские скрипты?

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

Ответ: Автоматического обновления не произойдет. Вам нужно будет перезаписать ссылки на ядра вручную. Один из путей решения этой задачи, создание символической ссылки на последнее ядро и 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.

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

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

Ubuntu 9.10 and earlier:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

multiboot /boot/xen.gz
module /boot/vmlinuz-xen
module /boot/initrd-xen

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

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

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

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

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

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

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

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

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

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

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

#set timeout=$<2>
set timeout=20

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

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

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

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

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

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

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

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

Источник

Перейти к содержимому

После установки 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.


Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как переустановить windows 10 через настройки
  • Windows media creation tool windows 10 iso
  • Windows update failed to check for updates with error 0x8024500c
  • Не ставится обновление windows 10 22h2
  • Установка dns сервера на windows server 2019