Improve boot performance

From ArchWiki
Revision as of 23:52, 11 November 2007 by Codemac (Talk | contribs) (Rc.sysinit: Told people to not do stupid things.)

Jump to: navigation, search

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n links end

This article contains some tips on how you can improve your boot performance.

Tweaking Boot Files


Open /etc/mkinitcpio.conf as root and delete the HOOKS you don't need.

HOOKS="base udev autodetect sata usbinput filesystems"

Read more about which HOOKS you can remove.


Open /etc/rc.conf as root, scroll to the hardware section.


If you autoload your modules, there is no point of manually selecting modules. So clear out MODULES like this.


On the other hand, you can get a speed increase by disabling udev autoloading


and manually populate your MODULES=() line with the modules you need/use.

In the network section, make sure you only load the network interface you need. Manually configuring your network is also faster then using dhcp.

Then find remove all DAEMONS you don't need.

DAEMONS=(alsa network gdm)

Then move your Xdm to front, and background all DAEMONS.

DAEMONS=(@gdm @alsa @network)



Not letting your modules load before you go off trying to set up your network etc is just not going to work as expected. I'd attribute any success to this method as pure luck, and suggest you remove the ampersand immediately even if it is working. -- Codemac 18:52, 11 November 2007 (EST)

Open /etc/rc.sysinit as root and find

/sbin/modprobe $mod

By adding a '&' to the end, all modules will be loaded in background.

/sbin/modprobe $mod &

Note that this can potentially cause your system to not boot if certain modules are needed. Have a live-cd handy in case this happens to you.


Open /etc/inittab as root and find the agetty terminal lines.

c1:2345:respawn:/sbin/agetty 38400 vc/1 linux
c2:2345:respawn:/sbin/agetty 38400 vc/2 linux
c3:2345:respawn:/sbin/agetty 38400 vc/3 linux
c4:2345:respawn:/sbin/agetty 38400 vc/4 linux
c5:2345:respawn:/sbin/agetty 38400 vc/5 linux
c6:2345:respawn:/sbin/agetty 38400 vc/6 linux

Agetty terminals are what you see when you press Ctrl+Alt+F1-6 Now, if you only need 2 or 3 then comment out the rest.

c1:2345:respawn:/sbin/agetty 38400 vc/1 linux
c2:2345:respawn:/sbin/agetty 38400 vc/2 linux
#c3:2345:respawn:/sbin/agetty 38400 vc/3 linux
#c4:2345:respawn:/sbin/agetty 38400 vc/4 linux
#c5:2345:respawn:/sbin/agetty 38400 vc/5 linux
#c6:2345:respawn:/sbin/agetty 38400 vc/6 linux

Compile a kernel

To decrease boot time, a stripped kernel is a must. Read more about compiling a kernel.

Here are some tips from XxX Owned XxX ( ). Warning: Some of these tips may cause your kernel to not compile properly. Use them at you own risk.

S=Select U=Unselect

Feel free to add some!

General Setup

S: Support for paging of anonymous memory. (swap)

Loadable Module Support

U: Module Versioning Support
U: Source checksum for all modules

Block Layer

U: Large Block Devices (Uncheck all if possible)
// IO Schedulers // 
U: Anticipatory I/O Schedulers
U: Deadline I/O Schedulers

Processor type and features

U: Symmetric processing support (Unless your processor(s) support(s) it)
U: Generic x86 support
S: HPET Timer Support
S: Voluntary Kernel Preemption (Desktop) (Under Preemption Model)
S: Local APCI support on uniprocessors
S: IOAPCI support on uniprocessors (Under Local APCI support)
S: Off (Under High Memory support if you have under 1 gig of ram)
S: Sparse Memory (Under Memory Model, some computers will not have this option)
S: MTRR support
S: Use register arguements
S: Enable seccomp to compute untrusted bytecode
S: 1000hz (Under Timer Frequency)
// Firmware Drivers // 
U: Anything that you don't need.

Bus Options

S: Message Signaled Interrupts (MSI and MSIX) (PCI_MSI)


U: Anything/Everything in Amateur Radio, IrDA, and Bluetooth if you don't need it.
// Network Options // 
S: Packet socket:mmapped IO

Device Drivers

// ATA/ATAP/MFR/RLL support // 
S: Use PCI DMA by Default
U: IDE Taskfile Acess
// Raid and LVM // 
U: Unselect if you do not need it.
// I2O support // 
U: Unselect if you do not need it. Most people do not.

Network Device support

U: EQL support
U: Universial TUN/TAP device driver support
U: FDDI Driver support
U: HIPPI driver support
U: SLIP (serial line) support
U: Traffic Support
U: Network console loggin support
// ARCnet support // 
U: Unselect if you do not require/need it.
// Ethernet Support (1000 MB) // 
U: Uselect the cards that you don't have.
// Ethernet Support (10000 MB) // 
U: Unselect what you do not need.
// Token Ring Devices // 
U: Unselect if you are not connected to a Token ring network.
// WAN interfaces support // 
U: Unselect the some cards/the whole thing if you do not need it.
// ISDN subsystem // 
U: ISDN support (If you do not require it)

Input device support

U: Touchscreen interface
U: Touchscreens (Under the TouchScreens subcatergory)

Character Devices

U: Any video cards that you do not need.
// Watchdog cards // 
U: Watch Dog Timer support

Misc Devices

U: Device driver for IBM/RSA service drivers
// Video Capture Adapters // 
U: Unselect anything that you don't need.
// Radio Adapters // 
U: Unselect anything that you don't need.
// Digital Video Broadcasting Devices // 
U: DVB for Linux

Graphics support

U: Unselect any graphics cards that you don't have.
// Logo Configuration // 
S: Bootup Logo (and anything under it)

File systems

U: Unselect any file systems that you are NOT going to use. (Minix, ROM, Quota, etc.)
// DOS/FAT/NT Filesystems // 
S: NTFS write support
// Network File Systems // 
U: NFS file system support
U: NFS server support
U: NCP file system support
U: Coda file system support
U: Andrew file system support
U: Plan 9 resource sharing support
// Partition Types // 
U: Advanced partition selection
// Native Language Support // 
U: Unselect all but your native language

Instrumentation Support

U: Profiling Support
U: Kprobes

Kernel Hacking

U: Show timing information on printks
U: Magic SysRq Key
U: Kernel Hacking
U: Debug Filesystem
U: Compile the kernel with frame unwind information