Установка пользовательского ubuntu + grub на дополнительный загрузочный диск

У меня была одна и та же проблема с Windows-ПК, пока я не узнал, что мой маршрутизатор каким-то образом перезагружает его конфигурацию dhcp и предлагает только 20 dhc-leases вместо 70 (поэтому для этого компьютера было недостаточно аренды, все остальные компьютеры работали нормально). Таким образом, вы можете сначала проверить конфигурацию вашего маршрутизатора ...

0
задан 14 November 2017 в 14:49

3 ответа

Я подозреваю, что проблема связана с именованием загрузчика. В EFI компьютер может загружаться любым количеством способов:

С жесткого диска - при нормальной установке ОС загрузчик находится на системном разделе EFI на жестком диске (ESP), который является FAT32 с определенным кодом типа (C12A7328-F81F-11D2-BA4B-00A0C93EC93B; EF00 в gdisk, «флаг загрузки» и «флаг esp», установленный в parted, GParted или связанные с ним инструменты). Загрузочный загрузчик можно назвать чем угодно, но обычно помещается в подкаталог EFI, названный в честь ОС или загрузчика. Для Ubuntu это EFI/ubuntu/shimx64.efi, хотя это фактически программа прокладки, которая вызывает GRUB в EFI/ubuntu/grubx64.efi, и GRUB может быть настроен на запуск напрямую, если безопасная загрузка отключена. Компьютер знает, какую программу запускать, поскольку эта информация хранится в NVRAM. Со съемного диска - на съемном диске, включая установщик ОС или все, что вы хотите переместить с одного компьютера на другой (как в вашем случае), правила аналогичны установке на жестком диске; однако, поскольку NVRAM не может быть использован для хранения информации загрузчика, загрузчик хранится с использованием стандартного имени файла, который является EFI/BOOT/bootx64.efi для компьютеров x86-64 / AMD64 / X64. Это часто называют резервным именем файла. Вы должны поместить Shim в это имя файла и сохранить GRUB с именем grubx64.efi, но в каталоге EFI/BOOT. Другими способами - Существуют другие способы загрузки, такие как загрузка из сети или в BIOS / CSM / устаревший режим. Это не относится к вашему вопросу.

Установщик Ubuntu предназначен для установки на жесткий диск. Если вы хотите установить на съемный диск, вы должны либо переместить / переименовать файлы загрузчика после установки, либо установить GRUB (или другой загрузчик) вручную. Вы можете сделать это, переименовав EFI/ubuntu в EFI/BOOT, а затем переименовав shimx64.efi в пределах этого каталога на bootx64.efi или скопировав файлы для достижения аналогичного эффекта. Кроме того, вы можете установить другой загрузчик полностью, хотя это, скорее всего, будет более утомительным предложением, и это может вызвать сложности, особенно если вы хотите загрузиться на компьютеры с включенной защищенной загрузкой.

1
ответ дан 22 May 2018 в 17:49
  • 1
    Род - большое спасибо! Я добавил в OP то, что выглядит мое дерево /boot/efi/, и оказывается, что мне не хватает shimx64.efi - мне может понадобиться установить пакет с подстрочной подставкой . Я думаю, мне также может понадобиться переименовать файлы, чтобы использовать резервный загрузчик, как описано для съемного диска. Хотя привод не предназначен для «съемного», ничто в UEFI NVRAM не будет установлено при первом включении целевого устройства. Будет отчитываться, как только я попробую это. – thom_nic 6 October 2017 в 19:12
  • 2
    После установки shim-signed на цель и переименования EFI/ubuntu в EFI/BOOT и переименования shimx64 в bootx64 я могу теперь загрузиться в подсказку grub! Теперь, чтобы выяснить проблемы с конфигурацией grub, я думаю ... – thom_nic 6 October 2017 в 20:08
  • 3
    Я вижу хотя бы одну проблему ... grub var $prefix все еще использует EFI/ubuntu - мне, вероятно, нужно grub-install --bootloader-id=BOOT – thom_nic 6 October 2017 в 20:24
  • 4
    re: мой последний комментарий, я понял, что grub-install --removable создает правильные файлы, не переименовывая файлы или директории. Фактически во двоичном файле grubx64.efi был встроен set prefix=$(root)/EFI/ubuntu (видимый, когда я назвал set из grub cmdline), когда использовал --bootloader-id=BOOT. Таким образом, кажется --removable действительно правильным вариантом использования в этом случае. Я больше не получаю консоль grub - я думаю, что grub / grub.cfg выполняется, но теперь я больше не получаю grub cmdline - я просто получаю пустой экран! Я думаю, что я дошел до какой-то проблемы с root или kernel init? – thom_nic 6 October 2017 в 22:24
  • 5
    На самом деле похоже, что я могу получить меню grub, я могу загрузить linux в режиме восстановления (по какой-то причине это очень медленно), но выбор нормальной загрузки ничего мне не дает. Поэтому должны быть некоторые параметры загрузки linux, которые я не получил правильно. Но мой основной вопрос о том, как «схватить», ответил! Спасибо! – thom_nic 6 October 2017 в 23:53

Я подозреваю, что проблема связана с именованием загрузчика. В EFI компьютер может загружаться любым количеством способов:

С жесткого диска - при нормальной установке ОС загрузчик находится на системном разделе EFI на жестком диске (ESP), который является FAT32 с определенным кодом типа (C12A7328-F81F-11D2-BA4B-00A0C93EC93B; EF00 в gdisk, «флаг загрузки» и «флаг esp», установленный в parted, GParted или связанные с ним инструменты). Загрузочный загрузчик можно назвать чем угодно, но обычно помещается в подкаталог EFI, названный в честь ОС или загрузчика. Для Ubuntu это EFI/ubuntu/shimx64.efi, хотя это фактически программа прокладки, которая вызывает GRUB в EFI/ubuntu/grubx64.efi, и GRUB может быть настроен на запуск напрямую, если безопасная загрузка отключена. Компьютер знает, какую программу запускать, поскольку эта информация хранится в NVRAM. Со съемного диска - на съемном диске, включая установщик ОС или все, что вы хотите переместить с одного компьютера на другой (как в вашем случае), правила аналогичны установке на жестком диске; однако, поскольку NVRAM не может быть использован для хранения информации загрузчика, загрузчик хранится с использованием стандартного имени файла, который является EFI/BOOT/bootx64.efi для компьютеров x86-64 / AMD64 / X64. Это часто называют резервным именем файла. Вы должны поместить Shim в это имя файла и сохранить GRUB с именем grubx64.efi, но в каталоге EFI/BOOT. Другими способами - Существуют другие способы загрузки, такие как загрузка из сети или в BIOS / CSM / устаревший режим. Это не относится к вашему вопросу.

Установщик Ubuntu предназначен для установки на жесткий диск. Если вы хотите установить на съемный диск, вы должны либо переместить / переименовать файлы загрузчика после установки, либо установить GRUB (или другой загрузчик) вручную. Вы можете сделать это, переименовав EFI/ubuntu в EFI/BOOT, а затем переименовав shimx64.efi в пределах этого каталога на bootx64.efi или скопировав файлы для достижения аналогичного эффекта. Кроме того, вы можете установить другой загрузчик полностью, хотя это, скорее всего, будет более утомительным предложением, и это может вызвать сложности, особенно если вы хотите загрузиться на компьютеры с включенной защищенной загрузкой.

1
ответ дан 18 July 2018 в 05:43

Я подозреваю, что проблема связана с именованием загрузчика. В EFI компьютер может загружаться любым количеством способов:

С жесткого диска - при нормальной установке ОС загрузчик находится на системном разделе EFI на жестком диске (ESP), который является FAT32 с определенным кодом типа (C12A7328-F81F-11D2-BA4B-00A0C93EC93B; EF00 в gdisk, «флаг загрузки» и «флаг esp», установленный в parted, GParted или связанные с ним инструменты). Загрузочный загрузчик можно назвать чем угодно, но обычно помещается в подкаталог EFI, названный в честь ОС или загрузчика. Для Ubuntu это EFI/ubuntu/shimx64.efi, хотя это фактически программа прокладки, которая вызывает GRUB в EFI/ubuntu/grubx64.efi, и GRUB может быть настроен на запуск напрямую, если безопасная загрузка отключена. Компьютер знает, какую программу запускать, поскольку эта информация хранится в NVRAM. Со съемного диска - на съемном диске, включая установщик ОС или все, что вы хотите переместить с одного компьютера на другой (как в вашем случае), правила аналогичны установке на жестком диске; однако, поскольку NVRAM не может быть использован для хранения информации загрузчика, загрузчик хранится с использованием стандартного имени файла, который является EFI/BOOT/bootx64.efi для компьютеров x86-64 / AMD64 / X64. Это часто называют резервным именем файла. Вы должны поместить Shim в это имя файла и сохранить GRUB с именем grubx64.efi, но в каталоге EFI/BOOT. Другими способами - Существуют другие способы загрузки, такие как загрузка из сети или в BIOS / CSM / устаревший режим. Это не относится к вашему вопросу.

Установщик Ubuntu предназначен для установки на жесткий диск. Если вы хотите установить на съемный диск, вы должны либо переместить / переименовать файлы загрузчика после установки, либо установить GRUB (или другой загрузчик) вручную. Вы можете сделать это, переименовав EFI/ubuntu в EFI/BOOT, а затем переименовав shimx64.efi в пределах этого каталога на bootx64.efi или скопировав файлы для достижения аналогичного эффекта. Кроме того, вы можете установить другой загрузчик полностью, хотя это, скорее всего, будет более утомительным предложением, и это может вызвать сложности, особенно если вы хотите загрузиться на компьютеры с включенной защищенной загрузкой.

1
ответ дан 24 July 2018 в 18:25

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

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