Я не новичок в создании системы с двойной загрузкой, но я думаю, что мне еще нужно многому научиться, потому что я боролся с текущей системой уже несколько дней.
Я начал с системы Windows 7, которая занимала два физических диска. Я взял второй и превратил его в систему Ubuntu. В настоящее время это выглядит так:
/dev/sda1 NTFS (labeled as "system reserved")
/dev/sda2 NTFS Windows 7
/dev/sda3 NTFS (Data for Windows 7 system to access)
/dev/sdb1 FAT32 Mounted on /boot/efi (flags "boot" and "esp")
/dev/sdb3 Ext4 Mounted on /
(Был файл / dev / sdb2, но я удалил его и объединил в / dev / sdb3 с gparted
.)
I Установил Ubuntu 19.04 и он работает нормально. Но я не могу загрузиться в Windows 7. Я хочу добавить Windows 7 в меню grub или хотя бы получить к нему доступ; Я даже не могу сделать это сейчас.
Итак, я попробовал следующее:
sudo update-grub
. sudo os-prober
после монтирования /dev/sda2.boot-repair
на компьютере, а также с загрузочным живым диском. grub-customizer
. Никто из них не работает.
Для boot-repair
я пробовал несколько вещей, таких как «Переустановить GRUB» и «Восстановить MBR». Если я выполняю «Рекомендованное восстановление», я получаю «Обнаружен GPT. Пожалуйста, создайте раздел BIOS-Boot (> 1 МБ, неформатированная файловая система, ...). ... В качестве альтернативы, вы можете повторить попытку после активации [Отдельно / раздел boot / efi:] option. " После много лет работы boot-repair
в других системах я впервые вижу это сообщение.
С помощью grub-customizer
были созданы следующие строки для / dev / sda2 (Chainloader):
set root='(hd0,2)'
search --no-floppy --fs-uuid --set XXX
drivemap -s (hd0) ${root}
chainloader +1
При перезагрузке я получаю сообщения об ошибках типа «нет такого устройства: XXX», «не могу найти команду drivemap "и" диск hd0,2 не найден ".
1125 Из всех случаев, когда я сталкивался с этой проблемой на других компьютерах, я думаю, что это самый старый из всех, что у меня были. (В конце концов, у него Windows 7). Точно так же BIOS тоже старый. Итак, это озадачивает меня. Я также немного обеспокоен тем, как разрушил (Windows) систему. Я попробовал опцию «Восстановить MBR» вboot-repair
и записал MBR в / dev / sda2, но все равно не смог загрузиться в Windows - вместо этого он переходит в grub
. (Когда я понял это, тогда я подумал, что мне нужно попросить других о помощи ... теперь это плохо.)
Сторона Ubuntu - это новая установка, и если мне нужно как-то ее уничтожить, чтобы исправить ошибку Я сделал для того, чтобы получить двойную загрузку, я в порядке.
Может кто-нибудь предложить предложения о том, что я должен попробовать? Как я искренне догадываюсь, я уверен, что ответ прямо передо мной, но некоторые предложения о том, что я должен попробовать, и, возможно, порядок поможет.
Режим загрузки (legacy vs EFI) имеет значение. Grub не может загружать загрузчик по цепочке в другом режиме загрузки, поэтому для обеспечения правильной мультизагрузки все ОС должны быть установлены в одном и том же режиме загрузки. Кажется, это распространенная ошибка при установке в неправильном режиме загрузки.
Из небольшой информации в вопросе я не был уверен на 100%, но похоже, что ваша Windows установлена в устаревшем режиме, в то время как Ubuntu, похоже, установлена в режиме EFI.
Вы можете решить эту проблему по-разному, один из способов - переустановить Ubuntu в устаревшем режиме. Вы должны убедиться, что установщик загружен в устаревшем режиме, вот и все.
Другой способ - переустановить только загрузчик (Grub). Просто загрузитесь в установленную Ubuntu (в EFI-режиме) и запустите
sudo apt update
sudo apt install grub-pc
. Это удалит grub-efi
(EFI-версия Grub) и установит grub-pc
(BIOS-версия Grub). Во время установки вас спросят, где разместить загрузчик. Это интересно, так как у вас есть несколько дисков, и вам не нужно перезаписывать загрузчик Windows, который должен находиться в sda
. Таким образом, вы должны поместить Grub на sdb
. В BIOS вам нужно будет проверить порядок загрузки. Дополнительная очистка не является абсолютно необходимой, но удаление строки, относящейся к /boot/efi
из /etc/fstab
, имеет смысл, больше не требуется.
Еще одна вещь, которую вы должны знать:
Если диск, на котором вы хотите разместить Grub, использует GPT, вам нужно создать небольшой (2 МБ) раздел с флагом bios-boot и оставить его неформатированным (без файловой системы) , Grub's core.img
будет размещен там.