Вопрос или проблема
У меня есть ноутбук, на который я установил Arch, пока что все хорошо. После того как я настроил все так, как хотел, и пользовался им несколько дней, я решил немного поэкспериментировать и установить SteamOS. Поскольку я не хотел мешать установке Arch, и у меня случайно оказался запасной диск на 2.5″, я просто вытащил старый диск и вставил новый. Поработав с SteamOS какое-то время, я вернул диски на место, но теперь Arch не загружается.
Я не менял никаких настроек BIOS. Вводя выбор устройства загрузки UEFI, я не вижу жесткий диск с установленным Arch если нет другого загрузочного устройства (в моем случае флешка с установочными медиа Arch), в этом случае можно вручную выбрать EFI файл для GRUB на жестком диске и нормально загрузить Arch.
Почему замена дисков вдруг сделала старый диск незагружаемым? Как мне его восстановить?
После того как я сделал трюк с USB флешкой, чтобы UEFI позволила мне вручную выбрать файл для загрузки, efibootmgr
показывает следующее:
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 2001,2002,2003
Boot0000* USB Hard Drive (UEFI) - SanDisk Cruzer
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk
По очевидным причинам я не могу показать вывод без трюка с USB. Менеджер UEFI (к которому можно получить доступ, нажав F9 во время загрузки, в моем случае) просто не показывает жесткий диск в качестве опции, если нет другого загрузочного устройства.
Оказалось, мне следовало использовать --removable
при установке GRUB, если я хотел бы иметь возможность менять жесткие диски. Следуя инструкциям на вики Arch и переименовав мой загрузчик, я все исправил.
Я на самом деле не знаю почему это сработало в достаточной степени, чтобы объяснить это последовательным образом. Это имеет смысл, но я бы не хотел выглядеть дураком, пытаясь это сформулировать.
Я довольно уверен, что есть способ исправить BIOS так, чтобы он знал, где находится загрузчик, но я не знаю, как это сделать.
Ответ или решение
Проблема: Невозможность загрузки после замены жестких дисков
Заменив жесткие диски в вашем ноутбуке, вы столкнулись с проблемой: система Arch Linux перестала загружаться. Это происходит из-за привлечения особенностей работы UEFI и конфигурации загрузчика GRUB. Давайте разберем, почему это происходит и как можно решить данную проблему.
Причины проблемы
-
Настройки UEFI и порядок загрузки:
- Современные ноутбуки используют UEFI вместо BIOS. UEFI имеет определенную последовательность загрузки устройств, согласно которой при отсутствии активных загрузочных элементов может не отображаться ваш жесткий диск в списке загрузки.
- При смене диска контроллер UEFI может "забыть" о старом устройстве или неправильно его зарегистрировать. Как следствие, ваш установочный диск Arch не будет видимым без наличия другого загрузочного носителя.
-
Отсутствие гибкости в конфигурации GRUB:
- Ваш GRUB был установлен без параметра
--removable
, что делает его зависимым от конкретного устройства, и следовательно, может вызвать трудности при замене жестких дисков. - Это значит, что GRUB может не корректно ссылаться на загрузочные разделы при изменении устройств, тем самым не позволяя корректно обнаружить загрузочные файлы во время старта системы.
- Ваш GRUB был установлен без параметра
Решение проблемы
Чтобы решить указанные проблемы, необходимо выполнить следующие шаги:
-
Переустановка GRUB:
- Запустите ваш ноутбук через USB-накопитель с установочным образом Arch Linux.
- Используйте терминал для монтирования вашего корневого раздела и раздела EFI:
mount /dev/sdXn /mnt # Замените sdXn на ваш корень mount /dev/sdXn1 /mnt/boot/efi # Замените sdXn1 на ваш EFI
-
Установка GRUB с параметром
--removable
:- После монтирования, выполните команду для переустановки GRUB:
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=GRUB --removable grub-mkconfig -o /mnt/boot/grub/grub.cfg
- Теперь GRUB будет настроен так, что при замене дисков он сможет корректно определять загрузочные разделы.
- После монтирования, выполните команду для переустановки GRUB:
-
Корректировка UEFI:
- После переустановки GRUB, перезагрузите систему и войдите в настройки UEFI.
- Проверьте порядок загрузки и убедитесь, что GRUB установлен в качестве первого элемента в списке загрузки.
Заключение
Теперь ваш ноутбук должен загружаться без проблем, независимо от используемого жесткого диска. Это решение помогает не только в вашей текущей ситуации, но и предотвращает возможные проблемы в будущем при использовании нескольких загрузочных устройств. Если вы планируете дальше использовать различные операционные системы, важно правильно настроить загрузчик и UEFI.
Если у вас возникнут дополнительные вопросы, связанные с установкой или настройкой, не стесняйтесь обращаться за помощью к сообществу или IT-экспертам.