Перейти к содержанию

Вопросы по программному обеспечению

В этой статье

У меня не обновляется/устанавливаются ядро и драйвера в Ubuntu

Проблема, при которой не устанавливается новое ядро или драйвера (модули ядра) может возникать из-за переполнения раздела /boot при одновременном обновлении ядра системы и невозможности сборки новых инициализационных RAM-дисков (initrd). Чтобы это проверить, запустите команду

sudo apt --fix-broken install
Если в выводе вы увидите ошибки, то проверьте заполняемость /boot раздела. Для этого посмотрите вывод команды df -h /boot

/dev/sda2       739M  287M  398M  42% /boot   

Для успешной пересборки initrd у вас цифра перед процентами заполнения раздела /boot должна быть более 200M. Если свободного места нет, то выполните следующие шаги:

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

    sudo rsync -av /boot/ /boot.old/
    
  2. Посмотрите на содержимое раздела /boot и найдите все файлы инициализационных RAM-дисков:

    ls /boot | grep 'initrd.img-'
    

    Вы должны получить похожий на этот вывод:

    initrd.img
    initrd.img-6.8.0-57-generic
    initrd.img-6.8.0-58-generic
    initrd.img-6.8.0-59-generic
    initrd.img-6.8.0-60-generic
    initrd.img-initrd.img
    initrd.img-initrd.img.old
    initrd.img.old  
    
  3. Удалите лишние инициализационные RAM-диски, ОБЯЗАТЕЛЬНО оставив два последних. В нашем случае нужно удалить initrd.img-6.8.0-57-generic и initrd.img-6.8.0-58-generic.

    Внимание

    Все последующие команды могут привести к поломке вашей операционной системы, поэтому внимательно следите за версиями удаляемых файлов. В /boot разделе должны обязательно оставаться файлы для последней и предпоследней версий ядер! Убедиться, какое ядро у вас загружено в текущий момент можно командой uname -a. Если что-то пошло не так, вы можете восстановить содержимое /boot раздела из бэкапа, сделанного на первом шаге, командой sudo rsync -av /boot.old/ /boot/.

    Сделайте это командой:

    rm -f /boot/initrd.img-6.8.0-57-generic
    
    повторив ее для каждого файла.

    Проделайте тоже самое с файлами vmlinuz и System.map (необязательный пункт):

    rm -f /boot/vmlinuz-6.8.0-57-generic 
    rm -f /boot/System.map-6.8.0-57-generic
    
  4. Очистите систему от пакетов, связанных со старыми ядрами и запустите доустановку и сборку драйверов и модулей ядра командами:

    sudo apt autoremove
    sudo apt --fix-broken install
    
  5. Перезагрузите ОС:

    reboot
    

У меня выдает ошибку Docker Compose

Если при запуске docker compose у вас выдает ошибку вида docker: 'compose' is not a docker command или docker-compose: command not found, это может означать, что у вас старая версия ОС где, Docker Compose не установлен как плагин или не добавлен в PATH. Для решения данной проблемы следуйте этим шагам:

  1. Установите Docker Compose (если не установлен):

    mkdir -p ~/.docker/cli-plugins/
    curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
    chmod +x ~/.docker/cli-plugins/docker-compose
    
    Замените latest на актуальную версию с официального репозитория при необходимости.

  2. Проверьте установку:

    docker-compose --version
    
    Если команда выполнена успешно, Docker Compose установлен.

  3. Если команда всё ещё не найдена, убедитесь, что ~/.docker/cli-plugins/ добавлен в переменную окружения PATH. Добавьте в ~/.bashrc или ~/.zshrc:

    export PATH=$PATH:~/.docker/cli-plugins/
    

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

    source ~/.bashrc  # или source ~/.zshrc
    
  4. Снова проверьте установку:

    docker-compose --version
    
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×