sudo update-grub не работает

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

Когда я запускаю sudo update-grub, я получаю следующую ошибку:

/usr/sbin/grub-mkconfig: 2: /etc/default/grub: /boot/grub/grub.cfg.: не найдено

Я проверил и могу подтвердить, что файл /boot/grub/grub.cfg существует и не пуст.

Я довольно нов в Linux и буду признателен за вашу помощь.

Пожалуйста, смотрите ниже выводы.

sed -n '2 p' /usr/sbin/grub-mkconfig
set -e

cat /etc/default/grub

GRUB_DEFAULT=0  
GRUB_HIDDEN_TIMEOUT=0  
GRUB_HIDDEN_TIMEOUT_QUIET=true  
GRUB_TIMEOUT=10  
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`  
GRUB_CMDLINE_LINUX_DEFAULT="video=hyperv_fb:1920x1080"  
GRUB_CMDLINE_LINUX=""  

Похоже, у вас есть правильные файлы на вашем системе.

“update grub” – это конкретный для Ubuntu скрипт, который вызывает grub-mkconfig. Я не могу вам с этим помочь…
Но вы можете попробовать без скрипта. grub-mkconfig начнётся с /etc/default/grub, чтобы сделать вашу систему загрузочной. Во время загрузки grub смотрит в файл grub.cfg, чтобы найти другие операционные системы.

Сначала создайте резервную копию вашего загрузочного файла:

sudo cp /boot/grub/grub.cfg  /boot/grub/grub.cfg.backup

Затем выполните:

sudo grub-mkconfig -o /boot/grub/grub.cfg

И посмотрите, как это пройдет…

Я не работаю на машине с Ubuntu, но мой grub-mkconfig находится в папке /bin, а не sbin, как предполагает ваше сообщение об ошибке. Вы можете узнать, выполнив этот код

which grub-mkconfig

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

Когда вы запускаете команду sudo update-grub и получаете сообщение об ошибке, подобное:

/usr/sbin/grub-mkconfig: 2: /etc/default/grub: /boot/grub/grub.cfg.: not found

это указывает на то, что происходит проблема с файлом конфигурации GRUB. Давайте разберем ситуацию подробнее и найдем решение.

Анализ проблемы

  1. Ошибка: Сообщение об ошибке указывает на то, что скрипт grub-mkconfig не может найти файл или сталкивается с неверно настроенной конфигурацией.

  2. Содержимое файла /etc/default/grub:

    • Ваш файл выглядит корректно на первый взгляд, но убедитесь, что строки не содержат лишних символов или пробелов, которые могут вызвать проблемы.
  3. Файл /boot/grub/grub.cfg:

    • Вы подтверждаете, что файл существует и не пустой, что хорошо, но важно убедиться, что его структура корректна.

Решение проблемы

  1. Создание резервной копии:
    Перед внесением каких-либо изменений, всегда рекомендуется создать резервную копию файла конфигурации GRUB:

    sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
  2. Запуск grub-mkconfig вручную:
    Попробуйте сгенерировать новый файл конфигурации GRUB непосредственно через команду grub-mkconfig. Это можно сделать следующим образом:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Эта команда напрямую вызывает grub-mkconfig, минуя скрипт update-grub, что может помочь избежать проблемы.

  3. Проверка исполняемого файла:
    Убедитесь, что grub-mkconfig правильно установлен на вашей системе и доступен по ожидаемому пути. Используйте команду:

    which grub-mkconfig

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

Дополнительные шаги

  • Если ошибка все еще возникает, откройте файл /etc/default/grub в текстовом редакторе и внимательно проверьте настройки на наличие синтаксических ошибок.

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

    sudo apt update
    sudo apt install --reinstall grub2
  • Если вы используете UEFI, проверьте, что ваш UEFI-системный разделе настроен правильно, а файлы GRUB находятся в соответствующих директориях.

Заключение

С помощью этих шагов вы должны быть в состоянии устранить ошибку, возникающую при запуске sudo update-grub. Всегда помните о важности создания резервных копий перед внесением изменений в систему. Если после выполнения указанных шагов проблема сохраняется, возможно, стоит обратиться к сообществу поддержки Ubuntu или на специализированные форумы для более детального анализа вашей конфигурации.

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

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