GRUB не распознает Windows 7 на другом жестком диске ноутбука

Ссылка в "дубликате" слишком специфична для проблемы этого пользователя, чтобы быть мне полезной. Когда я запускаю этот ответ, я получаю:

grub-probe: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-probe: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-probe: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-probe: error: disk `hostdisk//dev/sda1' not found.

В качестве предисловия у меня есть этот ноутбук, albiet, которому уже несколько лет, и который очень плохо играет с чем-либо, кроме Windows 8: https://www.asus.com/Notebooks/ASUS_ROG_G750JX/overview/

В прошлом я пробовал двойную загрузку с одного и того же диска, но по какой-то причине у меня не получилось на этой машине. Поэтому на этот раз я сдался и решил разделить их.

Я использую Ubuntu 14.04 LTS на жестком диске емкостью 1 ТБ (/dev/sda) и Windows 7 Ult (x64)(/dev/sdb) на твердотельном накопителе емкостью 250 ГБ. Оба появляются в BIOS как параметры загрузки, при этом диск Ubuntu устанавливается по умолчанию.

Единственное, что меня беспокоит, так это то, что в настоящее время единственный путь в Windows - это позволить ноутбуку загрузиться в GRUB, затем выбрать "Системные настройки", чтобы он перезагружался непосредственно в BIOS, а затем выбрать мой Windows SSD на странице переопределения загрузки.

Мне миллионы раз говорили, что GRUB просто найдет мою ОС Windows после "sudo update-grub", но этого никогда не было.

Все, что я хочу, это иметь возможность загружаться в Win7 напрямую из GRUB.

И да, я следовал всем обычным процедурам двойной загрузки, несмотря на то, что был на отдельном диске (то есть сначала Windows, затем Ubuntu, удостоверился, что диск Windows был подключен в то время, и т. Д.).

Я был бы очень признателен за любые полезные ответы.


вывод lsblk:

NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                            8:0    0 931.5G  0 disk 
├─sda1                         8:1    0   512M  0 part /boot/efi
├─sda2                         8:2    0   244M  0 part /boot
└─sda3                         8:3    0 930.8G  0 part 
  ├─ubuntu--vg-root (dm-0)   252:0    0 914.9G  0 lvm  /
  └─ubuntu--vg-swap_1 (dm-1) 252:1    0  15.9G  0 lvm  [SWAP]
sdb                            8:16   0 238.5G  0 disk 
├─sdb1                         8:17   0   100M  0 part 
└─sdb2                         8:18   0 238.4G  0 part 
sr0                           11:0    1  1024M  0 rom  

Поэтому не уверен, важно ли это или нет, но в графическом интерфейсе для восстановления загрузки, где он позволяет мне изменить раскрывающуюся панель "ОС для загрузки по умолчанию", в нем перечислены Windows следующим образом:

"Windows (через mapper/ubuntu- меню vg-root)"

2 ответа

Я могу предоставить более пошаговый способ сделать исправление в связанном ответе. Большая картина, мы собираемся вручную добавить запись Windows в Grub. Большая часть этой процедуры находит необходимую информацию для этого.

  1. Найдите, где находится загрузчик Windows, смонтировав раздел efi и выполнив поиск bootmgfw.efi.

В моей системе (64-битная Win 8.1 / Ubuntu с двойной загрузкой) раздел EFI уже смонтирован. Если это не в вашей системе, пожалуйста, прокомментируйте это, и я пересмотрю ответ.

Найдите раздел EFI, введя команду lsblk в окне терминала. В моей системе это установлено в /boot/efi на раздел sda2

cd в этот каталог и осмотреть файл bootmgfw.efi, В моей системе это было расположено в /boot/efi/EFI/Microsoft/Boot Кажется, немного излишним, но что угодно.

  1. Найти UUID диска

в терминальном типе sudo blkid и введите свой пароль, когда будет предложено. Это перечислит все ваши диски и их UUID. В моем случае я хотел один для sda2,

  1. добавьте это в /etc/grub.d/40_custom

в терминальном типе gksudo gedit /etc/grub.d/40_custom и введите свой пароль

Добавьте эту запись в файл. Там, где написано UUID, замените текст UUID значением UUID, полученным на шаге 2. После (${root}) замещать /efi/Microsoft/Boot/bootmgfw.efi с путем, который вы нашли в шаге 1.

menuentry "Windows x86_64 UEFI-GPT" {
    search --fs-uuid --no-floppy --set=root UUID
   chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}
  1. и, наконец, запустить update-grub

Тип sudo update-grub в терминал.

Сейчас есть 2 возможности:

Для записи: у вас есть 2 диска (1 с Windows, который разделен на MBR/NTFS, и 1 с Ubuntu, который разделен на GPT/ext3-4). Вы работаете под UEFI Bios и у вас проблемы с UEFI-Grub при запуске MBR-Windows.

Возможности:

  1. Вы пытаетесь загрузить загрузчик Windows 7 в режиме bios из UEFI-Grub.
    • Это не будет работать. Поскольку @oldfred указал, вы не можете смешивать режимы загрузки.
    • Если у вас есть файл (${root})/efi/Microsoft/Boot/EFIMicrosoftBootbootmgfw.efi), который НЕ является вашей проблемой, поскольку MBR или GPT здесь не важны, но Windows не создаст загрузочный файл EFI, если вы установите его в MBR Режим.
    • перед следующим шагом сделайте резервную копию вашего раздела загрузчика (sdb1) (например, с помощью clonezilla)
    • Если у вас нет этого файла, то Windows может создать загрузчик EFI. Описано в этом посте: Как загрузить Windows 8 с устаревшего раздела MBR в режиме UEFI через GRUB?

  1. У вас уже есть загрузочный файл efi (например, EFIMicrosoftBootbootmgfw.efi)

    • Если у вас уже есть загрузочный файл Windows efi, например (EFIMicrosoftBootbootmgfw.efi), как указано в вашем журнале восстановления загрузки в строке 1301, попробуйте другие параметры в конфигурации в /etc/grub.d/40_custom. Для вас это будет:

      menuentry "Windows 7 " --class windows --class os {
      insmod part_msdos
      insmod ntfs
      insmod search_fs_uuid
      insmod chain
      
      set root='hd1,msdos1'
      if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  06D67F5BD67F4A47 
      else
        search --no-floppy --fs-uuid --set=root 06D67F5BD67F4A47 
      fi
      
      chainloader (${root})/efi/Microsoft/Boot/EFIMicrosoftBootbootmgfw.efi
      
      }
      
    • Эти значения читаются из вашего журнала восстановления или угадываются. Если ваш загрузочный файл EFI находится в другом месте, измените строку chainloader ...


  1. И последнее, но не менее важное: вы все еще можете стереть второй жесткий диск. Разбейте его на GPT/NFTS, а затем установите новые окна. Потеря данных идет сюда
Другие вопросы по тегам