Удаление дублирующейся установки grub

Вопрос или проблема

Я хотел бы удалить (нефункциональную) дубликатную установку grub. У меня получилось две разные установки grub после копирования раздела Kubuntu с другого ПК и попытки установить grub вручную. После часов попыток заставить это работать (я не мог избавиться от ошибок “нет такого устройства” + “неизвестная файловая система” при загрузке grub), я просто сдался и переустановил Kubuntu с нуля. Теперь у меня это:

$ efibootmgr
BootCurrent: 0005
Timeout: 1 секунд
BootOrder: 0000,0002,0005,0001
Boot0000* Windows Boot Manager
Boot0001* Жесткий диск
Boot0002* grub
Boot0005* ubuntu

Boot0002 grub является неработающим. Из того, что я прочитал, я могу удалить его с помощью efibootmgr -Bb 0002, но я полагаю, что это только удаляет запись загрузки, а не саму установку grub. Как я могу убедиться, что grub правильно удален перед удалением соответствующей записи?

Правка: Я нашел решение здесь, но оно требует Windows (у меня двойная загрузка). Оставляю этот вопрос открытым, так как кто-то может быть заинтересован в решении только для Linux.

Вы можете проверить, есть ли у вас неиспользуемые/старые пакеты ядра, и это эффективно также удаляет записи grub и освобождает место на жестком диске. Для этого вам нужно проверить, какие ядра установлены, используя:

sudo dpkg -l | grep linux-image     

Затем вы можете удалить неиспользуемый/старый образ ядра, если такие существуют, используя:

sudo apt-get remove linux-image-version_number     

version_number – это версия ядра, которую вы хотите удалить, обычно вы хотите иметь как минимум две версии на жестком диске на случай, если у вас возникнут проблемы с новой обновленной версией ядра.

/etc/default/grub     

Этот файл содержит основные настройки, которые пользователь может настроить. Опции включают время отображения меню, ОС по умолчанию для загрузки и т.д. Записи в этом файле могут редактироваться пользователем с правами администратора (root) и включаются в grub.cfg при его обновлении. Опции по умолчанию, включенные в файл при установке, составляют лишь небольшое количество переменных, которые GRUB 2 может распознавать.

Хотя наиболее распространенные параметры присутствуют в файле по умолчанию, доступны дополнительные переменные окружения для включения в этот файл. Это включает такие элементы, как фоны и темы. Предопределенные переменные содержатся в /usr/sbin/grub-mkconfig и могут быть перечислены с помощью следующей команды:

grep "export GRUB_DEFAULT" -A50 /usr/sbin/grub-mkconfig | grep GRUB_ 

После внесения изменений в файл вы должны выполнить эту команду, чтобы сделать изменения постоянными:

sudo update-grub 

Примечательной особенностью загрузчиков UEFI является то, что они фактически представляют собой просто файлы в определенном месте, а не какую-то загадочную магию, которую нужно применять к дискам с помощью специальных команд.

Сначала используйте efibootmgr -v, чтобы просмотреть путь к загрузочному файлу. Все загрузчики UEFI нормально установленных ОС находятся в разделе EFI System Partition, в подкаталоге директории EFI. Каждый загрузчик/менеджер получает свой собственный подкаталог, что облегчает удаление нежелательных загрузчиков.

В качестве примера я предположу, что путь загрузчика нежелательной записи Boot0002 будет чем-то вроде .../File(\EFI\grub\grubx64.efi). Да, это обычно в формате пути, похожем на Windows, и он относительно корневого каталога EFI System Partition.

В Linux большинство дистрибутивов монтируют раздел EFI System Partition в /boot/efi, но некоторые могут монтировать его просто в /boot (Arch?) или оставлять размонтированным (Gentoo?). Предполагая, что ваш монтирует его в /boot/efi, вам нужно добавить это к пути в формате Windows, который вы выяснили на предыдущем этапе, и теперь вы будете знать, что в представлении Linux структуры директорий, нежелательный загрузчик Boot0002 находится в каталоге:

/boot/efi/EFI/grub/

Как только вы знаете этот путь, избавиться от него будет всего лишь два простых шага:

sudo efibootmgr -B -b 0002      # сделать так, чтобы UEFI забыла об этом загрузчике
sudo rm -r /boot/efi/EFI/grub   # и фактически удалить его

И вот так нежелательный загрузчик UEFI будет полностью удален!

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

Ответ или решение

Удаление дубликата установки GRUB: Полное руководство

Если вы столкнулись с дублирующейся установкой загрузчика GRUB после копирования раздела Kubuntu с другого компьютера и пытаетесь удалить неисправную запись, это может быть неприятной и запутанной задачей, особенно если вы хотите сделать это с помощью Linux. Вот подробное руководство, которое подскажет вам, какие шаги предпринять для безопасного удаления ненужной установки GRUB.

Шаг 1: Определение проблемы

Исходя из вашего описания, вы уже используете efibootmgr, чтобы просмотреть текущие загрузочные записи. У вас есть следующие загрузочные записи:

Boot0000* Windows Boot Manager
Boot0001* Hard Drive
Boot0002* grub
Boot0005* ubuntu

Запись Boot0002 grub — это ненужная. Перед тем как ее удалить, важно точно определить, какой путь используется для загрузчика GRUB. Используйте команду:

sudo efibootmgr -v

Это покажет вам, где находится файл загрузчика GRUB, который вы собираетесь удалить.

Шаг 2: Поиск файла загрузчика

GRUB находится в EFI-системном разделе, который обычно монтируется в /boot/efi. По умолчанию для GRUB путь к файлу будет выглядеть как /boot/efi/EFI/grub/grubx64.efi. Проверьте его расположение, чтобы быть уверенным, что вы удаляете именно тот файл, который вам не нужен.

Шаг 3: Удаление ненужной записи загрузчика

Теперь мы можем удалить запись загрузчика, выполнив следующую команду:

sudo efibootmgr -B -b 0002

Эта команда уберет запись Boot0002, и ваш компьютер больше не будет пытаться загрузить неисправный GRUB.

Шаг 4: Физическое удаление файла загрузчика

Следующим шагом является физическое удаление файлов GRUB. Убедитесь, что вы нашли правильный путь к загрузчику, и выполните следующую команду для удаления:

sudo rm -rf /boot/efi/EFI/grub

Это удалит все файлы, связанные с этой установкой GRUB из EFI-системного раздела.

Шаг 5: Очистка старых ядер

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

sudo dpkg -l | grep linux-image

Если вы обнаружите устаревшие версии, можете их удалить:

sudo apt-get remove linux-image-версия_ядра

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

Заключение

Теперь вы успешно удалили неработающую установку GRUB и избавились от ненужной записи в UEFI. Данная процедура не только улучшит работу вашего компьютера, но и обеспечит более стабильную загрузку системы. Если вы следовали всем шагам, ваш GRUB больше не должен вызывать ошибок, связанных с "нет такого устройства" или "неизвестная файловая система". Позаботьтесь о регулярно актуализированном состоянии своих загрузчиков систем, чтобы избежать подобных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...