Конвертировать из EFI в режим загрузки BIOS
У меня есть ноутбук Samsung NP900X4C с зашифрованной установкой LUKS. Система загружается в режиме UEFI.
Проблема в том, что модуль ядра samsung-ноутбука отключен в режиме UEFI и из-за этого мне не хватает таких функций, как подсветка клавиатуры.
Можно ли изменить текущую установку, чтобы она могла загружаться в режиме BIOS?
Правильно ли, что основными шагами будет преобразование диска из GPT в MBR и установка grub с live CD? Возможно ли это с разделом LUKS?
4 ответа
Я сам разобрался с точным путем. Род Смит был прав, это проще, чем я думал.
Вот решение, если кому-то еще это нужно:
Оригинальное расположение разделов:
/dev/sda1(Раздел EFI)/dev/sda2(Загрузочный раздел)/dev/sda3(LVM2 / LUKS зашифрованный Root & Swap)
Преобразование в BIOS загрузки:
- Я удалил раздел EFI и создал новый раздел с
bios_grubфлаг вместо этого. - Используя это руководство, я смонтировал зашифрованную файловую систему, сделал в ней chroot и установил GRUB.
- Удалить раздел EFI из
/etc/fstab,
Это возможно, и это проще, чем вы думаете. Linux может нормально загружаться с GPT-диска в режиме BIOS, поэтому нет необходимости выполнять преобразование MBR в GPT. Если вам повезет, все, что вам нужно сделать, это установить на диск загрузчик в режиме BIOS (GRUB, LILO или SYSLINUX). Однако есть три предостережения:
- Я никогда не использовал LUKS, поэтому я не уверен, как это повлияет на вещи. Я не ожидал бы никаких проблем, но это могло бы быть моим отсутствием опыта разговора.
- Некоторые EFI имеют причудливые требования для загрузки в режиме BIOS. Чаще всего некоторые загружаются в режиме BIOS только в том случае, если они видят флаг boot/active в разделе MBR, а это обычно отсутствует на GPT-дисках. Вы можете обойти это, используя старую версию
fdisk(тот, который не поддерживает GPT, который был добавлен совсем недавно), чтобы установить флаг загрузки / активности или с помощью новой версииpartedустановить флажок (имя которого я не помню случайно) на весь диск. Если вам повезет, вам не придется заниматься этой проблемой. Смотрите эту страницу для более подробной информации по этой проблеме. - Если компьютер выполняет двойную загрузку с Windows, преобразование его в загрузочный режим BIOS может оказаться намного сложнее. В этом случае может быть проще установить rEFInd в качестве менеджера загрузки. После этого rEFInd может загрузить Windows в режиме EFI и загрузить GRUB в режиме BIOS (или все, что вы в конечном итоге используете). Для этого, однако, вам нужно будет отредактировать
refind.conf: Раскомментируйтеscanforлиния и убедитесь, чтоhdbiosнаходится среди предметов, которые сканируются.
Преобразование Ubuntu в устаревший режим
Примечание. Используйте эту процедуру только для преобразования установки Ubuntu в режиме UEFI для загрузки в режиме BIOS/CSM/legacy. Такое преобразование может потребоваться, если какое-то оборудование некорректно работает в режиме UEFI. (Графические карты являются частым источником проблем.) Преобразование для загрузки в режиме BIOS / CSM / устаревшего, когда Windows загружается в режиме UEFI, может сделать процесс загрузки более неудобным - вам нужно будет использовать встроенный диспетчер загрузки компьютера, чтобы переключаться между ОС, а на некоторых компьютерах менеджеры загрузки настолько плохи, что это может быть невозможно.
- Если Ubuntu установлен на GPT-диск (вы можете проверить это через
sudo parted -lкоманда), используйте редактор разделов GParted для создания раздела BIOS-Boot (1 МБ, неформатированная файловая система, флаг bios_grub) в начале его диска. - Запустите Boot-Repair и выберите Дополнительные параметры -> вкладка Местоположение GRUB.
Снимите флажок с параметра Отдельный раздел /boot/efi.
Нажмите кнопку Применить в правом нижнем углу.
- Настройте BIOS так, чтобы он загружал жесткий диск в устаревшем режиме. Обычно этот параметр находится на вкладке " Загрузка " → " Порядок загрузки " в BIOS.
Источник: отредактировано из: UEFI - Community Help Wiki
Я знаю, что это старо (извините за некро), но я не нашел руководства, которое действительно работало бы для моей Ubuntu 16.04, и я боролся с ответом @Lukas S, а также с официальным руководством Ubuntu UEFI для BIOS (@karel's answer). Публикуйте его здесь, а не редактируйте вики-руководство Ubuntu, поскольку этот вопрос askubuntu появляется раньше во всех поисковых системах.
На самом деле, я удивлен, что любое из этих трех руководств может действительно работать для кого-либо как есть, потому что системы UEFI (обычно) не имеют файлов grub-i386-pc, необходимых для работы, поэтому они терпят неудачу на этом этапе. Boot-repair также терпит неудачу при попытке восстановить (говоря «grub-pc отменен»). Вероятно, у авторов этих руководств были эти файлы каким-то образом, возможно, из предыдущих битв.
Моя установка была типичной системой EFI, которая на самом деле является старой Ubuntu 16.04:
- /dev/sda1=fat32 (esp,efi) раздел
- /dev/sda2=система Linux
- /dev/sda3=swap (неважно, это не обязательно)
- в системе Linux на sda2 отсутствует папка /usr/lib/grub/i386-pc, в которой есть модули, необходимые для загрузки BIOS и установки grub.
Мой диск тоже GPT, и это прекрасно — не нужно конвертировать gpt в msdos.
Шаги, которые мне пришлось сделать для успешного перехода с UEFI на BIOS:
удалить раздел sda1
воссоздайте тот, который не отформатирован, но с флагом bios_grub. Примечание. Gparted сомнительный, поскольку, когда я выбрал «неформатированный» при его создании, он дал мне файл fat32 (который
grub-installне любит). Мне пришлось щелкнуть правой кнопкой мыши «форматировать в» и выбрать «очистить», затем применить, а затем добавить флаг «bios_grub».загрузитесь в режиме BIOS (важно!) с живого компакт-диска Ubuntu. Я использовал Xubuntu 20.04.3. Важно загрузиться в режиме BIOS, потому что это даст вам файлы grub-i386-pc, которые вам понадобятся позже.
mkdir /mnt/sda2mount /dev/sda2 /mnt/sda2for f in sys dev proc; do mount -o bind /$f /mnt/sda2/$f; donersync -a /usr/lib/grub/i386-pc /mnt/sda2/usr/lib/grub/(важно! нет/после i386-pc)chroot /mnt/sda2 /bin/bashgrub-install /dev/sda
Сделанный. Перезагрузился, и теперь система загружается в режиме BIOS с жесткого диска.
В моем 16.04 теперь есть более новые файлы grub-pc-i386 в /usr/lib/grub, но это не беспокоит. Отрадно знать, что эта процедура работает с разными версиями дистрибутива. Я все равно планирую обновиться до 20.04.
ps Кто-то, вероятно, также должен отредактировать официальную вики Ubuntu ...
