Как я фиксирую начальную загрузку Ubuntu 17.04 от внешнего USB жесткий диск после того, как обновление Windows 10 Creator Update повредило его?

Примечание: Это тонко отличается от многих по-видимому подобных существующих вопросов.

Мне установили Windows 10 на внутреннем диске моего примечания ПК и Ubuntu 17.04 на внешнем USB жесткий диск. Все работало терпимо, пока Windows 10 Creators Update не пришел. Терпимо я имею в виду, если бы жесткий диск был включен, то он загрузил бы Ubuntu, в противном случае копался бы, жаловался бы на не нахождение Ubuntu. Я мог ввести "выход" и в конечном счете войти в меню EFI от того, где я мог выбрать Windows Boot Manager и загрузить Windows.

Начиная с Обновления Создателей W10 это всегда загружается непосредственно в Windows, даже когда жесткий диск USB соединен и даже при том, что меню порядка загрузки EFI все еще показывает "Ubuntu" как первый объект. Я пытался переместить жесткий диск USB в первый объект, но он продолжает загружаться непосредственно в Windows.

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

Я загрузил Живую Ubuntu, 16.04, потому что это - то, что я уже имел на карте с интерфейсом USB. Используя gparted, Я вижу, что USB Ubuntu диск жесткого диска имеет

  /dev/sdc1 ext4        139.70 GiB boot
  /dev/sdc2 extended     11.17 GiB
  /dev/sdc5 unknown      11.17 GiB
unallocated unallocated 314.89 GiB

Я смотрю на инструкции в обновлении Windows 10, уничтожает личинку, и восстановление начальной загрузки не помогает попытке изменить их для моей ситуации и иметь следующие вопросы:

  1. Корневой раздел с 17,04 в нем /dev/sdc1. Инструкции предлагают /dev/sd*1 был бы раздел EFI и /dev/sd*2 был бы корневой раздел. Как я определяю, должен ли у меня быть раздел EFI?

  2. Я думал о попытке sudo grub_install /dev/sdc на вышеупомянутые связанные инструкции, но я хотел бы некоторую уверенность, она не сделает вещи хуже, прежде чем я попробую ее. Действительно ли это - разумная вещь сделать?

  3. Мне даже нужна Личинка для этой ситуации? Так как диск имеет только одну ОС на нем, мне не нужен способ выбрать OS на включении питания.

ПРИЛОЖЕНИЕ

Исходный отказ загрузиться, когда жесткий диск USB отключается, происходит из-за grub-installошибка 1173457. Это также объясняет, как обновление Windows смогло повредить начальную загрузку Ubuntu теперь - это использовало личинку, по ошибке установленную на внутреннем диске, и объясняет, почему жесткий диск USB не является "загрузочным" самостоятельно.

Ответ в Установке, Ubuntu 17.04 на внешней карте памяти, не изменяя внутренний жесткий диск имеет предложения, как зафиксировать ошибочную установку личинки. Я не могу применить те предложения непосредственно, потому что у меня нет хорошего grub.cfg и потому что мой жесткий диск USB не использует EFI./boot/efi пуст. Кроме того, мне нужен ответ на вопрос 3, прежде чем я рассмотрю, установить ли grub к жесткому диску USB.

boot-repair Результаты

boot-repair отчетом URL является http://paste.ubuntu.com/25148428/.

/dev/sda внутренний диск с Windows,/dev/sdb карта с интерфейсом USB, от которой Живая Ubuntu была загружена и/dev/sdc жесткий диск USB с моими 17,04 установками. От моих ограниченных знаний начальной загрузки похоже, что нет действительно никакого загрузочного файла на/dev/sdc, и Windows установил EFI/Boot/bootx64.efi на/dev/sda, который я предполагаю, имеет приоритет по EFI/ubuntu/grubx64.efi.

Таким образом, я должен знать, как установить загрузочный файл на/dev/sdc, также не пишущий материал в/dev/sda.

BTW, почему не boot-repair стандартный компонент Живой Ubuntu?

Первая попытка восстановления

Я сделал новых 550 МиБ fat32 разделом в конце освобожденного пространства на/dev/sdc. gparted на моей Ubuntu Живая карта с интерфейсом USB не поддерживает флаг ESP, таким образом, я установил просто флаг начальной загрузки, и я добавил маркировать "ESP". Я затем попытался скопировать загрузочные файлы с внутреннего диска, но я получил ошибки из копии: например,

cp: error reading '/boot/efi/EFI/ubuntu/shimx64.efi’: Input/output error
cp: failed to extend ‘/mnt/EFI/ubuntu/shimx64.efi’: Input/output error`

Размышление о возможном повреждении файловой системы ESP, я загрузил Windows, отключило Windows завершения работы и Быстрый запуск. Я загрузился, Ubuntu, Живая снова и снова, попробовала копию. То же самое.

Таким образом я следовал инструкциям во втором ответе при обновлении Windows 10, уничтожает личинку, и восстановление начальной загрузки не помогает, с помощью /dev/sdc1 для раздела Linux на моем жестком диске USB и монтировании /dev/sdc3 для ESP. Ядро этих инструкций работает grub-install /dev/sdc.

Когда я пытался перезагрузить, я получил безопасную ошибку начальной загрузки. Когда я отклонил это, загруженный Windows, выполняя некоторый диск регистрируется в процессе. Я завершил работу, это вошло в EFI, выключил безопасную начальную загрузку и на этот раз загруженную Ubuntu.

Я завершаю работу, отключил жесткий диск USB и перезагрузил. Это загрузилось в Windows без любого взаимодействия от меня. Я затем повторился с жестким диском USB, включенным назад и загруженная Ubuntu.

Прогресс действительно.

Однако я вижу 2 специфических вещи:

  1. /dev/sda3 (внутренний диск ESP), смонтирован на /boot/efi. /dev/sdb3 (USB жесткий диск), смонтирован как /media/mark/ESP.
  2. /media/mark/ESP/EFI/ubuntu назвали подкаталог также ubuntu с файлами того же имени как файлы в родителе (grub.cfg, grubx64.efi, mmx64.efi shimx64.efi, плюс каталог fw и файл fwupx64. Содержание grub.cfg, grubx64.efi &simx64.efi' отличаются.

Я еще не сделал шагов 5 и 6 в ответе Rod Smith. Шаг 6 похож на него, должен зафиксировать № 1.

ОБНОВИТЕ 1, я сделал шаг 6, отредактировали/etc/fstab и теперь /dev/sdb3 смонтирован на/boot/efi. Я все еще вижу те дополнительные файлы, конечно.

ОБНОВИТЕ 2, я теперь сделал шаг 5, скопируйте файлы человечности в EFI/начальную загрузку и переименование скопированного shimx64.cfg к bootx64.cfg. Это сделало это совместимым с безопасной начальной загрузкой, которая является теперь renabled.

Будет нормально просто удалять дополнительные файлы в/dev/sdb ESP? Что fw и fwupx64? Мне нужны они?

0
задан 25 July 2017 в 23:13

2 ответа

Обновление Создателя Microsoft Windows делает это снова. То же самое произошло в Windows Anniversary Update. Это перезаписало GRUB со своим собственным загрузчиком, и это, кажется, хочет вытереть Linux (Ubuntu) разделы.

Смотря на Ваш диск/dev/sdc, это похоже:

/dev/sdc1 may have been your / (root)
/dev/sdc5 may have been your swap partition
then there's 314GB of unallocated space which may have been your /home

Эта конфигурация звучит знакомой? Если это делает, то:

  • загрузите к Ubuntu Живой DVD/USB
  • установка testdisk
  • см. http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step для получения информации о том, как восстановить потерянный раздел.
  • у Вас может также быть поврежденный раздел подкачки/dev/sdc5
0
ответ дан 2 November 2019 в 21:43

Начальная проблема

Существенно, Ваша начальная проблема была вызвана пересечением нескольких проблем:

  • Ваш компьютер загружает Windows и загружал Ubuntu в режиме EFI; однако, Ваш /dev/sdc, то, где Ubuntu установлена, является диском MBR. Начальные загрузки режима EFI лучше всего сделаны от дисков GPT. (Возможно загрузиться в режиме EFI от дисков MBR, но Ваш не настраивается с Системным разделом EFI [ESP] MBR, который был бы необходим для этого.) Это не действительно критическая проблема, так как Ваш GRUB установлен на /dev/sda, который является GPT; но это могло стать сложностью, если бы необходимо было загрузиться более непосредственно от /dev/sdc.
  • При установке в режиме EFI на компьютере с несколькими дисками установщик Ubuntu устанавливает GRUB на первом ESP, который он находит. Это обычно - ESP на /dev/sda -- /dev/sda3 в Вашем случае. Как Ваш /dev/sdc не имеет ESP, нет действительно ничего иного, что он, возможно, сделал.
  • При установке в режиме EFI Ubuntu устанавливает GRUB как EFI/ubuntu/grubx64.efi и Контейнер как EFI/ubuntu/shimx64.efi. Для начальной загрузки от съемных носителей лучше установить загрузчик (Контейнер, обычно) как EFI/BOOT/bootx64.efi. Начиная с Вашего /dev/sdc испытывает недостаток в ESP, это было бы невозможно. Я упоминаю это, потому что переименование GRUB могло быть частью решения начальной проблемы - но возможно не самого легкого решения, как отмечено позже.
  • GRUB, по крайней мере, поскольку Ubuntu настраивает его, полагается на файлы на двух разделах: ESP и безотносительно раздела содержит ядро Linux. В Вашем случае эти разделы находятся на двух физических дисках- /dev/sda и /dev/sdc. Таким образом, когда Вы отключаете внешний диск, переключатели GRUB от его меню до его grub> подсказка, так как это больше не может находить свои конфигурационные файлы на внешнем диске. Получение обеих частей GRUB на одном физическом диске является одним способом разрешить этот аспект проблемы - но существуют другие меры, также....

Конечный результат этих проблем состоит в том, что компьютер работал, как Вы описали с начальными загрузками посредством работы GRUB, только если внешний диск был включен. Существуют другие способы получить его работа, но они требуют, чтобы некоторое знание настроило. (Больше на этом вскоре....)

Что обновление Windows May Have Done, и как зафиксировать его

Я не уверен, что произошло с обновлением Windows. Обычно, я предположил бы, что это изменило порядок загрузки, делая Windows значением по умолчанию; но Ваш efibootmgr вывод (строки 1000-1024 из Вашего вывода Восстановления Начальной загрузки) показывает это ubuntu является все еще первым в порядке загрузки (после того, как Карта памяти, которую Вы, по-видимому, обычно не используете). Эта гипотеза изменения порядка загрузки также не объясняет то, что Вы не можете заставить систему загружаться даже путем выбора ubuntu опция в меню начальной загрузки.

Таким образом меня оставляют со второй гипотезой: у Вас может быть поврежденная файловая система ESP. Это может произойти, если Вы уезжаете, функции Windows Fast Startup и/или Hibernate включили. Эти операции завершения работы поворота функций в приостанавливают к дисковым операциям, который оставляет дисковые файловые системы в непоследовательном состоянии, которое может препятствовать тому, чтобы EFIs читал некоторые файлы на них. Таким образом я рекомендую отключить обе из этих опций, как описано здесь и здесь. Обратите внимание, что Вы, возможно, должны перезагрузить, по крайней мере, однажды, чтобы заставить это изменение вступать в силу.

Другая возможность состоит в том, что Вы сталкиваетесь с какой-то проблемой Защищенной загрузки. Я не ожидал бы, что обновление Windows будет влиять на это, если Microsoft не решила поместить в черный список Ubuntu, и я не услышал о том, что они делали такую вещь. Тем не менее, могло случиться так, что Защищенная загрузка неправильно функционирует. Если это верно, отключение его должно решить проблему. К сожалению, детали того, как сделать это, варьируются от одной системы до другого, таким образом, я не могу предоставить сжатые инструкции. Посмотрите эту мою страницу для нескольких примеров, все же.

Решение исходной проблемы

В лучшем случае при отключении Быстрого Запуска Будьте в спящем режиме, и/или Защищенная загрузка получит систему, загружающуюся, как это сделало прежде. Это не оптимально, все же. Существует несколько возможных способов улучшить конфигурацию. Самое простое для получения работы, вероятно, будет должно установить мой диспетчер начальной загрузки перенаходки. Учитывая Вашу текущую конфигурацию, перенаходка должна установить на ESP и запуститься в первый раз, когда Вы загружаете его. Если Вы уезжаете, Защищенная загрузка включила, тем не менее, это на самом деле обойдет в MokManager, который является утилитой для управления владельцем Машины Keys (MOKs), которые являются ключами Защищенной загрузки, используемыми Контейнером, чтобы разрешить загружаться. Необходимо будет использовать примитивный пользовательский интерфейс MokManager для определения местоположения refind.cer и/или refind_local.cer ключи, вероятно, в EFI/refind/keys каталог, и добавляет их к списку MOK. См. документацию Защищенной загрузки перенаходки для получения дальнейшей информации.

После того как Вы добираетесь, повторно находят для начальной загрузки, это должно показать Вам варианты загрузить и Windows и Ubuntu. С тех пор повторно находят, не полагается на конфигурационные файлы на внешнем диске, он не сделает эквивалента припадания a grub> запросите при отключении внешнего диска; это просто прекратит показывать Вам вариант загрузить ядра Linux непосредственно. (Это, вероятно, все еще покажет вариант для начальной загрузки Ubuntu через GRUB, но та опция просто генерирует grub> подсказка.)

Другой способ решить проблему состоит в том, чтобы создать отдельное /boot раздел на Вашем внутреннем диске. Еще один должен создать ESP на внешнем диске и переместить GRUB туда, с помощью имени файла EFI/BOOT/bootx64.efi. Обе этих опции, вероятно, будут большим количеством работы, чем установка повторно находит - хотя установка MOK может быть печальной, если Вы не знакомы с операцией.


Править:

В ответ на Ваши комментарии:

  • Много EFIs имеют очень тонкие драйверы FAT, которые возражают против повреждения файловой системы, которое не беспокоит Windows или Linux. Кроме того, обратите внимание, что повреждение файловой системы, к которому я обращаюсь, было бы невидимо для Windows, так как это вызывается тем, что с Быстрым включенным Запуском Windows оставляет файловую систему в непоследовательном состоянии, когда это в спящем режиме ("закрывается" - но это - действительно не завершение работы). Если ничто иное не коснется файловой системы, то это затем будет в ожидаемом состоянии, когда Windows запустит снова - но и EFI и любая другая ОС будут видеть его как являющийся в непоследовательном состоянии. Это - очень реальная и очень серьезная проблема в сценарии двойной загрузки. Я НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ Вам относиться к этой проблеме серьезно! Отключение Быстрого Запуска и В спящем режиме, как предложено выше, требование для безопасной двойной загрузки, когда одна ОС является Windows 8 или позже. Проблемой, которую Вы испытываете, является всего один возможный признак отказа отключить эту опцию; могут быть другие проблемы, которые Вы испытываете теперь или испытаете в будущем, и эти проблемы могут влиять на разделы кроме ESP.
  • Второй абзац Вашего вопроса обращается к меню начальной загрузки. Я предположил, что Вы имели в виду меню начальной загрузки, которое большинство EFIs предлагает, обычно путем нажатия функциональной клавиши, Esc, или Вводит (но какой ключ варьируется от одного компьютера до другого). Вы могли бы также получить это меню начальной загрузки после выхода из GRUB в некоторых ситуациях. Это меню должно позволить Вам выбрать программу начальной загрузки для выполнения. Этим можно управлять в Ubuntu с efibootmgr утилита и Ваше Восстановление Начальной загрузки производят, показывает список того, что находится в Вашей системе на строках 1000-1024.
  • Если Вы создаете ESP на /dev/sdc, его местоположение на том диске неважно. Некоторая документация предлагает поместить его в начале диска, но это должно только не допустить его в способ последующих изменений раздела. Конец дисковых работ также для этого, и может быть предпочтительным в Вашем случае, начиная с изменения размеров от конца раздела быстрее и более безопасен, чем изменение размеров путем изменения запуска раздела.
  • На диске MBR, последних версиях parted и GParted может установить ESP, вводят код (0xEF) путем установки флага "ESP". Более старые версии parted и GParted не может установить, это вводит код на дисках MBR; необходимо было бы использовать fdisk установить код типа на 0xEF. Если Вы преобразовываете в GPT с gdisk, можно установить его код типа на EF00 в том инструменте или установить флаг "начальной загрузки/ESP" в parted или GParted. (Более старые версии испытывают недостаток во флаге "ESP", таким образом, Вы использовали бы "начальную загрузку" с ними.) Отмечают, что "начальная загрузка" отмечает в parted и GParted имеет совершенно различные значения для MBR по сравнению с дисками GPT.
  • Я рекомендую делать ESP 550 мебибайт (или больше, но это является достаточно обычно большим). Причины сложны и имеют отношение к облупленному EFI драйверы файловой системы FAT на некоторых компьютерах.
  • Если Вы настаиваете на том, чтобы ставить ESP /dev/sdc, можно хотеть рассмотреть преобразование его от MBR до GPT. Это, вероятно, не необходимо, но существует шанс, что это. (Это зависит от Вашей реализации EFI.) Видят эту мою страницу для деталей того, как сделать это.
  • Если Вы создаете ESP на /dev/sdc и переместите GRUB туда, необходимо скопировать Контейнер в имя файла нейтрализации (EFI/BOOT/bootx64.efi) на ESP. Это:
    1. Смонтируйтесь /dev/sdc ESP где-нибудь. Скажем, это /mnt.
    2. Подготовьте дерево каталогов: sudo mkdir -p /mnt/EFI/ubuntu.
    3. Скопируйте GRUB с ESP: sudo cp -r /boot/efi/EFI/ubuntu/* /mnt/EFI/ubuntu/.
    4. Скопируйте новое ubuntu каталог: sudo cp -r /mnt/EFI/ubuntu /mnt/EFI/BOOT.
    5. Переименуйте контейнер: sudo mv /mnt/EFI/BOOT/shimx64.efi /mnt/EFI/BOOT/bootx64.efi.
    6. Править /etc/fstab смонтировать ESP от /dev/sdc вместо того на /dev/sda кому: /boot/efi. Это упростит последующие обновления программного обеспечения и обслуживание.
    7. Когда Вы перезагрузите, необходимо будет выбрать опцию загрузиться от /dev/sdc во встроенном меню диспетчера начальной загрузки Вашего компьютера. Это, вероятно, будет утомительно на долгосрочной основе.

Со всем, что разметило, я думаю, что должно быть ясно, почему я рекомендовал установить, повторно находят - нет никакой потребности, с тем планом действий, к повторному разделению /dev/sdc или иметь дело с ручным копированием файла. Эти действия утомительны в лучшем случае, и они могут легко пойти не так, как надо. Кроме того, если Вы полагаетесь на GRUB на имени файла нейтрализации (EFI/BOOT/bootx64.efi) на внешнем диске необходимо будет также использовать встроенный диспетчер начальной загрузки компьютера для начальной загрузки Ubuntu. Это могло быть утомительно. Вы смогли явно регистрироваться EFI/ubuntu/shimx64.efi загрузчик на внешнем диске с efibootmgr, но много EFIs удалят ту запись при отключении диска таким образом, это не может работать как ожидалось. OTOH при отъезде Защищенной загрузки активной, использование, повторно находят, действительно требует регистрации MOK, который является неприятностью; но это менее опасно и, по моему скромному мнению, немного легче, чем все манипулирование файла. У Вас также будет простое, последовательное меню начальной загрузки каждым разом, когда Вы загружаетесь, не имея необходимость смешивать с нажатием функциональной клавиши в только правильный момент, когда Вы загружаетесь.

1
ответ дан 2 November 2019 в 21:43

Другие вопросы по тегам:

Похожие вопросы: