Не удается загрузиться в ubuntu, установленный на внешний жесткий диск [dубликат]

У меня очень странная проблема с установкой Ubuntu. Я установил Ubuntu на внешний жесткий диск (Seagate 2 Terabytes usb3), и все кажется нормальным. Но когда я отсоединяю внешний жесткий диск и снова подключаю его, а затем запускаю компьютер, я не могу загрузиться с этого внешнего жесткого диска. Вы знаете, как я могу решить эту проблему? Спасибо!

Примечание. Я знаю, что могу исправить загрузку, запустив утилиту bootrepair, но это не то, что я хочу делать каждый раз, когда я отключу внешний жесткий диск. Примечание2: Изменение жесткого диска - это не то, что я хочу сделать. Раньше у меня был CentOS, и он отлично работал.

3
задан 29 April 2015 в 12:35

8 ответов

Если компьютер загружается в режиме EFI, как следует из вашего тега «UEFI» и его симптомов, сначала вам следует знать причину проблемы: внешние носители обычно загружаются с использованием имени загрузочного файла по умолчанию / резервного копирования, которое EFI/BOOT/bootx64.efi в системном разделе EFI (ESP) на системах x86-64 / AMD64. Большинство установок ОС - это внутренние диски, которые загружаются с помощью настраиваемых записей, хранящихся в NVRAM. Внешние носители также могут загружаться с такими записями; но некоторые EFI удаляют записи, которые они не могут видеть при загрузке, поэтому индивидуальные записи для внешних носителей могут исчезнуть, если внешний носитель отключен, а система загружает другую ОС.

Мне приходят три решения: [ ! d2] Самое простое решение - переместить / переименовать ваш загрузчик. Ubuntu устанавливает свой загрузчик как EFI/ubuntu/shimx64.efi и EFI/ubuntu/grubx64.efi в ESP, который обычно устанавливается на /boot/efi в Ubuntu. Переименуйте EFI/ubuntu в ESP на EFI/BOOT на ESP. Затем вы должны переименовать shimx64.efi в bootx64.efi. (Если ваша система не использует безопасную загрузку, вы можете дополнительно переименовать grubx64.efi в bootx64.efi вместо переименования shimx64.efi.) Это решение имеет то преимущество, что ваш внешний диск должен быть загрузочным на большинстве компьютеров на базе EFI того же архитектуры как оригинальный компьютер. Установите мой менеджер загрузки rEFInd на ESP внутреннего диска и установите его как загрузочную программу по умолчанию. Вы можете сделать это в Ubuntu, отключив внешний ESP с /boot/efi, установив внутренний ESP на /boot/efi и установив пакет Debian (но не версию PPA). Не редактируйте /etc/fstab. После настройки таким образом, rEFInd должен запускаться при каждой загрузке, даже если ваш внешний диск отключен; но поскольку rEFInd строит свой загрузочный список при каждой загрузке, игнорируя записи NVRAM, записи Ubuntu появятся только при подключении внешнего диска. Это решение имеет преимущество адаптивности для каждой загрузки. Вы даже можете установить значения по умолчанию rEFInd, чтобы Ubuntu был загружаемым по умолчанию при подключении внешнего диска, но Windows занимает первое место при удалении диска. Одно предостережение: если вы используете Secure Boot, вам придется перепрыгнуть через дополнительные обручи, чтобы заставить его работать. Копирование дерева каталогов EFI/ubuntu из внешнего ESP во внутреннее, перед установкой rEFInd, а затем удаление EFI/ubuntu из внутреннего ESP должно выполнить задание. Вы можете переустановить GRUB на ESP на внутреннем жестком диске. Для этого вам нужно отключить /boot/efi от Ubuntu, подключить ESP внутреннего диска к /boot/efi и переустановить GRUB. Возможно, вы захотите также обновить свой /etc/fstab. Однако этот подход может быть сложным; некоторые конфигурации GRUB полагаются на файл конфигурации GRUB в /boot/grub, и если ваш делает это, /boot также должен быть на внутреннем диске, иначе GRUB перестанет работать, когда вы отключите этот диск, а это значит, что вы не будете иметь возможность загружать все, кроме как с помощью встроенного менеджера загрузки компьютера. Я не следил за деталями, где Ubuntu хранит свой конфигурационный файл GRUB, поэтому я не уверен, насколько вероятно, что вы столкнулись с этой проблемой.

Лично я бы пошел с одним из первых двух решений, так как я не совсем уверен, где Ubuntu хранит его grub.cfg файл в эти дни. Этот третий вариант может быть жизнеспособным, если вы знаете, что файл хранится на том же ESP, что и GRUB, или если вы хотите создать раздел /boot на своем внутреннем диске.

2
ответ дан 18 July 2018 в 05:42

Если компьютер загружается в режиме EFI, как следует из вашего тега «UEFI» и его симптомов, сначала вам следует знать причину проблемы: внешние носители обычно загружаются с использованием имени загрузочного файла по умолчанию / резервного копирования, которое EFI/BOOT/bootx64.efi в системном разделе EFI (ESP) на системах x86-64 / AMD64. Большинство установок ОС - это внутренние диски, которые загружаются с помощью настраиваемых записей, хранящихся в NVRAM. Внешние носители также могут загружаться с такими записями; но некоторые EFI удаляют записи, которые они не могут видеть при загрузке, поэтому индивидуальные записи для внешних носителей могут исчезнуть, если внешний носитель отключен, а система загружает другую ОС.

Мне приходят три решения: [ ! d2] Самое простое решение - переместить / переименовать ваш загрузчик. Ubuntu устанавливает свой загрузчик как EFI/ubuntu/shimx64.efi и EFI/ubuntu/grubx64.efi в ESP, который обычно устанавливается на /boot/efi в Ubuntu. Переименуйте EFI/ubuntu в ESP на EFI/BOOT на ESP. Затем вы должны переименовать shimx64.efi в bootx64.efi. (Если ваша система не использует безопасную загрузку, вы можете дополнительно переименовать grubx64.efi в bootx64.efi вместо переименования shimx64.efi.) Это решение имеет то преимущество, что ваш внешний диск должен быть загрузочным на большинстве компьютеров на базе EFI того же архитектуры как оригинальный компьютер. Установите мой менеджер загрузки rEFInd на ESP внутреннего диска и установите его как загрузочную программу по умолчанию. Вы можете сделать это в Ubuntu, отключив внешний ESP с /boot/efi, установив внутренний ESP на /boot/efi и установив пакет Debian (но не версию PPA). Не редактируйте /etc/fstab. После настройки таким образом, rEFInd должен запускаться при каждой загрузке, даже если ваш внешний диск отключен; но поскольку rEFInd строит свой загрузочный список при каждой загрузке, игнорируя записи NVRAM, записи Ubuntu появятся только при подключении внешнего диска. Это решение имеет преимущество адаптивности для каждой загрузки. Вы даже можете установить значения по умолчанию rEFInd, чтобы Ubuntu был загружаемым по умолчанию при подключении внешнего диска, но Windows занимает первое место при удалении диска. Одно предостережение: если вы используете Secure Boot, вам придется перепрыгнуть через дополнительные обручи, чтобы заставить его работать. Копирование дерева каталогов EFI/ubuntu из внешнего ESP во внутреннее, перед установкой rEFInd, а затем удаление EFI/ubuntu из внутреннего ESP должно выполнить задание. Вы можете переустановить GRUB на ESP на внутреннем жестком диске. Для этого вам нужно отключить /boot/efi от Ubuntu, подключить ESP внутреннего диска к /boot/efi и переустановить GRUB. Возможно, вы захотите также обновить свой /etc/fstab. Однако этот подход может быть сложным; некоторые конфигурации GRUB полагаются на файл конфигурации GRUB в /boot/grub, и если ваш делает это, /boot также должен быть на внутреннем диске, иначе GRUB перестанет работать, когда вы отключите этот диск, а это значит, что вы не будете иметь возможность загружать все, кроме как с помощью встроенного менеджера загрузки компьютера. Я не следил за деталями, где Ubuntu хранит свой конфигурационный файл GRUB, поэтому я не уверен, насколько вероятно, что вы столкнулись с этой проблемой.

Лично я бы пошел с одним из первых двух решений, так как я не совсем уверен, где Ubuntu хранит его grub.cfg файл в эти дни. Этот третий вариант может быть жизнеспособным, если вы знаете, что файл хранится на том же ESP, что и GRUB, или если вы хотите создать раздел /boot на своем внутреннем диске.

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

У меня есть один и тот же внешний жесткий диск (seagate 1 ТБ), и я установил в нем elemantry os luna. В вашем случае вы должны перейти в меню выбора загрузочного устройства, когда ваш компьютер загрузится и выберете загрузку внешнего жесткого диска.

0
ответ дан 18 July 2018 в 05:42

Перед включением устройства убедитесь, что устройство правильно подключено к компьютеру. Если вы не видите устройство в меню выбора загрузочного устройства, попробуйте выбрать его вручную в меню BIOS. Вы должны иметь возможность заказать приоритет загрузочного устройства и разместить его поверх всех устройств. Если вы не видите его здесь, убедитесь, что устройство действительно работает, подключая его к другому компьютеру.

0
ответ дан 18 July 2018 в 05:42

Моя история (может быть полезной для кого-то с той же проблемой): я установил Ubuntu на внешний жесткий диск USB 3.0 на iMac в конце 2013 года. Я создал следующую схему разделов на этом внешнем диске:

EFI (200MB FAT), BOOT (200MB EXT2) and / (20GB EXT4)

Я решил добавить загрузчик к внешнему диску (а не к iMac-накопителю). После успешной установки я был потрясен, когда не смог загрузить свою ОС X. Странно, потому что я не устанавливал загрузчик на Главный привод. Если я удалил внешний диск, я получаю черный экран с подсказкой командной строки grub!

В панике я исследовал онлайн, и я решил попробовать rEFInd. После установки из источника .deb (рекомендуется установить из файла .deb, чтобы устранить проблему с версиями Ubuntu 16.x), я мог бы загрузить свою ОС X.

Восстановить исходное меню загрузки (и ditch Linux), вы можете использовать служебную программу для запуска на вашей ОС X, или вы можете смонтировать раздел EFI и командой «sudo rm ...», удалить папки «refind» и «Ubuntu» на этом разделе.

Перезагрузитесь, и все будет работать как раньше.

0
ответ дан 18 July 2018 в 05:42

У меня есть один и тот же внешний жесткий диск (seagate 1 ТБ), и я установил в нем elemantry os luna. В вашем случае вы должны перейти в меню выбора загрузочного устройства, когда ваш компьютер загрузится и выберете загрузку внешнего жесткого диска.

0
ответ дан 24 July 2018 в 18:24
  • 1
    На самом деле я больше не вижу свой hdd в качестве загрузочного устройства после его отсоединения, снова подключая его снова. – Dark Marouane 29 April 2015 в 11:40

Перед включением устройства убедитесь, что устройство правильно подключено к компьютеру. Если вы не видите устройство в меню выбора загрузочного устройства, попробуйте выбрать его вручную в меню BIOS. Вы должны иметь возможность заказать приоритет загрузочного устройства и разместить его поверх всех устройств. Если вы не видите его здесь, убедитесь, что устройство действительно работает, подключая его к другому компьютеру.

0
ответ дан 24 July 2018 в 18:24
  • 1
    Я попробую это, как только у меня будет доступ к другому компьютеру, так как я не могу видеть свой hdd в настройках bios. Но тогда я не буду знать, что делать, чтобы решить мою проблему. – Dark Marouane 29 April 2015 в 15:22

Моя история (может быть полезной для кого-то с той же проблемой): я установил Ubuntu на внешний жесткий диск USB 3.0 на iMac в конце 2013 года. Я создал следующую схему разделов на этом внешнем диске:

EFI (200MB FAT), BOOT (200MB EXT2) and / (20GB EXT4)

Я решил добавить загрузчик к внешнему диску (а не к iMac-накопителю). После успешной установки я был потрясен, когда не смог загрузить свою ОС X. Странно, потому что я не устанавливал загрузчик на Главный привод. Если я удалил внешний диск, я получаю черный экран с подсказкой командной строки grub!

В панике я исследовал онлайн, и я решил попробовать rEFInd. После установки из источника .deb (рекомендуется установить из файла .deb, чтобы устранить проблему с версиями Ubuntu 16.x), я мог бы загрузить свою ОС X.

Восстановить исходное меню загрузки (и ditch Linux), вы можете использовать служебную программу для запуска на вашей ОС X, или вы можете смонтировать раздел EFI и командой «sudo rm ...», удалить папки «refind» и «Ubuntu» на этом разделе.

Перезагрузитесь, и все будет работать как раньше.

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

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

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