Глядя на онлайн-источники, можно предположить, что для систем UEFI/GPT это невозможно.
Моя установка - ОС Windows 8.1 на SSD и жесткий диск SATA емкостью 1 ТБ для данных / музыки / изображений и т.д.
Недавно я захотел загрузить Archlinux и решил изменить размер жесткого диска на 1 ТБ, чтобы в Linux было 100 ГБ. Мне удалось успешно установить, и я могу загрузить установку Linux UEFI через BIOS.
Однако, чтобы переключиться между Windows 8.1 и Linux, я должен нажать DEL при перезагрузке, войти в BIOS, нажать меню BOOT и затем нажать на запись arch_grub для загрузочного раздела на жестком диске объемом 1 ТБ.
В идеале я бы хотел, чтобы загрузчик Windows 8 показывал запись для Archlinux и загружал отсюда раздел EFI linux.
Моя настройка
Primary SSD (Win8)
|- /dev/sda1 – recovery (ntfs)
|- /dev/sda2 – boot (fat32)
|- /dev/sda3 – unknown
|- /dev/sda4 – windows primary (ntfs)
Secondary HDD (Windows Data Disk / Archlinux install)
|- /dev/sdb1 – unknown
|- /dev/sdb2 – windows secondary (ntfs)
|- /dev/sdb3 – /boot (fat32)
|- /dev/sdb4 – /mnt (ext4)
|- /dev/sdb5 – /mnt/var (ext4)
|- /dev/sdb6 – swap
|- /dev/sdb7 – /mnt/home (ext4)
Я отформатировал отдельный раздел /boot для FAT32 и установил GRUB в этот раздел, используя:
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug --force /dev/sdb3
Это позволяет мне видеть раздел linux /boot из Windows (диск H:) и имеет структуру:
/boot/
|-EFI/arch_grub/grubx64.efi
|-grub/
|-fonts/...
|-locale/...
|-themes/...
|-x86_64-efi/...
|-grub.cfg
|-grub.cfg.example
|-grubenv
|- initramfs-linux
|- initramfs-linux-fallback
|- vmlinuz-linux
Что я пробовал:
- Выполните шаги по настройке bcdedit в хорошо известном руководстве, указанном в Archlinux wiki.
Это приводит к ошибке загрузки и требует от пользователя загрузки обратно в выбор ОС. Работает только опция Windows. Я подозреваю, что это потому, что Linux находится на втором жестком диске.
- Использовал метод Grub4Dos, поместив grldr и grldr.mbr в C: создав запись bcdedit с путем к grldr.mbr. Сконфигурировал menu.lst и поместил его в C:. Menu.lst выглядел так:
название Linux
Корень (hd1,2)
ядро /boot /vmlinuz-linux root = /dev /sdb3
initrd /boot/initramfs-linux.img
Это приводит к той же ошибке загрузки, что и 1. Я подозреваю, что это потому, что загрузка MBR в среде UEFI/GPT не поддерживается.
- Создана запись bcdedit с каталогом, установленным в H: (linux fat32 /boot section) с путем, указывающим на EFI /arch_grub /grubx64.efi
Это приводит к той же ошибке снова. Я подозреваю, что это потому, что bcdedit не может работать на втором жестком диске.
Кто-нибудь может дать понимание / руководство по этой теме?