- Установка Linux на UEFI
- Установка Linux на Legasy BIOS
- Установка Linux на платы с UEFI
- Шаг 1. Запись Linux на флешку UEFI в Linux
- Шаг 1 (альтернатива). Запись Linux на флешку UEFI в Windows
- Шаг 2. Выбор порядка загрузки
- Шаг 3. Разметка диска для UEFI
- Шаг 4. Создание раздела ESP
- Шаг 5. Вариант разметки дисков
- Шаг 6. Назначение разделов
- Шаг 7. Завершение установки
- Управление загрузчиком UEFI с помощью eifbootmgr
- Выводы
- Saved searches
- Use saved searches to filter your results more quickly
- syzdek/efibootiso
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
Установка Linux на UEFI
Перед тем, как начинает загружаться операционная система, специализированное программное обеспечение компьютера инициализирует все компоненты, проверяет их готовность к работе и только потом передает управление загрузчику ОС.
Раньше для этих целей использовался набор программ BIOS, но этот стандарт сейчас считается устаревшим, а ему на замену пришла технология UEFI, которая поддерживает защищенную загрузку, имеет приятный графический интерфейс настройки и много других преимуществ. Большинство современных материнских плат и ноутбуков выпускаются уже с UEFI. В этой статье мы рассмотрим как выполняется установка Linux на UEFI и с какими проблемами вы можете столкнуться.
Установка Linux на Legasy BIOS
Это вариант для владельцев плат UEFI, которые не хотят разбираться в тонкостях использования этой технологии и согласны использовать свое устройство как раньше с BIOS. Большинство материнских плат позволяют эмулировать режим BIOS. В этом режиме вы можете установить Linux безо всяких проблем и дополнительных разделов, так как это делалось в BIOS.
Чтобы включить режим Legasy BIOS надо войти в настройки BIOS/UEFI с помощью кнопки F2, Del или Shift+F2 и найти там соответствующий пункт. Например, у меня этот пункт находится на вкладке Boot. Здесь нужно выбрать режим загрузки UEFI или Legasy.
После сохранения настроек вы можете устанавливать свою операционную систему как обычно. Если же вас такой вариант не устраивает, дальше мы рассмотрим как установить Linux именно на UEFI.
Установка Linux на платы с UEFI
Я буду рассматривать установку на примере Ubuntu, но все действия аналогичны и для других дистрибутивов. Сначала необходимо записать образ диска на флешку. Большинство дистрибутивов уже поддерживают загрузку в UEFI.
Шаг 1. Запись Linux на флешку UEFI в Linux
Для записи образа на флешку в Linux лучше использовать утилиту Etcher. Программа запишет носитель, который можно загружать как в UEFI, так и в обычной системе. После запуска программы надо выбрать образ системы:
Затем карту памяти и дождаться завершения записи:
Также можно записать образ на флешку вручную. Это проще чем для обычного BIOS, хотя и потребует больше действий. Сначала отформатируйте ваш носитель в FAT32. Это можно сделать в стандартной утилите управления дисками Gnome:
Затем распакуйте содержимое установочного образа в корень флешки:
sudo mount /путь/к/образу.iso /mnt
sudo mount /dev/sdb1 /media/flash/
sudo cp -r /mnt/* /media/flash
Здесь /dev/sdb1 — имя раздела вашей флешки. Вы можете выполнить все эти действия в файловой менеджере. Не обязательно использовать команды. Далее нужно установить на раздел флешки, куда вы распаковали свои файлы два флага — boot и lba. Это можно сделать с помощью Gparted. Просто запустите программу, выберите в списке дисков свою флешку:
Нажмите правой кнопкой по разделу, выберите Управление флагами и установите галочки на против флагов boot и lba.
Каким бы способом вы не пользовались, ваша флешка готова и вы можете с нее загружаться. Большинство образов Linux уже содержат загрузчик EFI и прошивка компьютера его найдет при следующей перезагрузке.
Шаг 1 (альтернатива). Запись Linux на флешку UEFI в Windows
Если вы решили записать Linux в Windows, то лучше использовать утилиту Rufus. В ней необходимо выставить такие параметры:
- Схема раздела и тип системного интерфейса: GPT для компьютеров с UEFI;
- Файловая система: FAT32.
Все остальные параметры — по умолчанию. После завершения записи ваша флешка готова к использованию.
Шаг 2. Выбор порядка загрузки
Для того чтобы ваша система смогла загрузиться с только что записанной флешки нужно отключить UEFI Secure Boot. Этот режим позволяет загружаться только подписанным операционным системам, а подписанными являются только ОС от Microsoft. Поэтому для Linux этот режим надо отключать. У меня эта настройка тоже есть на вкладке Boot:
Кроме того, надо установить на первое место флешку:
После этого можно перезагружать компьютер и приступать к установке. Если у вас появилось вот такое окно, значит все хорошо. Здесь надо выбрать «Try Ubuntu without installing», это обязательное условие:
Я не буду описывать все шаги установки, которые надо выполнить, они ничем не отличаются от установки обычной ОС, отличие только в установке загрузчика и разметке диска. На нем и остановимся далее.
Шаг 3. Разметка диска для UEFI
У UEFI в этом плане есть несколько отличий от BIOS. Во первых, это использование таблицы разделов диска GPT. Это новая технология, которая имеет массу преимуществ над MBR, среди которых очень большое количество первичных разделов (в MBR только четыре), восстановление при повреждениях, и многое другое. Подробнее о том чем GPT отличается от MBR читайте в отдельной статье. Второе отличие в том, что файлы загрузчика операционной системы больше не хранятся в первых 512 байтах жесткого диска. Все они хранятся на отдельном разделе, который называется ESP.
Перед тем, как нажать «Install Ubuntu» желательно подготовить диск с помощью Gparted. Откройте утилиту из главного меню образа. Затем выберите Device -> Create Partition Table:
В списке выберите таблицу разделов GPT:
Дальше переходим к созданию разделов.
Шаг 4. Создание раздела ESP
В Gparted нам необходимо создать только раздел ESP для UEFI. Для этого выберите «Незамеченно», а затем нажмите по нему правой кнопкой и выберите «New»:
В качестве файловой системы для раздела надо выбрать FAT32, размер — 100 мегабайт. Далее нажмите кнопку «Apply» для применения изменений.
Затем нажмите «Manage Flags» и установите галочки напротив флагов «boot» и «efi».
Далее переходим к установщику Ubuntu.
Шаг 5. Вариант разметки дисков
Когда система предложит выбрать способ разметки можно позволить системе все разметить автоматически. Но это только в том случае, если вы у вас уже не установлена какая-либо операционная система. Иначе выбираем «Свой вариант»:
Шаг 6. Назначение разделов
Если вы выбрали другой вариант разметки, то перед вами откроется меню со списком всех разделов. Найдите внизу окна «Устройство для установки загрузчика» и выберите в списке раздел для EFI.
Затем кликните по разделу для EFI в списке и выберите «Системный раздел EFI»:
Далее можно продолжить установку как обычно. Вам надо создать корневой раздел, и по желанию вы можете создать раздел для загрузчика, подкачки и домашний раздел. Подробнее про установку Ubuntu 18.04 вы можете прочитать по ссылке.
Шаг 7. Завершение установки
После того как все файлы распакуются и установится загрузчик установка Linux на UEFI будет завершена, вы можете перезагрузить комьпютер и пользоваться своей системой как обычно.
Но давайте еще рассмотрим управление пунктами меню и загрузчиками EFI.
Управление загрузчиком UEFI с помощью eifbootmgr
Когда система загрузится вы можете отобразить настройки UEFI по умолчанию выполнив команду:
Рассмотрим подробнее что означает каждый из параметров:
- BootCurrent — загрузчик, который был использован для запуска этой операционной системы;
- BootOrder — порядок загрузчиков, в котором менеджер загрузки будет их перебирать во время старта системы. Если первый загрузчик не сработал, то будет использован второй и так далее;
- BootNext — загрузчик, который будет запущен при следующей загрузке;
- Timeout — таймаут на протяжении которого будет показываться меню выбора загрузчика, перед тем, как он будет выбран автоматически;
- Пункты 0000 — 0004 — загрузчики которые можно использовать.
Вы можете изменить порядок загрузки с помощью опции -o, например, сделаем так чтобы первым загружалась ОС из оптического диска:
И вернем обратно на первое место Ubuntu:
Можно изменить таймаут, чтобы отображалось меню выбора системы:
Здесь мы установили таймаут в 20 секунд.
Выводы
В этой статье мы рассмотрели как установить Linux на UEFI, а также как управлять порядком загрузки в установленной системе. Теперь, если у вас возникнет желание установить эту операционную систему на свой новый ноутбук с EFI, то вы уже знаете как это сделать. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
syzdek/efibootiso
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is a simple example of how to create a bootable ISO for a computer using UEFI. A makefile is included which automates the downloading of a test Linux kernel and initfs (Slackware current 64bit) and generating the bootable ISO and requisite files/images using the base tools.
The general flow of creating a bootable ISO for UEFI systems is:
- Create an UEFI Grub image with a stub config and minimal modules.
- Create a vfat image file to use as the UEFI ESP (EFI System Partition).
- Create the ISO with the kernel images, ESP image file, Grub modules, and full using mkisofs.
Create directory structure and download files
Create directories and change CWD:
mkdir -p efibootiso cd efibootiso mkdir -p EFI/BOOT mkdir -p boot/grub/x86_64-efi
curl \ -o boot/vmlinuz \ https://mirrors.kernel.org/slackware/slackware64-current/kernels/huge.s/bzImage curl \ -o boot/initrd.img \ https://mirrors.kernel.org/slackware/slackware64-current/isolinux/initrd.img
cp /usr/lib64/grub/x86_64-efi/*.mod boot/grub/x86_64-efi/
Create stub grub configuration:
cat grub-stub.cfg insmod all_video insmod efi_gop insmod efi_uga insmod video_bochs insmod video_cirrus insmod iso9660 insmod udf search --no-floppy --label EFIBOOTISO --set root set prefix=($root)/boot/grub configfile /grub.cfg EOF
grub-mkimage \ -o EFI/BOOT/bootx64.efi \ -c grub-stub.cfg \ -p /boot/grub \ -O x86_64-efi \ efi_gop efi_uga efinet \ all_video video video_bochs video_cirrus video_fb videoinfo \ serial \ terminfo terminal \ search search_fs_file search_fs_uuid search_label \ udf iso9660 ext2 fat exfat ntfs hfsplus \ part_gpt part_msdos msdospart lvm diskfilter parttool probe \ normal \ acpi ohci uhci ahci ehci \ cat ls chain configfile echo halt reboot \ ls lsefimmap lsefisystab lsmmap lspci lsacpi lssal \ linux
Create UEFI ESP (EFI System Partition) Image
Create empty file to use as disk image:
dd if=/dev/zero of=EFI/BOOT/efiboot.img bs=512 count=2880
mkfs.msdos -F 12 -n 'EFIBOOTISO' EFI/BOOT/efiboot.img
Create directory structure:
mmd -i EFI/BOOT/efiboot.img ::EFI mmd -i EFI/BOOT/efiboot.img ::EFI/BOOT
Copy grub image into disk image file:
mcopy -i EFI/BOOT/efiboot.img EFI/BOOT/bootx64.efi ::EFI/BOOT/bootx64.efi
Create UEFI bootable ISO image
Create full grub configuration:
cat grub.cfg serial --unit 4 --speed 9600 terminal_input serial console terminal_output serial console set pager=1 menuentry --hotkey=l 'Linux' < echo 'Loading /boot/vmlinuz . ' linux /boot/vmlinuz \ console=tty0 \ rw echo 'Loading /boot/initrd.img . ' initrd /boot/initrd.img >menuentry --hotkey=p 'List PCI' < lspci >menuentry --hotkey=r 'Reboot' < reboot >menuentry --hotkey=h 'Halt' < halt >EOF
Create ISO image with mkisofs:
mkisofs \ -o efiboot.iso \ -R -J -v -d -N \ -x efiboot.iso \ -hide-rr-moved \ -no-emul-boot \ -eltorito-platform efi \ -eltorito-boot EFI/BOOT/efiboot.img \ -V "EFIBOOTISO" \ -A "EFI Boot ISO Test" \ .