wiki:загрузка_в_консоль

Это старая версия документа.


Изложенное ниже справедливо для дистрибутива Ubuntu 10.04 и более поздних

Эта статья призвана оказать помощь тем пользователям дистрибутива Ubuntu, которые понимают зачем необходима возможность загрузки системы в консольном режиме (без запуска графики). Некоторое обоснование этого можно найти в исходном варианте статьи.

В Ubuntu уровни запуска (runlevel) 2,3,4,5 абсолютно идентичны по набору системных служб, следовательно бесполезны. Реализовать возможность консольной загрузки можно так. Необходимо запуск графической оболочки оставить только на runlevel 3,4,5. По умолчанию, система загружается на runlevel 2, который не предусматривает запуск графического интерфейса. Выполнить же далее загрузку графики можно двумя (как минимум) путями. Первый - командой:

startx

Второй - переведя систему на третий уровень командой:

sudo telinit 3

От версии к версии в Ubuntu все большее количество системных служб запускаются через upstart задания. В 10.04 и следующих релизах запуск графической оболочки выполняется upstart заданием /etc/init/gdm.conf (kdm.conf, lxdm.conf). Берем текстовый редактор, с правами root открываем файл /etc/init/gdm.conf (kdm.conf, lxdm.conf). Вместо:

start on (filesystem 
          and started dbus 
          and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 
               or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 
               or stopped udevtrigger)) 
stop on runlevel [016]

Пишем:

start on (filesystem 
          and start on runlevel [345]
          and started dbus 
          and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 
               or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 
               or stopped udevtrigger)) 
stop on runlevel [0216]

сохраняемся, выходим. На этом все. Если сейчас перегрузить систему, то получим чистый консольный режим.

Последний штрих. В меню GRUB добавляем пункт, который абсолютно идентичен нашему основному (умолчательному) варианту, а в конец строки kernel (или сразу после параметра root ) среди опций загрузки ядра через пробел пишем цифру 3. При выборе этого пункта меню GRUB система загрузится на 3-й уровень, что повлечет автоматический старт графической оболочки. Вот пример фрагмента меню GRUB:

title  	10.04 LXDE sda8  Graphic mode 
root   (hd0,7) 
kernel /boot/vmlinuz-2.6.32-21-generic root=/dev/sda8  3 
initrd /boot/initrd.img-2.6.32-21-generic 
 
title 	10.04 LXDE sda8  Text mode 
root   (hd0,7) 
kernel /boot/vmlinuz-2.6.32-21-generic root=/dev/sda8 
initrd /boot/initrd.img-2.6.32-21-generic

Вот теперь действительно все.

Подводные камни. Беда здесь может быть в том, что и текстовые консоли нынче графические, и для своей корректной работы требуют правильных модулей ядра. Если после первой успешной загрузки системы, по Ctrl+Alt+F1 вы, вместо консольного приглашения ввода имени пользователя, видите черный экран, то не спешите проделывать все вышеописанное. Для начала надо добиться нормальной работы текстовых консолей. В /etc/modprobe.d/blacklist-framebuffer.conf надо указать те модули которые грузятся, но некорректно работают. Например модули fbcon и vgafb (тут правда все довольно индивидуально). После внесения правок в этот файл надо пересобрать файл initrd-:
sudo update-initramfs -u 

Перегрузиться и посмотреть появились ли текстовые консоли. Если нет, значит продолжаем поиски до достижения положительного результата.