LINUX.ORG.RU

Не могу установить Arch linux на virtualbox EFI

 , ,


0

1

Делал по разным гайдам но не получается. После первой перезагрузги запускается grub и захожу в систему все нормально. Гружусь во второй раз grub слетает и меня встречает efi shell. Пожалуйста что я делаю не так?

Размечаю

cfdisk /dev/sda 
/dev/sda1 - 512M EFI
/dev/sda2 - 36G root Linux File System
/dev/sda3 - Весь остаток home Linux file System
Монтирую фс
mkfs.ext4 /dev/sda2
mount /dev/sda2 /mnt
mkfs.vfat -F32 /dev/sda1
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkfs.ext4 /dev/sda3
mkdir /mnt/home
mount /dev/sda3 /mnt/home
Установка
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
Дальше пользователя пароль и локаль пропустим
mkinitcpio -p linux

ставлю граб как в вики
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=arch_grub
grub-mkconfig -o /boot/grub/grub.cfg

все работает без ошибок дальше настройка инета и тд reboot

ИМХО, монтировать лучше так:

sda1 EFI /mnt/boot/efi
sda2 / /mnt
sda3 home /mnt/home
С фс все верно. Установка grub в таком случае выглядит просто как
grub-install
и создание конфигурации. Есть нюанс с некоторыми платами, которые почему-то не находят файл в /boot/efi/EFI/arch/. Тогда при загрузке grub не будет штатно работать. В этом случае нужно создать папку /boot/efi/EFI/boot и скопировать туда из /boot/efi/EFI/arch/ efi файл (archx64.efi если память не изменяет), но изменить его имя на bootx64.efi

brittx ()
Ответ на: комментарий от Vsevolod-linuxoid

У VirtualBox просто кривая реализация UEFI, тебе нужно в removable media path прописать загрузчик.

Ну вот. Ubuntu из коробки ставится в Virtualbox без всяких проблем в EFI режиме, если в свойствах виртуальной машины стоит галочка у EFI.

Но вот всё Virtualbox виноват...

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

Ubuntu просто рассчитана на кривые UEFI:

Many UEFI firmware implementations are unfortunately buggy, as mentioned earlier. Despite the specification for boot entries and boot order being quite clear about how things should work, there are lots of systems in the wild which get it wrong. Some systems simply ignore valid requests to add new boot entries. Others will accept those requests, but will refuse to use them unless they describe themselves as «Windows» or similar. There are lots of other similar bugs out there, suggesting that many system vendors have done very little testing beyond «does it work with Windows?»

As described above, on a UEFI system bootloaders should be installed only in the correct vendor-specific directory in the EFI System Partition (ESP). But, because of the buggy firmware implementations out there, operating system distributors cannot necessarily expect that this will work correctly for all systems. Microsoft have worked around this (and arguably also made the problem worse) - the Windows installer also installs to the removable media path in the ESP (e.g. \EFI\boot\bootx64.efi for amd64/X64 systems). All firmware implentations have to use this path to be able to run an OS installer. This means that Windows will always work on all these broken implementations, but it also means that system vendors can get away with shipping broken implementations. It removes the idea of having a fallback boot path and sensible control of boot order.

All OS installers installing things to this removable media path will conflict with any other such installers, which is bad and wrong. That's why in Debian we don't do this by default.

However, to help support those unfortunate people who own buggy systems like this, there is an option to force grub-efi installation to the removable media path too. There is a d-i Rescue Mode option to force this - if you've just installed Debian on your UEFI system but it won't boot Debian afterwards, this may fix the problem for you. It can also be selected during the normal installation run using Expert mode, or preseed users can add the following option in their configuration:

grub-efi-amd64  grub2/force_efi_extra_removable boolean true

Vsevolod-linuxoid ★★★★★ ()
Ответ на: комментарий от ifuser

Боже.. Что за проблема?

mkdir -p /mnt/root
mount /dev/sda2 /mnt/root
cfdisk /dev/sda
выставляем на sda1 type EFI
форматируем в fat32
mount /dev/sda1 /mnt/root/boot/efi
ставим граб как я сказал выше
Deleted ()
Ответ на: комментарий от Deleted

Я в курсе. Просто эта проблема по-видимому общая для Arch и Debian, и происходит по идентичной причине.

Рецепт для инсталлятора Debian ему конечно не подойдет — придется руками.

Vsevolod-linuxoid ★★★★★ ()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Deleted

Посмотри мою инструкцию я по ней делаю. Твои исправления вносил. Не работает. А еще прежде чем писать сюда, я уже его переустанавливал раз 10 точно. По разным гайдам. Если у вас полная рабочая инструкция я попробую.

ifuser ()