Newer Linux distributions have the idea to boot into graphics modes.

The grub menu does this.

The init.d system does this.

X does this.

I can justify X. But both grub and init.d have only caused me troubles and never given me any joys. I am now installing on an old system that does not have any fancy graphics, so I would like to tell Debian not to touch the graphics systems at all.

Right now I have gotten grub to stay in text mode:


Followed by: update-grub

And X is disabled by not installing X.

The graphics system is still touched during init.d. I have the feeling it is some VESA mode that is being changed.

Where do I disable this, so it stays in text mode?

System info:

Debian stable:
# uname -a
Linux grb 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686 GNU/Linux


Adding this to /etc/default/grub gets rid of part of it (thanks to TAFKA):

GRUB_CMDLINE_LINUX_DEFAULT="vga=normal nomodeset"

But the below seems to clear my scroll back buffer, too, and change the fonts:

[info] setting up console font and keymap

Putting 'exit 0' in '/etc/init.d/console-setup' works around this, but does not seem to be "the Debian way".

So the question is now down to: How to disable 'console-setup' the Debian way?


But init.d screws me over by changing into a screen resolution that my monitor/graphics card does not support. I have the feeling it is some VESA mode that is being changed.

I don't think that's an init process. That's the kernel. It occurs during the boot messages, right?

If you compile the kernel without framebuffer support, it should not happen. If you are using a stock kernel, it's possibly a module.

find /lib/modules -name fb.ko

Remove that if found, run depmod, and reboot.

If that module is not there but you have a /dev/fb[N] (where [N] is a number, probably 0), you need to do it some other way. Try adding:

vga=normal nomodeset 

to the kernel invocation line in grub.cfg.


Have you considered looking at /etc/inittab? It is where run levels are initialized. By default level 5 is the graphical run level, and level 3 (or 2 in Debian's case) are text mode. You would have to invoke a 'startx' to go into graphical mode.


  • 3
    This is an alternative to the OP's "don't install X" solution, but it does not help with the text console video mode change, which is his real problem. – Warren Young Apr 19 '14 at 9:54

Debian Jessie now uses systemd and the concept of runlevel should be modified into target units.

For starting Jessie in text mode without removing Gnome or LXDE it's then sufficient to modify this symlink as follow :

sudo ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target

This action is practiaclly the same of setting a text runlevel on /etc/inittab in the previous versions.

In Fedora 21 it's practically the same, but the system helps a bit more:

systemctl set-default multi-user.target

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.