4

У меня есть следующие настройки:

  • UEFI материнская плата Asus
  • GPT TABLE и Ubuntu на /dev/sdb
  • MS-DOS TABLE, Windows 7 и Linux Mint на /dev/sda

Я пытаюсь загрузить разделы Windows 7 с grub2 из Ubuntu 11.10.

Моя Windows "System Reserved" - это /dev/sda3 .

Вход в GRUB (стандартный):

menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
        insmod part_msdos
        insmod ntfs
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 644C5AC04C5A8CA4
        chainloader +1
}

Раздельный вывод:

Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      32.3kB  296MB   296MB   primary   ext2
 2      296MB   423GB   423GB   extended
 5      296MB   20.3GB  20.0GB  logical   ext4
 6      20.3GB  363GB   342GB   logical   ext4
 7      363GB   423GB   60.1GB  logical   ntfs
 3      423GB   423GB   105MB   primary   ntfs         boot
 4      423GB   500GB   77.2GB  primary   ntfs


Disk /dev/sdb: 1500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name  Flags
 1      17.4kB  20.0MB  20.0MB  fat16                 boot
 2      20.0MB  50.9GB  50.9GB  ext4
 4      50.9GB  1103GB  1052GB  btrfs
 5      1103GB  1156GB  52.7GB  ext4
 6      1156GB  1233GB  77.2GB  ntfs
 7      1233GB  1233GB  105MB   ntfs
 3      1496GB  1500GB  4271MB  linux-swap(v1)

После попытки загрузки Windows из grub2 я получаю сообщение:

ошибка: неверный путь к файлу EFI

1 ответ1

7

Тебе этого не сделать.

Должно быть очевидно, что любое предзагрузочное приложение, такое как программа загрузчика операционной системы, тесно связано с микропрограммой компьютера; так же, как обычная прикладная программа связана с операционной системой, службы которой она использует. Программа начального загрузчика EFI не может быть запущена на машине, если эта машина не предоставляет службы прошивки EFI. Старая программа загрузчика в стиле PC/AT не может быть запущена на компьютере, если этот компьютер не предоставляет старые сервисы прошивки для ПК /AT.

Глагол- chainloader в GRUB воплощает это. Он не задокументирован, но он делает разные вещи в зависимости от того, как размещается GRUB - то есть, на какой машинной прошивке GRUB (ожидается) будет работать. В версии GRUB, размещенной на старых системах PC/AT, предполагается, что ему будет предоставлен набор блоков диска или файл, и он загрузит и запустит (первый сектор) то, что ему дано, как старый PC/AT VBR. программа начальной загрузки. В размещенной на EFI версии GRUB предполагается, что ему будут заданы имена файлов, и они будут загружаться и запускаться как обычные приложения EFI.

У вас есть версия GRUB для EFI. Вы передали +1 chainloader качестве имени файла, но это просто неверный путь к файлу образа приложения EFI перед загрузкой. GRUB не смог создать путь к устройству EFI для файла изображения, потому что вы указали синтаксически неверный путь. Отсюда и сообщение об ошибке.

Правильное использование chainloader в размещенном на EFI GRUB именует файл. Для Microsoft Windows NT 6.1 это будет версия EFI Диспетчера загрузки Microsoft, которая находится рядом с хранилищем BCD в системном разделе EFI:

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Конечно, это не будет работать для вас, потому что вы либо не установили Windows NT 6.1 на этот компьютер - но на какой-то другой компьютер и перенесли жесткий диск на этот - либо не установили его загрузочную версию EFI каким-то образом убедить Windows NT 6.1 запустить не-EFI версию своей утилиты установки на вашем EFI-компьютере. Откуда мне знать? Потому что Microsoft не позволила бы вам установить его на жесткий диск без разделов EFI на компьютере EFI, как вы это сделали, а также потому, что у вас есть и правильный системный раздел EFI (раздел FAT на вашем втором жестком диске), и его Эквивалент бедного человека, если в противном случае вам понадобится только первый.

Таким образом, Windows NT 6.1 не была установлена с версией Microsoft Boot Manager, размещенной на EFI, хранилище BCD находится в неправильном месте, и возникнет несколько других проблем - связанных с тем, что Windows NT ожидает одну комбинацию аппаратного / микропрограммного обеспечения и после того, как вы настроили соответствующие драйверы и настройки для этого, и внезапно были загружены на другую комбинацию аппаратного / микропрограммного обеспечения - припас для вас позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .