пʼятницю, 19 вересня 2014 р.

А-а-а, всё сломалось!

Самое интересно начинается тогда, когда что-то пошло не так. Можете представить все чувства секретаря (секретутки :) ), которая умеет только документы печатать, а тут ОС не грузится или бумагу в принтер зажевало, а сдавать документы надо было вчера.
Естественно, всякого бывает, но основной источник проблем находится между монитором и спинкой стула.
С линуксами мне встречались лишь 2 основные проблемы:
1) грузится лишь консольный режим, то есть нету рабочего стола, ярлычков и всей другой атрибутики, есть лишь ваш любимый терминал во весь экран;
2) ОС не грузится вообще, даже в режиме восстановления.

1. Основная причина - сломался X-сервер (графическая оболочка, грубо говоря) после неакуратных действий пользователя (либо акуратных, но результат оказался непредсказуем). Например, вы решили поставить проприетарные драйвера на видеокарту вместо свободных, перезагрузились - и всё )
Тут хорошо иметь под рукой ещё один комп, когда можно быстро нагуглить как восстановить свободные драйвера именно на вашей системе. Если такового не имеется, вам придётся освоить консольные браузеры.
Вот так выглядит гугл в консольном браузере lynx (слабонервным и сильнонервным просьба отойти): 



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

2. Если ОС не грузится вообще - это проблема похуже, тут без ещё 1 компа не обойтись (ну или у вас ещё Винда установленная есть на том же компе, придётся грузится в неё).
Ну или у вас уже есть загрузочная флешка или диск (Live USB or LiveCD/DVD).
В данном случае, надо загрузиться в ту "живую" ОС и решить проблемы. Благо, если вы знаете, что имено вы сделали в последний раз и что надо исправить. В противном случае - возможен даже летальный исход с последующей переустановкой.
Реальный случай:
Я хотел добавить в автозагрузку старт своего веб-сервера на bottle. Для этого прописал в /etc/rc.d/rc.local строчку:

cd /home/data/work/web/budget && python budget.py

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

$ sudo fdisk -l
...
/dev/sda        <разные параметры раздела вроде такого:>
/dev/sda1      <617693184   755113983    68710400   83  Linux>
...
/dev/mapper/fedora-root
...
/dev/mapper/fedora-home
...

Если не сразу знаете, что какой раздел монтировать, можно пробовать все поочереди. Мне нужен был "fedora-root":

$ mkdir /mnt/froot
$ sudo mount -o rw /dev/mapper/fedora-root /mnt/froot

После чего успешно редактируем наш файл (мне нравится редактор vim):

$ sudo vim /mnt/froot/etc/rc.d/rc.local

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