Попытка установить Ubuntu 15.10 на USB-накопитель по-прежнему записывает EFI на основной жесткий диск

Попытка установить Ubuntu 15.10 на USB-накопитель по-прежнему записывает EFI на основной жесткий диск

У меня есть ПК с Windows 10, но я пытаюсь научить своих детей программированию на языке C и пытаюсь установить Linux на съемный USB-накопитель.

Настройка ПК: у меня i3 с материнской платой gigabyte z97x gaming 3. У меня Windows 10 на SSD, и в BIOS я настроил загрузку только UEFI (безопасная загрузка отключена).

Я загрузил установочный USB-накопитель в режиме UEFI, выбрав его в BIOS (четко указано UEFI), и создал его с помощью dd на дистрибутиве Ubuntu на моем ноутбуке Linux с установочным ISO-образом Ubuntu в режиме UEFI (меню загрузки F12). Загрузка прошла нормально. Чтобы установить его на другой USB-накопитель, я запустил функцию меню установки Ubuntu на установочном диске. Затем настроил собственные разделы на установочном USB-накопителе. Я создал раздел efi на 512 МБ (основной), часть ext4 на 27 ГБ (основной) и часть swap на 4 ГБ (тоже основная).

Я выбрал установку загрузчика в /dev/sdc. Он отлично устанавливается и перезагружается.

Ладно...теперь все становится немного странным. И я не могу понять, что я делаю не так.

Когда я смотрю на параметры загрузки в загрузчике F12, там есть 4 варианта. Менеджер загрузки Windows, Ubuntu, Ubuntu (да, 2 из них) и загрузка Samsung 32 ГБ UEFI (USB-накопитель — это Samsung). Если я выбираю Windows, загружается Windows. Если я выбираю Samsung 32 ГБ UEFI, все равно загружается Windows?! Но если я выбираю Ubuntu... загружается Ubuntu на USB-накопителе объемом 32 ГБ.

Еще более раздражающе, если я вытаскиваю USB-накопитель, то опция загрузки Samsung UEFI исчезает, но опции Ubuntu остаются. Когда вы нажимаете на них без USB-накопителя, он переходит в меню Grub и не загружается. В BIOS эти две опции Ubuntu указаны под SSD-накопителем, что означает, что даже если я специально сказал ему не устанавливать туда, он все равно установил Grub на него?

Windows, к счастью, все еще загружается, если выбран менеджер загрузки Windows, но это очень раздражает. Почему он испортил его? Я пошел в Windows Repair и использовал bootrec и сделал и /FixMbr и /FixBoot, но параметры ubuntu остались. Grub, похоже, застрял где-то, но я не знаю где! USB-накопитель также не загружается на моем ноутбуке (хотя установщик прекрасно загружается в режиме UEFI).

Я не уверен, что я сделал не так. Я убедился, что я был в режиме UEFI, а не в режиме BIOS при установке, и я никогда не выбирал ничего, что могло бы затрагивать /dev/sda в загрузчике, чтобы это не испортило мой HD.

Fedora 23 установится без проблем и загрузится в режиме UEFI при установке на USB-накопитель.

Буду очень признателен за помощь! Спасибо!

решение1

При установке в EFI опция "устройство для установки загрузчика" (или как она там называется; я не проверял эту деталь) игнорируется. Я не проверял, работает ли она на самом деле, но есть другой способ указать, куда идет загрузчик: это какой раздел помечен как "загрузочный раздел EFI" или "системный раздел EFI" (термин меняется в зависимости от версии Ubuntu) в списке разделов "Что-то еще".В теории,если вы отметите ESP на USB-накопителе и снимите отметку ESP на жестком диске, установщик должен поместить GRUB 2 на USB-накопитель. Я не проверял, что это действительно работает, но этодолженработа.

Тем не менее, вы также сталкиваетесь с другой проблемой: запись менеджера загрузки EFI, которую вы описываете, для загрузки с USB-накопителя, ненетзапустите EFI/ubuntu/shimx64.efiфайл, в котором Ubuntu хранит свой первый загрузчик. Вместо этого эта опция запускает «резервный» файл загрузчика EFI, EFI/BOOT/bootx64.efi. Это имя файла используется как «общее» имя файла загрузчика для сменных носителей. Идея заключается в том, что установщик ОС или другой внешний носитель вряд ли будет иметь работающую запись NVRAM, поэтому для загрузки установщиков ОС, аварийных дисков и т. д. требуется стандартизированное расположение загрузчика. Таким образом, если вы хотите создать USB-накопитель, который можно загрузить на любом компьютере x86-64 на базе EFI, вы должны скопировать EFI/ubuntuи EFI/BOOTпереименовать EFI/BOOT/shimx64.efiв EFI/BOOT/bootx64.efi. IIRC, вам также придется оставить EFI/ubuntuна месте, поскольку в одном или нескольких двоичных файлах есть жестко заданные пути, поэтому необходимы оба каталога.

Еще один момент: если вы собираетесь использовать USB-накопитель только на одном компьютере, вы можете обойтись без копирования GRUB в EFI/BOOT; однако некоторые EFI очищают свои записи NVRAM, если загружаются и замечают, что запись недоступна. Таким образом, если вы извлечете USB-накопитель и загрузитесь без него, вы можете потерять запись ubuntu. По этой причине копирование GRUB в резервную копию имени файла желательно.

Причина, по которой вы видите grub>запрос при попытке запустить ubuntuопцию с отключенным USB-накопителем, заключается в том, что конфигурация GRUB в Ubuntu опирается на двоичный файл GRUB на ESP (на вашем внутреннем диске) и файлы конфигурации в /bootразделе Ubuntu (на USB-накопителе). Таким образом, когда USB-накопитель отключен, GRUB запускается, но не может прочитать свой файл конфигурации, поэтому он терпит неудачу.

решение2

Вы столкнулись с известной ошибкой 1173457 в grub, когда он всегда устанавливается в основной EFI, а не туда, куда вы указываете. Однако вас также сбивает с толку новый механизм загрузки UEFI — загрузчики Ubuntu (shim, grub) помещаются в файловую систему EFI в их собственный каталог /EFI/ubuntu, не перезаписывая ничего в Windows. Простое решение — просто скопировать файловую систему EFI основного диска на USB и выбрать его в качестве первого загрузочного устройства. Другая проблема в том, что grub Ubuntu по-прежнему не может загрузить Windows с включенной безопасной загрузкой, вам нужно будет использовать меню загрузки EFI (некая функциональная клавиша при включении питания для выбора устройства/ОС) или отключить безопасную загрузку.


Добавьте себя в «список» ошибок на 1173457 (вопрос «касается ли эта ошибка меня»). Поскольку второй человек так и не добавил себя, эта ошибка, зарегистрированная в 2013 году, так и не была «подтверждена», возможно, именно поэтому она так и не была исправлена.

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

Связанный контент