Разработчики дистрибутивов Linux изо всех сил стараются сделать свои творения максимально дружелюбными к пользователю. Несмотря на это, случается, что-то идет не так, как задумывалось, и система начинает вести себя некорректно. Чем бы ни были вызваны сбои в работе дистрибутива, в подавляющем большинстве случаев их решение давным-давно найдено и описано. Наиболее распространенные проблемы Linux и методы их решения мы попытались собрать в этой статье.
 

Linux не запускается

Таков один из самых популярных призывов о помощи в среде новичков. На самом деле за этой лаконичной формулировкой проблемы может стоять целый ворох не связанных друг с другом причин поломки.

 

Пропал Grub

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

Впрочем, сценариев «потерять» Grub множество, равно как и способов его восстановить. Самый логичный — вновь загрузиться с флешки, с которой до этого был установлен Linux, и, открыв терминал, ввести

$ sudo fdisk -l

Среди множества записей о подключенных дисках следует найти группу разделов Linux, выбрать корневой раздел (здесь и далее sda1) и смонтировать его:

$ sudo mount /dev/sda1 /mnt

Затем восстановить Grub на диске:

$ sudo grub-install --root-directory=/mnt /dev/sdа

В довершение можно обновить меню Grub:

$ sudo update-grub --output=/mnt/boot/grub/grub.cfg
 

Ошибки загрузки ядра

Ядро Linux — один из самых стремительно развивающихся компонентов системы. Однако не всегда обновление ядра идет на пользу системе. Для кого-то неприемлемо удаление драйвера hd для жестких дисков с интерфейсом MFM/RLL, а кому-то досталось криво собранное ядро от поставщика дистрибутива. Нередко причиной поломки становится и сам пользователь, небрежно скомпилировавший собственное ядро.

В конечном итоге, если результатом обновления ядра стал отказ системы на этапе загрузки и выбрать альтернативное ядро через Grub не получится, потому что его нет, остается вернуть предыдущий рабочий вариант ядра на место через терминал.

Лучший способ это сделать — загрузиться со все того же Live CD и использовать старый добрый chroot. Последний, если говорить сильно упрощенно, позволяет «войти» в свой дистрибутив из Live CD и выполнить все необходимые для восстановления команды.

Для начала потребуется подключить корневой раздел (для примера пусть это будет опять же sda1):

# mount /dev/sda1 /mnt

Затем подключить к нему все нужные псевдоФС:

# cd /mnt
# mount -t proc proc proc/
# mount -t sysfs sys sys/
# mount -o bind /dev dev/

И наконец, войти в chroot и настроить сеть:

# chroot . /bin/bash
# echo nameserver 8.8.8.8 > /etc/resolv.conf

Теперь с помощью пакетного менеджера можно установить нужную версию ядра.

 

Проблемы с видео

Иногда система загружается, но из-за ошибок в видеодрайвере или из-за несовместимости его версии (нередко проприетарной) и версии ядра запустить графическую подсистему оказывается невозможно. Решение напрашивается само собой: либо откатить версию драйвера, либо сменить его на свободный, если такой существует.

В этом случае не нужны ни Live CD, ни chroot. Достаточно залогиниться в режиме командной строки, которая, как правило, доступна в этом случае по умолчанию, и сменить драйвер.

Однако порою противоречия драйвера и ядра достигают такой степени, что загрузка системы завершается ошибкой без возможности что-либо исправить по ходу запуска. В таком случае можно воспользоваться набором инструментов самого Grub и загрузить систему в консольном режиме.

Чтобы это сделать, нужно:

  • выбрать в меню Grub стандартный пункт загрузки;
  • нажать e для входа в редактор сценария загрузки выбранной записи;
  • найти в этом сценарии строку с аргументами запуска ядра, начинающуюся с linux или kernel;
  • добавить в конце этой строки 3, тем самым указав системе на необходимость загрузки в многопользовательском режиме с поддержкой сети и без графического окружения;
  • нажать сочетание Ctrl + X, чтобы начать загрузку с измененными настройками;
  • с помощью пакетного менеджера заменить проблемный видеодрайвер на исправный и перезагрузить систему.

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

Продолжение статьи доступно только подписчикам

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

Подпишись на журнал «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 комментарий

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Tips’n’Tricks из арсенала андроидовода. Самые интересные, полезные и нестандартные трюки с Android

Многие годы мы рассказывали про самые разные способы оптимизировать, модифицировать и твик…