1

Глядя на онлайн-источники, можно предположить, что для систем 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

Что я пробовал:

  1. Выполните шаги по настройке bcdedit в хорошо известном руководстве, указанном в Archlinux wiki.

Это приводит к ошибке загрузки и требует от пользователя загрузки обратно в выбор ОС. Работает только опция Windows. Я подозреваю, что это потому, что Linux находится на втором жестком диске.

  1. Использовал метод 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 не поддерживается.

  1. Создана запись bcdedit с каталогом, установленным в H: (linux fat32 /boot section) с путем, указывающим на EFI /arch_grub /grubx64.efi

Это приводит к той же ошибке снова. Я подозреваю, что это потому, что bcdedit не может работать на втором жестком диске.

Кто-нибудь может дать понимание / руководство по этой теме?

0