Лабораторная работа №5. Восстановление загрузки операционной системы в графический режим пользователя после сбоя.
В первом варианте лабораторной работы мной была выявлена следующая причина, по которой не запускался графический интерфейс:
- при запуске, X window server сталкивался с невозможностью работы с драйверами, указанными в
/etc/X11/xorg.conf
и отключался, после чего клиент уходил в бесконечное ожидание.
-
Запускаем систему с
var1.vdi
и попадаем в бесконечную загрузку. -
Перезагружаем виртуальную машину и до начала загрузки операционной системы нажатием любой клавиши переключаемся в меню загрузчика grub.
-
В загрузчике нажимаем клавишу
a
для перехода в режим редактирования параметров ядра, после чего через пробел от предыдущего параметра вводим цифру 3 для запуска системы без графического интерфейса и подтверждаем нажатиемEnter
.
Система запускается, следовательно, единственной причиной, мешающей загрузке в нормальном режиме, является графическая подсистема.
-
Логинимся под пользователем
root
, после чего выполняем коммандуstartx
. Команда предсказуемо закончится ошибкой, зато теперь доступен файл/var/log/Xorg.0.log
с интересующей нас информацией. -
Выполняем поиск ошибок по файлу логов командой
cat /var/log/Xorg.0.log | grep "] (EE)"
.
Из первой ошибки видно, что системе не удаётся загрузить драйвер "baddriver"
. Информацию о том, какие графические драйвера установлены в системе, можно найти в каталоге /usr/lib/xorg/modules/drivers/
.
- Далее, нужно проверить модель видеоадаптера для того, чтобы понять, что должно быть вписано в поле
Driver
в секцииDevice
в/etc/X11/xorg.conf
. Проверяем это командойlspci -v | grep VGA
. В моём случае это:
- Тут возможны два варианта. В моём случае в секции
Device
(второй) нужно заменитьDriver "baddriver"
наDriver "vmware"
. В случае же, если используется VBoxVGA или VBoxSVGA адаптер, нужно вписатьDriver "vesa"
.
После этого командой startx
уже возможно загрузиться в графический режим и спокойно работать с устройством Card1
, однако ошибка, связанная со вторым устройством - Card0
, всё ещё не будет решена, и в /var/log/Xorg.0.log
всё ещё остаётся следующая связанная с этим ошибка:
Суть её в том, что ядро Linux не содержит информации о размерах буфера /dev/fb0
, и поэтому драйвер fbdev
не может его считать.
- Это очень легко исправляется: добавляем в
/boot/grub/menu.lst
опциюvga=789
(что соответствует размеру буфера 800x600x24). Так выглядит файл/boot/grub/menu.lst
после редактирования:
- Для проверки создаём пользователя:
useradd -m -p $(openssl passwd -1 "123456") user
и загружаемся в обычном режиме.
Как видно из скриншота, всё работает.
@AlexTalker, проверьте пожалуйста