Які команди для перетворення установки Ubuntu BIOS в EFI / UEFI без відновлення завантаження на одне завантажувальне обладнання?


35

Встановлення випадкового режиму BIOS

У мене 64-розрядне обладнання Intel з утилітою налаштування UEFI. Ubuntu 14.04.1 LTS був встановлений єдиною операційною системою на єдиному підключеному диску. Випадково Ubuntu було встановлено в режимі BIOS / CSM / legacy.

Перетворити в UEFI

Пізніше, дізнавшись про UEFI, мета полягає в тому, щоб змінити існуючу установку Ubuntu на (швидше) завантаження через EFI / UEFI. Я все ще хочу, щоб у мене з'явилося якесь 2-секундне завантажувальне меню, яке дозволяє мені входити в утиліту настройки UEFI. Тому я думаю, що мені потрібно використовувати Grub (не можна використовувати завантажувальний засіб EFI), а підтримка GOP вимагає Grub версії 1.99 або вище . Я вже перерозподілив накопичувач за допомогою живого компакт-диска і вставив розділ 200 MiB EFI на початку диска і відзначив, що жир-16 відформатував розділ як ідентифікатор типу 0xEF.

Перед:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Після:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

Немає ремонту завантаження, будь ласка

Вікі спільноти Ubuntu пропонує використовувати відновлення завантаження для перетворення Ubuntu в режим EFI . Я не хочу використовувати графічний інтерфейс або встановлювати додаткові пакети, і я не хочу, щоб якісь випадкові дані надсилалися на pastebin.com і тому, що я хочу знати, що саме буде змінено, я не хочу використовувати завантажувальний ремонт .

Під капотом

Намагаючись розібратися, чим насправді займається ремонт завантаження, я знайшов цей фрагмент:

Ремонт завантаження перетворить установку BIOS в UEFI, видаливши grub-pc та встановивши grub-efi, якщо gpt розділений.

джерело: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

Порівняння встановлення режиму UEFI

Чиста установка Ubuntu 14.04.1 в режимі UEFI створює розділений формат EFI у форматі 512 MiB Fat32. Цей розділ містить один каталог /EFI/ubuntu, що містить 4 файли: grub.cfg, grubx64.efi, MokManager.efiі shimx64.efi. Grub.cfg містить:

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Search.fs_uuid вказує на UUID інсталяційного розділу Linux, у цьому порівнянні для установки UEFI Linux встановлений розділ / dev / sda2 (проти sda1 в установці режиму BIOS) .

Не знайдено потенційних проблем з програмним забезпеченням Asrock

Відключення CSM все ще відключено в прошивці та використання чистої установки Ubuntu режиму UEFI Зміна розміру 512 MiB EFI-розділу на 200 MiB за допомогою живого компакт-диска і gpartedпризводить до того, що його форматування змінюється з FAT32 на FAT16. Прошивка Asrock P1.50 (неправильно названа BIOS AMI у завантажувальному повідомленні "дата BIOS") все ще може завантажуватися в режимі UEFI Ubuntu: UEFI + FAT16 = нормально .
Перетворення таблиці розділів з GPT в MBR (msdos) за допомогою тієї ж команди терміналу Live CD gdiskта її команд r g p wтакож призводить до завантажувального Ubuntu UEFI на накопичувачі, що розділяється MBR: UEFI + MBR = добре .

Питання

Чи означає це, що єдині команди, які мені потрібно виконати - із застарілої установки Ubuntu і в такому порядку - це:

# apt-get install grub-efi
# apt-get remove grub-pc

? Або потрібно більше зробити?


1
Я б все-таки використовував ремонт завантаження. Ви припускаєте, що вам потрібно встановити пакети ... Я вважаю, що ви помиляєтесь. Дивіться: askubuntu.com/questions/226061/…
Rinzwind

@Rinzwind Я не можу використати завантажувальний ремонт, оскільки в поточній установці Ubuntu (лише консоль) відсутній графічний інтерфейс, а ubuntu-14.04.1-desktop-amd64.iso не завантажується під час встановлення першого пристрою для завантаження USB UEFI в Asrock's Утиліта налаштування UEFI H81 Pro BTC P1.50.
Pro резервне копіювання

1
Ремонт завантаження - це не gui, але базується з одним із додаткових входів, що робить його більш подібним до gui. З новою версією назви пакетів Ubuntu дещо змінилися, тепер я думаю, що це grub-efi-amd64 або grub-efi-amd64. Це може бути тому, що вони хочуть випустити 32-розрядний завантажувач UEFI, це ім'я змінилося. Версія Chroot, зауважте, що у вас також є встановити grub & create grub.cfg. askubuntu.com/questions/53578/…
oldfred

@oldfred Boot-Repair - це залежно від gui: виконання apt-get install boot-repairцього встановлення на сервері Ubuntu, приводить до 245 Мб GTK, як встановлення залежностей, які завантажує ремонт. І виконання boot-repairкоманди внизу не вдається. Оновлення новіших назв grub-efi було дуже корисним.
Pro резервне копіювання

Якщо Asrock, переконайтеся, що у вас немає підключеного диска або DVD-диска до портів Asmedia. У них немає водіїв. Краще мати gpt з розділеним накопичувачем лише у разі завантаження в UEFI. rodsbooks.com/gdisk/hybrid.html
oldfred

Відповіді:


40

Запустіть живий компакт-диск Ubuntu Linux (14.04) в режимі UEFI. У разі завантажувального пристрою USB відключіть "Швидке завантаження" в UEFI.

Відкрити вікно терміналу ( Ctrl+ Alt+ T)

Щоб перевірити, чи дійсно ви працюєте в режимі UEFI, використовуйте цю команду bash:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Отриманий результат повинен бути:

UEFI

У випадку, якщо це сказано BIOS, перезавантажте програму та виправте налаштування пристрою для завантаження.

Для перетворення BIOS в EFI / UEFI введіть ці команди:

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Незважаючи на закінчення повідомлення про помилку:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

наступне перезавантаження вже показує " ubuntu " в прошивці меню його параметрів завантаження, і завантажується до консолі, як і раніше, за винятком завантаження в режимі efi:

$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA

Якщо щось піде не так, https://superuser.com/questions/376470/how-to-reinstall-grub2-efi може допомогти.


Це допомогло мені оновити жорсткий диск і перетворити на GPT / UEFI / SecureBoot без перевстановлення. Дякую. Одне зауваження: мені потрібен був grub-efi-amd64-signedпакет, щоб не морочитися з відключенням SecureBoot у моїй UEFI BIOS.
Робі Басак

Зараз 2018 рік, і ця проблема з ІФІ я все ще зберігається. навіть завантаження efi встановлено, але я опинився в grub cli. Я здаюсь на Ubuntu.
Абхішек Дюджарі

Це працювало для мене під Ubuntu 19.10. Я завантажив живий USB за допомогою EFI, і я додав розділ 200 МБ типу FAT32 для EFI до кінця свого диска.
Джої Адамс

1

Це також працювало для мене однією невеликою зміною. Незважаючи на те, що мережа працювала, я не міг отримати "apt-get install grub-efi-amd64", щоб знайти будь-який із серверів пакетів.

Я подолав це, завантаживши в режимі BIOS остаточний раз та встановивши grub-efi-amd64.

Тоді я міг би дотримуватися процедур тут, за винятком пропуску "apt-get install grub-efi-amd64".


1

Невелика корекція:

sudo apt-get install -y grub-efi-amd64
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do sudo mount -B /$d /mnt/$d; done
sudo modprobe efivars
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Зроблено.


Чи можете ви пояснити, чому ви пропонуєте ці зміни з відповіді ОП? ………… Будь ласка, не відповідайте на коментарі; відредагуйте  свою відповідь, щоб зробити її більш зрозумілою та повною.
G-Man каже "Відновити Моніку"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.