UEFI

Материал из ALT Linux Wiki
Версия от 18:05, 7 ноября 2012; MichaelShigorin (обсуждение | вклад) (init)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Поддержка UEFI в ALT Linux

В работе.

Результат

По состоянию на ноябрь 2012 доступен экспериментальный Live-образ, поддерживающий загрузку в EFI mode и Legacy mode, будучи записанным на CD/DVD-болванку или USB-флэшку. Проверен на ASUS/Gigabyte UEFI и MacBookPro EFI.

HOWTO

Приборы и материалы:

  • свежий Sisyphus
  • syslinux 4.06 (task #83898)
  • xorriso 1.2.4+ (task #83896)
  • «простая» live-исошка (например, live-efi с нужными утилитами и live-install, но пока без EFI-загрузчика)

Действия от имени root (может быть удобно записать в скрипт):

cd ${TMP:-/tmp}
apt-get install bsdtar dosfstools elilo syslinux xorriso
rm -rf ISO
mkdir ISO
cd ISO
wget -O - http://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/mkimage-profiles/tmp/live-efi-20121107-x86_64.iso | bsdtar -xf -
mkdir -p EFI/BOOT
cp -a syslinux/alt0/{vmlinuz,full.cz} EFI/BOOT
cp -a /usr/lib64/efi/elilo.efi EFI/BOOT/bootx64.efi
cat > EFI/BOOT/elilo.conf << EOF
prompt
timeout="20"
default="linux"
image="vmlinuz"
        label="linux"
        read-only
        initrd=full.cz
        append="fastboot live lowmem showopts automatic=method:cdrom ramdisk_size=131072 stagename=live"
EOF
cd ..
rm -rf EFIBOOT
mkdir EFIBOOT
dd if=/dev/zero of=efiboot.img bs=16384 count=1024
mkfs.vfat efiboot.img
mount -o loop efiboot.img EFIBOOT
cp -a ISO/EFI EFIBOOT
wget -O EFIBOOT/shellx64.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi
umount EFIBOOT
mv efiboot.img ISO/EFI/
xorriso -as mkisofs -r -V ALT -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
  -partition_offset 16 -J -l -b syslinux/isolinux.bin -c syslinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e EFI/efiboot.img \
  -no-emul-boot -isohybrid-gpt-basdat -o live-efi.iso ISO
pwd
echo rm -rf EFIBOOT ISO

Копия результата выполнения именно этого скрипта доступна здесь (116M).

Проверка

При загрузке в EFI-режиме загрузчиком будет текстовое ELILO, в BIOS-режиме -- синяя менюшка SYSLINUX; после собственно загрузки и логина именем root в EFI-режиме должны отработать команды modprobe efivars; efibootmgr, в BIOS-режиме вторая из них скажет

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

ВНИМАНИЕ: не пытайтесь запускать efibootmgr на оборудовании Apple, известны случаи повреждения его firmware таким образом.

Использование

В упомянутом образе есть скрипт live-install, подразумевающий ручную разбивку диска (которую следует осуществлять с помощью gdisk или parted, не забыв про FAT32 EFI System Partition). Не забудьте --no-lilo и конфигурирование вручную!

Linkdump

MacBookPro