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. Большая часть этой процедуры находит необходимую информацию для этого.
- Найдите, где находится загрузчик Windows, смонтировав раздел efi и выполнив поиск bootmgfw.efi.
В моей системе (64-битная Win 8.1 / Ubuntu с двойной загрузкой) раздел EFI уже смонтирован. Если это не в вашей системе, пожалуйста, прокомментируйте это, и я пересмотрю ответ.
Найдите раздел EFI, введя команду lsblk
в окне терминала. В моей системе это установлено в /boot/efi
на раздел sda2
cd
в этот каталог и осмотреть файл bootmgfw.efi
, В моей системе это было расположено в /boot/efi/EFI/Microsoft/Boot
Кажется, немного излишним, но что угодно.
- Найти UUID диска
в терминальном типе sudo blkid
и введите свой пароль, когда будет предложено. Это перечислит все ваши диски и их UUID. В моем случае я хотел один для sda2
,
- добавьте это в /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
}
- и, наконец, запустить
update-grub
Тип sudo update-grub
в терминал.
Сейчас есть 2 возможности:
Для записи: у вас есть 2 диска (1 с Windows, который разделен на MBR/NTFS, и 1 с Ubuntu, который разделен на GPT/ext3-4). Вы работаете под UEFI Bios и у вас проблемы с UEFI-Grub при запуске MBR-Windows.
Возможности:
- Вы пытаетесь загрузить загрузчик 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?
У вас уже есть загрузочный файл 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 ...
- И последнее, но не менее важное: вы все еще можете стереть второй жесткий диск. Разбейте его на GPT/NFTS, а затем установите новые окна. Потеря данных идет сюда