Настройка запуска меню загрузчика GRUB при установке Linux с Windows на один компьютер с таблицей разделов GPT
Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматически загружается Windows. Немного теории:
GRUB (GRand Unified Bootloader) — программа-загрузчик операционных систем.
GRUB может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.
Значит с теорией мы немного разобрались (думаю этого будет достаточно), теперь же рассмотрим, какие бывают подводные камни, при установке Dual Boot Windows и Linux на одном компьютере.
Эксперимент производился на рабочей станции со следующими характеристиками:
Base Board Information
- Size: 4096 MB
- Type: DDR3
- Speed: 1333 MHz
- Manufacturer: Kingston
- Rank: 2
- product: ST500DM002-1BD14
- vendor: Seagate
- physical id: 0.0.0
- bus info: scsi@0:0.0.0
- logical name: /dev/sda
- size: 465GiB (500GB)
- capabilities: gpt-1.00 partitioned partitioned:gpt
Но, как показала практика, не со всеми дистрибутивами такое происходит. При установке Ubuntu 16.04.1 вместо Debian на ту же рабочую станцию вылез первый подводный камень — GRUB не стартовал, и Windows 10 автоматом шла на загрузку.
Решение проблемы было найдено спустя недели три-четыре (тогда уже надоело считать, сколько времени убито на решение проблемы). Оно оказалось неожиданным, но в тоже время вся система заработала. Значит, если вы столкнулись с такой же проблемой, приведенная ниже инструкция может вам пригодится и сэкономить кучу времени.
Важно! До начала выполнения инструкции нужно подготовить LiveCD с дистрибутивом Linux Mint — все операции мы будем выполнять на нем (я выбрал этот дистрибутив из-за того, что на него спокойно можно установить Midnight Commander, что сложно сделать на LiveCD с Ubuntu, так мы получаем больше пространства для маневров). Также стоит заметить, что команда из под консоли update-grub вам не поможет, так как она рассчитана на случай, когда GRUB запускается, но не видит другие ОС кроме Линукса. Также рекомендую создавать резервные копии файлов/каталогов, над которыми вы осуществляете хоть малейшие изменения.
- Через терминал, с правами root смонтировать раздел с EFI в папку /mnt. В моем случае, это была команда mount /dev/sda2 /mnt.
menuentry 'openSUSE Leap 42.2 27.01' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' < load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo 'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo 'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default >
Написать openSUSE The best choice!:):
menuentry 'openSUSE The best choice!:)' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' < load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo 'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo 'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default >
Хоть мелочь, а приятно! Остальное в коде советую не трогать.
Если трудно разобраться с управлением Midnight Commander (в этом нет ничего страшного, у меня тоже в первый раз были проблемы с этой программой), все операции можно выполнить в файловом менеджере Nautilus (или в другом, не суть важно), но изначально запустив его под правами пользователя root.
После этого идем на перезагрузку и радуемся результату. Но, как оказывается, такая проблема есть и у дистрибутива OpenSUSE Leap 42.2. Как показала практика, если на компьютере установлен дистрибутив OpenSUSE с Windows 10, то приведенная выше инструкция не поможет. Точнее, она поможет, но только ее нужно дополнить. После выполнения основной части выполняем следующие шаги:
- После выполнения всех операций заходим в папку /EFI/opensuse/x86_64-efi/ (название итоговой папки x86_64-efi может быть другим в зависимости от архитектуры ПК)
- Копируем файл grub.efi (если у вас включена опция Secure Boot, там будет еще файл shim.efi, тогда советую скопировать их вместе)
- Заходим в папку /EFI/Boot и удаляем все файлы, которые там есть (при обновлении загрузчика они снова появятся, но в этом нет ничего страшного)
- Вставляем файл (или файлы), которые мы скопировали и спокойно идем на перезагрузку.
Вот и вся инструкция. Думаю, кому-то пригодится…
Для тех же, кого заинтересовала данная тема, рекомендую прочитать статью: «Начальный загрузчик GRUB 2 — полное руководство».
4 Менеджеры бесплатной загрузки — Двойная загрузка Windows и Linux
Как осуществлять двойную загрузку Linux и Windows на одном и том же жестком диске? Обычно на компьютере устанавливается одна операционная система, для тех, кто хочет осуществлять двойную загрузку нескольких ОС, таких как комбинация Windows и Linux, необходимо внести некоторые изменения и включить опцию выбора, с какой ОС загружаться при запуске.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Альтернатива 2020 Статья ➤ 3 Альтернативы бесплатного Boot Camp — запуск Windows приложений и игр на MacOS
Вы можете установить 2 операционные системы при условии, что вы разбиваете SSD или Hard Disk на 2 диска. При установке дистрибутива Linux обычно устанавливается системный загрузчик Grub. Grub загружается вместо системного загрузчика Windows во время загрузки, если Windows уже установлена, позволяя выбрать операционную систему, которую вы хотите загрузить, изменив данные конфигурации загрузки.
↓ 01 – Груб2Вин | Бесплатный
Grub2Win поддерживает 64- и 32-битные EFI и BIOS на Windows 10, 8, 7 и XP. Безопасная двойная загрузка Windows и Linux с GPT или MBR дисков. Grub2Win загружает родной код GNU Grub версии 2. Все содержится в единственном каталоге размером 20 МБ на диске Windows C:. На EFI-системах на ваш EFI-раздел устанавливается несколько небольших модулей.
С помощью простого графического интерфейса Windows и инструкций вы можете быстро и безопасно установить Grub2Win. Выбирайте из множества вариантов ОС. Поддерживает Antergos, Android, Ubuntu, Debian, Suse, Fedora, Mint, Clover и Windows. Также загружает ISO-файлы. Вы можете вводить свои собственные пользовательские команды для каждого пункта меню.
- Поддерживает 64- и 32-битный EFI, а также прошивку BIOS.
- Устанавливается в Windows 10, 8, 7 и XP.
- Требуется только один каталог на диске Windows C:, около 20 МБ дискового пространства.
- Простой графический интерфейс Windows позволяет легко настроить Grub2Win за считанные секунды.
- Позволяет установить порядок загрузки прошивки EFI из Windows.
- Предварительный просмотр и настройка 9 включенных графических фоновых тем.
- Работает со всеми файловыми системами, включая Mac hfs и Btrfs.
- Может выполнять поиск и загрузку раздела по его метке. Поддерживает расширенный скриптинг.
- Работает как с GPT, так и с MBR дисками — до 128 первичных разделов на диск.
- Поддерживает очень большие (более 40 ТБ) диски и разделы.
- Безопасная мультизагрузка Windows, Antergos, Android, Ubuntu, Debian, Suse, Fedora, Mint, Clover и многое другое.
- Настройка Grub выполняется из Windows — Настройка в Linux не требуется.
↓ 02 – EasyBCD | Свободная личность
Возьмите под свой контроль системный загрузчик, EasyBCD суперзаряжает ваш ПК с Windows, позволяя вам дважды загрузиться в содержимое вашего сердца. Также загрузитесь в старые системы Microsoft не поддерживает: MS-DOS, Windows 9x, Windows ME и Windows 2000!
EasyBCD предназначен для пользователей всех видов. Хотите ли вы просто добавить запись в старый раздел XP или создать дубликат для тестовых целей; если вы заинтересованы в отладке ядра Windows или раздельной загрузке ваших семи тестовых операционных систем, EasyBCD является ключом.
- Загружайте все, что угодно — Windows, Linux, macOS и BSD! Загружайте с и на USB-носители, ISO-образы, виртуальные диски и многое другое.
- Загрузка в любом месте — Создавайте загрузочные USB-флешки с утилитами для ремонта, которые можно взять с собой куда угодно.
- Защита от стихийных бедствий — создание записей для загрузки в утилиты восстановления или безопасный режим для подготовки к дождливому дню.
- Безболезненное редактирование — добавлять, переименовывать, удалять, настраивать и переупорядочивать записи по прихоти.
- Решение сложных проблем — используйте EasyBCD для устранения неполадок Windows, резервного копирования и ремонта системного загрузчика и многого другого.
- Мощный скриптинг с помощью NeoGrub — Вы сможете скрывать разделы, изменять активные флаги и создавать сложные сценарии загрузки.
rEFInd — это вилка малого менеджера загрузки rEFIt для компьютеров на базе Extensible Firmware Interface (EFI) и Unified EFI (UEFI). Как и rEFInd, rEFInd является менеджером загрузки, что означает, что он представляет пользователю меню опций при первом запуске компьютера, как показано ниже. rEFInd не является системным загрузчиком, это программа, которая загружает ядро ОС и передает ему управление.
Это EFI-базисный загрузчик для компьютеров на базе BIOS, созданный как замена загрузчику EDK2/Duet. Clover — это загрузчик операционной системы для компьютеров, уже имеющих прошивку UEFI, а также для компьютеров с устаревшими прошивками BIOS. Операционная система (ОС) может поддерживать (U)EFI (макросы, Windows 7, 8 или 10, Linux) или нет (Windows XP). Устаревшая загрузка используется для последней, то есть старая система BIOS используется для работы с загрузочными секторами.
- Загрузка макросов, Windows и Linux в UEFI или в старом режиме на Mac или ПК с прошивкой UEFI или BIOS.
- Загрузка непосредственно с помощью прошивки UEFI или эмуляции прошивки CloverEFI UEFI
- Настраиваемый графический интерфейс, включающий темы, иконки, шрифты, фоновые изображения, анимацию и указатели мыши.
- Возможность загрузки ранее выбранного загрузочного элемента после таймаута по умолчанию
- Пункты меню Загрузка прокручиваются, если разрешение экрана слишком низкое для меню.
- Создание пользовательских загрузочных записей для персонализации загрузочных записей и добавление поддержки для других операционных систем
- Создание загрузочной записи Кловера в NVRAM с помощью инструмента из графического интерфейса пользователя
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)