У меня есть Intel 64-разрядные аппаратные средства с утилитой установки UEFI. Ubuntu 14.04.1 LTS была установлена как единственная операционная система на единственном присоединенном диске. Случайно Ubuntu была установлена в режиме BIOS/CSM/legacy.
Позже узнавая о UEFI, цель состоит в том, чтобы изменить эту существующую установку Ubuntu на (более быстрой) начальной загрузке через EFI/UEFI. Я действительно все еще хочу иметь некоторый - 2 отображенные секунды - меню начальной загрузки, которое позволяет мне вводить утилиту установки UEFI. Поэтому я думаю, что я должен использовать Личинку (не может использовать тупик начальной загрузки EFI), и поддержка GOP требует версии 1.99 Личинки или выше. Я уже повторно разделил диск с помощью Живого CD и вставил раздел EFI на 200 мебибайт в начале диска и отметил это, fat16 отформатировал раздел как идентификатор типа 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 Wiki предлагает использовать восстановление начальной загрузки для Преобразования Ubuntu в режим EFI. Я не хочу использовать GUI или устанавливать любые дополнительные пакеты, и я не хочу данных, случайно отправляемых в pastebin.com и потому что я действительно хочу знать то, что будет изменено точно, я не хочу использовать Восстановление начальной загрузки.
Пытаясь выяснить, что на самом деле делает восстановление начальной загрузки, я нашел этот отрывок:
Восстановление начальной загрузки преобразует установку BIOS на UEFI путем удаления ПК личинки и установки личинки-efi, если gpt разделил.
источник: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352
Чистая установка Ubuntu 14.04.1 в режиме UEFI создает отформатированный раздел EFI Fat32 на 512 мебибайт. Тот раздел содержит один каталог /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
Поиск fs_uuid указывает на UUID раздела установки Linux в этом сравнении установка UEFI, Linux является установленным разделом/dev/sda2 (по сравнению с sda1 в установке режима BIOS).
Наличие CSM, все еще отключенного во встроенном микропрограммном обеспечении и использование чистого режима UEFI установка Ubuntu. Изменение размеров раздела EFI на 512 мебибайт к 200 мебибайт с помощью Живого CD и gparted
результаты в этом его изменения форматирования от FAT32 до FAT16. Встроенное микропрограммное обеспечение Asrock P1.50 (неправильно названный BIOS AMI в сообщении загрузки "дата BIOS") все еще может загрузить в режим UEFI Ubuntu: UEFI+FAT16 = хорошо.
Преобразование таблицы разделов от GPT до MBR (MS-DOS) с помощью той же Живой команды терминала CD gdisk
и его команды r
g
p
w
также результаты в загрузочной Ubuntu UEFI на MBR разделили диск: UEFI+MBR = хорошо.
Делает это означает, что единственные команды, которые я действительно должен выполнить - от установки Ubuntu прежней версии и в этом порядке-:
# apt-get install grub-efi
# apt-get remove grub-pc
? Или более необходим, чтобы быть сделанным?
Запустите Live CD 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
# rm /etc/resolv.conf
# ln -s ../run/systemd/resolve/stub-resolv.conf resolv.conf
# 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 может помочь.
Небольшое исправление :
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
Готово.
Это тоже сработало для меня с одним небольшим изменением. Несмотря на то, что сеть работала, я не смог получить apt-get install grub-efi-amd64
, чтобы найти какой-либо из серверов пакетов.
Я обошел это, загрузившись в режиме BIOS в последний раз время и установка grub-efi-amd64.
Затем я мог бы выполнить приведенные здесь процедуры, за исключением пропуска apt-get install grub-efi-amd64
.