Skip to content

Instantly share code, notes, and snippets.

@SkymeFactor
Last active December 14, 2020 13:50
Show Gist options
  • Save SkymeFactor/f1f8ebe57083dbaf1892381be91ec2d5 to your computer and use it in GitHub Desktop.
Save SkymeFactor/f1f8ebe57083dbaf1892381be91ec2d5 to your computer and use it in GitHub Desktop.

Лабораторная работа №5. Восстановление загрузки операционной системы в графический режим пользователя после сбоя.

Информация об ошибке:

В первом варианте лабораторной работы мной была выявлена следующая причина, по которой не запускался графический интерфейс:

  • при запуске, X window server сталкивался с невозможностью работы с драйверами, указанными в /etc/X11/xorg.conf и отключался, после чего клиент уходил в бесконечное ожидание.

Подробная инструкция по восстановлению (с пояснениями):

  • Запускаем систему с var1.vdi и попадаем в бесконечную загрузку.

  • Перезагружаем виртуальную машину и до начала загрузки операционной системы нажатием любой клавиши переключаемся в меню загрузчика grub.

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

1

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

2

  • Логинимся под пользователем root, после чего выполняем комманду startx. Команда предсказуемо закончится ошибкой, зато теперь доступен файл /var/log/Xorg.0.log с интересующей нас информацией.

  • Выполняем поиск ошибок по файлу логов командой cat /var/log/Xorg.0.log | grep "] (EE)".

3

Из первой ошибки видно, что системе не удаётся загрузить драйвер "baddriver". Информацию о том, какие графические драйвера установлены в системе, можно найти в каталоге /usr/lib/xorg/modules/drivers/.

4

  • Далее, нужно проверить модель видеоадаптера для того, чтобы понять, что должно быть вписано в поле Driver в секции Device в /etc/X11/xorg.conf. Проверяем это командой lspci -v | grep VGA. В моём случае это:

5

  • Тут возможны два варианта. В моём случае в секции Device (второй) нужно заменить Driver "baddriver" на Driver "vmware". В случае же, если используется VBoxVGA или VBoxSVGA адаптер, нужно вписать Driver "vesa".

6

После этого командой startx уже возможно загрузиться в графический режим и спокойно работать с устройством Card1, однако ошибка, связанная со вторым устройством - Card0, всё ещё не будет решена, и в /var/log/Xorg.0.log всё ещё остаётся следующая связанная с этим ошибка:

7

Суть её в том, что ядро Linux не содержит информации о размерах буфера /dev/fb0, и поэтому драйвер fbdev не может его считать.

  • Это очень легко исправляется: добавляем в /boot/grub/menu.lst опцию vga=789 (что соответствует размеру буфера 800x600x24). Так выглядит файл /boot/grub/menu.lst после редактирования:

8

  • Для проверки создаём пользователя: useradd -m -p $(openssl passwd -1 "123456") user и загружаемся в обычном режиме.

9

Как видно из скриншота, всё работает.

@SkymeFactor
Copy link
Author

@AlexTalker, на VirtualBox с графическим контроллером VMSVGA. В принципе, он и с vesa драйвером работает, но с vmware рекомендуется вроде как

@AlexTalker
Copy link

Ok.
А то я уж понадеялся шо диски от VBox стали внезапно подходить в VMWare.

@SkymeFactor
Copy link
Author

@AlexTalker, не, это было бы слишком хорошо. А где можно получить ещё 4 балла, чтобы автомат получить? или так нельзя?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment