Вопрос или проблема
У меня были установлены Windows 8.1 и Kali Linux на расширенном разделе. По какой-то причине я только отформатировал раздел, на котором была установлена Windows, и переустановил ее. Теперь система загружается только в Windows и не показывает grub.
Я использую загрузочную USB и попробовал переустановить grub:
grub-install --boot-directory=/mnt/boot /dev/sda
и получаю ошибку:
grub-install :команда не найдена
Чтобы дополнить ответ пользователя @kirill-a
и немного его расширить:
Вот что я сделал недавно, чтобы восстановить загрузчик GRUB на компьютере с двойной загрузкой Windows 8 и Debian 8, после того как переустановка Windows 8 очистила предыдущую запись загрузчика GRUB в начале диска.
ПРИЕМ ГРУБ2: метод ‘chroot’ с USB/CD на linux:
Эти инструкции применимы в общем к незашифрованному диску, не использующему LVM на дистрибутивах на основе Debian, небольшие изменения необходимы в названиях каталогов и утилитах, используемых в дистрибутивах на основе RHEL/SUSE и, возможно, Arch.
Начните с загрузочной Live USB или CD с выбранным вами дистрибутивом.
- Используйте
lsblk
, чтобы определить дескриптор имени ядра (т.е./dev/xxyN
) блока устройства с отсутствующим или поврежденным загрузчиком GRUB.
Все последующие действия необходимо выполнять от имени root (используйте su
или sudo
).
-
Создайте временную точку монтирования для установленного Linux:
mkdir -p /mnt/linux
(опция
-p
создает родительский каталог/mnt
, если он еще не существует) -
Используя
/dev/xxyN
из предыдущей командыlsblk
:mount /dev/xxyN /mnt/linux
-
Следующая команда необходима только в том случае, если у вас есть отдельный раздел
/boot
;/dev/xxyN
здесь представляет дескриптор имени ядра вашего раздела/boot
.mount /dev/xxyN /mnt/linux/boot
-
Затем:
mount -t proc none /mnt/linux/proc mount -t sysfs sys /mnt/linux/sys mount -o bind /dev /mnt/linux/dev mount -t devpts pts /mnt/linux/dev/pts chroot /mnt/linux /bin/bash grep -v rootfs /proc/mounts > /etc/mtab grub-install /dev/xxy
(Здесь
dev/xxy
= имя устройства и номер, на котором необходимо установить загрузчик GRUB, например,/dev/sda
, не включая номер корневого раздела как в/dev/sda1
) -
Если вы хотите внести какие-либо другие изменения/настройки в GRUB, сейчас самое время отредактировать файл
/etc/default/grub
и сохранить.grub-mkconfig -o /boot/grub/grub.cfg
-
Перезагрузите и проверьте.
Примечание: есть несколько дополнительных шагов в этой процедуре, если ваш загрузчик GRUB2 находится на linux-системе с корнем LVM LV и/или зашифрованным корневым томом. Не стесняйтесь писать мне здесь, у меня есть эти дополнительные инструкции записаны, и я успешно применял их несколько раз к LVM LV на SSD, который содержит зашифрованный корневой том с помощью модуля ядра dm-crypt.
Вам нужно chroot
в вашу установленную систему и переустановить grub оттуда:
mount /dev/sda(номер раздела с kali) /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt bash
grub-install --boot-directory=/mnt/boot /dev/sda
update-grub
exit
reboot
Мой ответ касается команд grub2-install
и grub2-mkconfig
.
Я также получал ошибку команда не найдена
на моем компьютере с Photon OS Linux.
Файлы конфигурации находились в /boot/grub2
. Так что я думал, что пакет grub2 уже установлен, но по какой-то причине команды grub2-* не работают.
Однако оказалось, что пакет grub2 не был установлен. Выполнение следующей команды решило проблему.
yum install grub2 -y
Для команды grub-install
вам нужно будет установить пакет grub
вместо grub2
.
вместо этого с помощью следующей команды:
grub2-install --boot-directory=/mnt/boot /dev/sda
Ответ или решение
Ошибка: grub-install: command not found
При работе с установкой загрузчика GRUB на системе с установленными Windows и Kali Linux может возникнуть ошибка grub-install: command not found
. Эта проблема может возникать по нескольким причинам, и в данной статье мы рассмотрим, как ее решить.
Причины возникновения ошибки
-
Отсутствие утилиты GRUB: Возможно, пакет GRUB не установлен в вашей системе. Это часто происходит, если вы загружаетесь с live-USB и не имеете установленного GRUB в среде live-дистрибутива.
-
Попытка выполнить команду в неправильной среде: Если вы пытаетесь выполнить команду
grub-install
из live-системы без предварительного перехода в установленную систему черезchroot
, вы можете получить эту ошибку.
Решение проблемы
Вот шаги, которые помогут вам восстановить загрузчик GRUB:
-
Запустите live-систему: Загрузитесь с live USB с вашим дистрибутивом Linux (может быть Kali, Ubuntu и т.д.).
-
Узнайте нужную блокировку устройства:
Используйте командуlsblk
, чтобы определить, какой именно устройстве нуждается в восстановлении загрузчика. Найдите ваш раздел, где установлен Kali Linux (например,/dev/sda1
). -
Создание точки монтирования:
sudo mkdir -p /mnt/linux
-
Монтирование раздела:
Для примера используем/dev/sda1
как раздел с установленным Kali:sudo mount /dev/sda1 /mnt/linux
-
Монтирование необходимых файловых систем:
Если у вас есть отдельный раздел/boot
, его нужно также смонтировать:sudo mount /dev/sdaX /mnt/linux/boot # Где /dev/sdaX - это раздел для /boot
Далее выполняем:
sudo mount --bind /dev /mnt/linux/dev sudo mount --bind /proc /mnt/linux/proc sudo mount --bind /sys /mnt/linux/sys
-
Переход в
chroot
:
Это позволит вам использовать установленную систему как если бы вы в ней работали:sudo chroot /mnt/linux
-
Установка GRUB:
Теперь вы можете установить GRUB, используя правильный путь:grub-install --boot-directory=/boot /dev/sda
Обратите внимание, что вы устанавливаете GRUB на устройство (например,
/dev/sda
), а не на раздел (например,/dev/sda1
). -
Обновление конфигурации GRUB:
Для генерации конфигурационного файла GRUB выполните:update-grub
-
Выход из chroot и перезагрузка:
После завершения выполнения команд выйдите изchroot
и перезагрузите систему:exit sudo reboot
Проверка установки GRUB
После перезагрузки, ваша система должна показать меню GRUB, где вы сможете выбрать, какую операционную систему загрузить.
Заключение
Ошибки типа command not found
во время установки GRUB часто возникают из-за отсутствия самого GRUB в системе или из-за работы в неверной среде. Правильное монтирование и выполнение команд в chroot
должно помочь вам восстановить загрузчик. Если выполненные шаги не помогли, возможно, стоит проверить, установлен ли пакет GRUB, используя команды, такие как apt
, yum
или dnf
, в зависимости от используемого дистрибутива.