Ubuntu 20.04 Проблема Grub / файловой системы на SSD с горячей заменой

Установка:

  • Несколько автономных компьютеров с одной SSD с возможностью горячей замены (один SSD, содержащий ОС и данные)
  • Ubuntu 20.04.1 установлен в режиме UEFI (одна ОС, весь диск)

Проблема: После перехода на Ubuntu 20.04 LTS стало обычным явлением, что после полного выключения ПК, извлечения SSD (содержащего ОС) и перемещения его на другой (точно такой же HW) компьютер, я сталкиваюсь со спасением grub. Этого не произошло в 16.04 LTS (без UEFI), и я мог нормально заменить SSD.

Симптомы:

  • После перемещения SSD (100% уверенность в правильном завершении работы) я сталкиваюсь с окном grub (в режиме восстановления) как на исходном, так и на новом ПК (т.е. ОС повреждена).
  • Даже настройка grub в ручном режиме (установите root = (hd0, gpt2); linux / boot / vm ...) и вызывая 'boot', я попадаю в среду командной строки с (initramfs) в начале строки, где он предлагает запуск fsck на корневом разделе из-за неправильной контрольной суммы!
  • fsck делает почти недействительными все сектора, и раздел становится непригодным для использования.

Предложения:

  • Единственное, что я могу придумать (хотя не обязательно верно), это использование LZ4 для initramfs в Ubuntu 20.04. Или это могут быть проблемы с grub в режиме UEFI. Поскольку большинство людей обычно не перемещают свои диски с ОС между разными компьютерами, это может быть редкой проблемой.

Примечания:

  • Я не делаю ничего странного с этими дисками. Поскольку все мои установки Windows (и ранее, Ubuntu 16.04 LTS) работают нормально во время этих замен.
1
задан 27 October 2020 в 12:51

1 ответ

Загрузка с внешних дисков должна выполняться с системного раздела ESP — efi на внешнем диске в качестве записи диска. Установщик Ubuntu Ubiquity создает стандартную загрузочную запись «ubuntu» на ESP внутреннего диска и для внешних дисков, а затем, если внешний диск отсутствует, вы не можете загрузить запись по умолчанию.

UEFI забывает конкретную внутреннюю загрузочную запись UEFI или сбрасывает ее, если диск удален. Посмотрите на запись Ubuntu до и после удаления диска.

sudo efibootmgr -v 

В UEFI есть резервная запись или запись жесткого диска, которая использует /EFI/Boot/bootx64.efi, что должно позволить вам загрузиться. Обычно bootx64.efi — это просто копия /EFI/ubuntu/shimx64.efi. Некоторые UEFI автоматически находят запись Windows и воссоздают ее, но не любую другую систему. Все внешние диски загружаются с того же типа записи, что и резервные на внутренних дисках (такие же, как вы используете для установки флэш-накопителя Ubuntu или Windows).

Если вы загружались в режиме BIOS, загрузится просто выбор диска в UEFI/BIOS. Вы должны иметь возможность сделать то же самое с UEFI, но выбрать диск, а не запись «ubuntu», которая теперь неверна.

При загрузке диска в режиме UEFI будет использоваться резервная загрузочная запись в /EFI/Boot/bootx64.efi. Windows делает bootx64.efi копией загрузочного файла Windows .efi, установка Ubuntu делает копию shimx64.efi. Таким образом, вы должны иметь возможность напрямую загружать диск.

Вам нужно сделать загрузку по умолчанию записью ESP внутреннего диска. И тогда придется вручную выбирать из UEFI записи для каждого внешнего диска.

Вы также можете в grub сделать запись типа файла конфигурации, чтобы ESP вашего другого диска был загрузочным. Или конкретная загрузочная запись.

Как добавить пункт меню GRUB2 для загрузки установленной Ubuntu с USB-накопителя?

1
ответ дан 19 December 2020 в 15:37

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

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