./ Index     / Howtos     / Tweaks     / Themes     / Apps     / CLI Tricks     / Hacking     / Cracking     / Customization     
Showing posts with label Tweaks. Show all posts
Showing posts with label Tweaks. Show all posts

Howto: Tweak your Internet connection and maximize your bandwidth in Ubuntu/Linux via sysctl!

Here I will unleash a few hidden settings that should improve your internet speed, and work with all current linux operating systems including Ubuntu:
first open a Terminal via Applications->Accessories->Terminal
Type:
sudo gedit /etc/sysctl.conf
Then Paste the Following at the end of the file:
# increase TCP max buffer size setable using setsockopt()
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# don't cache ssthresh from previous connection
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
# recommended to increase this for 1000 BT or higher
net.core.netdev_max_backlog = 2500
# for 10 GigE, use this, uncomment below
# net.core.netdev_max_backlog = 30000
# Turn off timestamps if you're on a gigabit or very busy network
# Having it off is one less thing the IP stack needs to work on
#net.ipv4.tcp_timestamps = 0
# disable tcp selective acknowledgements.
net.ipv4.tcp_sack = 0
#enable window scaling
net.ipv4.tcp_window_scaling = 1

Press Ctrl-S To save then alt-F4 to exit and then type:
sudo sysctl -p
to apply the settings.

Hitup a speed test site or a very healthy torrent and see how your speed is:
Test your Internet connection speed at Speedtest.net
You can disable all these settings by removing these lines you added via:
sudo gedit /etc/sysctl.conf

You can recieve more information here

Have any additional tips to add? Please post in the comments!

Expand full post here...

Comments

Ubuntu Tweak 0.3.1 released for Ubuntu Hardy Heron with new Hotkey Creation!

Ubuntu Tweak 0.3.1 just released this morning which includes a check new version feature, which isnt needed if you use the repository below and a few bug fixes. More info from the developers site here

Along time ago I did a quick review of Ubuntu Tweak here and now I see that TualatriX has significantly updated it with many user interface and bug fixes and added 1 hot must have feature which gives you the ability to create shortcut hotkeys to your favorite applications, I setup alt-ctrl-del to open gnome-system-monitor and the terminal to I can open both these with a keypress.

Well what is Ubuntu Tweak?

Ubuntu Tweak is an application designed to configure Gnome in Ubuntu and provides features that would otherwise require you to edit config files and use gconf to edit some internal settings.

It provides many useful desktop and system options that the default desktop environment doesn't provide.

At present, It is only designed for Ubuntu GNOME Desktop, and often follows the newest Ubuntu distribution.

LICENSE

Ubuntu Tweak is free software; you can redistribute it and/or modify it under th
e terms of the GNU General Public License as published by the Free Software Foun
dation.

Features of Ubuntu Tweak

  • View of Basic System Information(Distribution, Kernel, CPU, Memory, etc.)
  • GNOME Session Control
  • Auto Start Program Control
  • Show/Hide and Change Splash screen
  • Show/Hide desktop icons or Mounted Volumes
  • Show/Hide/Rename Computer, Home, Trash icon or Network icon
  • Tweak Metacity Window Manager’s Style and Behavior
  • Compiz Fusion settings, Screen Edge Settings, Window Effects Settings, Menu Effect Settins
  • GNOME Panel Settings
  • Nautilus Settings
  • Advanced Power Management Settings
  • System Security Settings
  • Ability to Create your own Shortcut Hotkeys
  • & Much more!

Howto Install Ubuntu Tweak:

Simply Click here and download the file or add the repository via System->Administration->Software Sources then click third party repositories and copy/paste these lines:
deb http://ppa.launchpad.net/tualatrix/ubuntu hardy main
deb-src http://ppa.launchpad.net/tualatrix/ubuntu hardy main

Reload the repository and simply click here to install within your browser if you have apturl installed
You can also search synaptic for ubuntu-tweak or:
sudo apt-get update && apt-get install ubuntu-tweak

Expand full post here...

Comments

HOWTO: Install btnx for better mouse control in Ubuntu

When I installed Hardy, I forgot to copy my awesome xorg.conf which held the configuration to enable all 12 buttons of my Logitech MX1000.

Lo and behold, a new method of configuring it has come about, albeit it was around prior to Gutsy.

btnx is the work of Olli Salonen. The program runs as a daemon, catching mouse events and turning them into either key presses or proper mouse events which the system can interpret. This eases the configuration one must do in order to enjoy the full potential of the high-end Logitech mice—a potential which, in my opinion, Windows cannot reach.

The installation process for btnx is pretty easy.

Read the full article here

Expand full post here...

Comments

Tweak and optimize, and increase Ubuntu Hardy Heron Boot and Application Startup times dramatically!

Here I will share some methods on tweaking and optimizing your ubuntu install that I have learned over the years tweaking linux. This is small and sweet, down to the point and can dramatically speed up your system.

First lets tweak our directory structure so our Computer can find/seek files faster:
What we'll need is a Ubuntu Gutsy+ LiveCD and boot it up, and right click unmount all the drives mounted in nautilus via places. Then Open up a Terminal: Applications->Accessories->Terminal
Lets Sudo Root:
sudo -s
Then lets check which drives we got to optimize:
df -h
Example:
/dev/sda3 154G 145G 1.6G 99% /media/sda3
/dev/sda4 99G 61G 39G 62% /media/sda4

Ok great, we got a list of our drives to optimize so lets get to work:
e2fsck -fD /dev/sda3
choose y for yes and optimize your drive, then continue to the next drive once finished
If you need to you can RTFM on e2fsck:

-D Optimize directories in filesystem. This option causes e2fsck
to try to optimize all directories, either by reindexing them if
the filesystem supports directory indexing, or by sorting and
compressing directories for smaller directories, or for filesys‐
tems using traditional linear directories.


Ok now that the drives are optimized the system should be more responsive. So were finished with the liveCD portion of this howto, so reboot, and remove your liveCD.

Ok the next tweak I dont use completely, I only use noatime in my fstab and I dont use writeback mode because I sometimes have power outages and dont want to risk dataloss. So changing to writeback is dangerous but much faster if you do not have to worrie about dataloss, crashes, lockups, forced reboot/shutdowns.
Ok now you can Use data=writeback and noatime when mounting ext3 partitions in /etc/fstab:
sudo gedit /etc/fstab
Here is an example of what I have in my fstab:
UUID=3eb414ba-5198-4c1f-9e3d-e91675329f83 / ext3 defaults,noatime,errors=remount-ro 0 0
Lets change this to:
UUID=3eb414ba-5198-4c1f-9e3d-e91675329f83 / ext3 defaults,data=writeback,noatime,errors=remount-ro 0 0
Ok now lets tune our drive for writeback mode:
sudo tune2fs -o journal_data_writeback /dev/sda1
For reference you can RTFM:
writeback
Data ordering is not preserved - data may be written into
the main file system after its metadata has been commit‐
ted to the journal. This is rumoured to be the highest-
throughput option. It guarantees internal file system
integrity, however it can allow old data to appear in
files after a crash and journal recovery.
noatime
Do not update inode access times on this file system
(e.g, for faster access on the news spool to speed up
news servers).


Ok now lets install preload to optimize bootspeed and application startup time, I have an alternate tutorial here explaining how preload works:
sudo apt-get install preload

Ok you can also tune the swap/memory usage by optimizing swappiness, I have provided a more in depth tutorial explaining what it does here So lets tweak our swappiness:
sudo gedit /etc/sysctl.conf
If you have a lot of memory and succeed in not using swap at all and want swap to be used less then add this line:
vm.swappiness=0
If your computer has little memory and needs to swap add this line instead:
vm.swappiness=100
You may want to experiment with swapiness by changing it between 0 - 100

Last but not least you may want to profile your boot, what this does is, executes the readahead daemon to readahead files that you use every boot like drivers/gdm/kde/X, this is easy, on reboot, press esc to enter grub then find the kernel line:
/boot/vmlinuz-2.6.24-16-generic root=UUID=3eb414ba-5198-4c1f-9e3d-e91675329f83 ro splash=verbose vga=794
Press e once its selected then append profile after this line like this:
/boot/vmlinuz-2.6.24-16-generic root=UUID=3eb414ba-5198-4c1f-9e3d-e91675329f83 ro splash=verbose vga=794 profile
Then Press enter then "b" to boot up, what this will do is learn what files load every boot up and read them in advance every boot up. This will temporarily disable preload so once it finishes profiling and you are at a login terminal, reboot again and your system should startup/boot faster, and preload will preload applications and important libraries that you frequently access.

I hope this helps others enjoy Ubuntu Linux more, this took me 5 minutes to create, so let me know if I need to explain this a little better.

Have any other tweaks to add to this list? I'll give you credit.

Tweak Gnome Startup added by defcon @ 10:00 AM
You may also want to remove unnecessary applications starting up that gnome executes by opening Session Preferences via: System->Preferences->Sessions
Click on StartUp Programs
I disabled Bluetooth manager because I do not use bluetooth, you may want to as well.
I have disabled check for new hardware drivers because I do that via synaptic
I have disabled network manager because I use /etc/network/interfaces only and apt-get remove network-manager network-manager-gnome if you do not need it
I have disabled Print Queue Applet because I dont print on this computer
I also disabled Visual Assistance because I do not need assistance
You may find other things you may want to disable as well to speed up gnome startup

Expand full post here...

Comments

Howto: Harden the Ubuntu Linux Kernel with sysctl

I ran across a nice sysctl.conf file that will help secure your computer and prevent many different attacks on your computer like Man In the Middle Attacks, Syn attacks, source routing scans/attacks, spoofing protection/logging, and many others, read below.

Lets Harden our kernel:
sudo gedit /etc/sysctl.conf
Now lets paste the following example below then ctrl-s save and exit
After you make the changes to the file lets apply the changes without a reboot:
sysctl -p
sysctl -w net.ipv4.route.flush=1

Example:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

#Prevent SYN attack
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2

# Disables packet forwarding
net.ipv4.ip_forward=0

# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.lo.log_martians = 1
net.ipv4.conf.eth0.log_martians = 1

# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# Disables the magic-sysrq key
kernel.sysrq = 0

# Modify system limits for Ensim WEBppliance
fs.file-max = 65000

# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15

# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800

# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0

# Turn off the tcp_sack
net.ipv4.tcp_sack = 0

# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1

# Set maximum amount of memory allocated to shm to 256MB
kernel.shmmax = 268435456

# Improve file system performance
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2

# Improve virtual memory performance
vm.buffermem = 90 10 60

# Increases the size of the socket queue (effectively, q0).
net.ipv4.tcp_max_syn_backlog = 1024

# Increase the maximum total TCP buffer-space allocatable
net.ipv4.tcp_mem = 57344 57344 65536

# Increase the maximum TCP write-buffer-space allocatable
net.ipv4.tcp_wmem = 32768 65536 524288

# Increase the maximum TCP read-buffer space allocatable
net.ipv4.tcp_rmem = 98304 196608 1572864

# Increase the maximum and default receive socket buffer size
net.core.rmem_max = 524280
net.core.rmem_default = 524280

# Increase the maximum and default send socket buffer size
net.core.wmem_max = 524280
net.core.wmem_default = 524280

# Increase the tcp-time-wait buckets pool size
net.ipv4.tcp_max_tw_buckets = 1440000

# Allowed local port range
net.ipv4.ip_local_port_range = 16384 65536

# Increase the maximum memory used to reassemble IP fragments
net.ipv4.ipfrag_high_thresh = 512000
net.ipv4.ipfrag_low_thresh = 446464

# Increase the maximum amount of option memory buffers
net.core.optmem_max = 57344

# Increase the maximum number of skb-heads to be cached
net.core.hot_list_length = 1024

## DO NOT REMOVE THE FOLLOWING LINE!
## nsobuild:20051206


The above script was found here

Is there any other sysctl settings worth mentioning for hardening?

Expand full post here...

Comments

Tweak Page Cache in Ubuntu Linux

Here I will provide you with some information to help you decide exactly how you would like to tweak your system. I have seen many sites with the swappiness tweak for linux without any documentation on what it does, so I'll try my best to explain this in a simple way.

If you want linux to use as little memory as possible for caching files, and as much memory as possible for processes, and only swap when the memory used by processes is more than the physical memory set swappiness to 0, instead of 60. Users who would like to never see application memory swapped out can set swappiness to zero. This setting uses ram efficently and pretty much ignores using swap until it absolutely needs to like if your running 10 openoffice's and a few firefox windows and some multimedia applications, it will be forced to swap, thats the only way it will. Unfortunately it flushes the applications from memory when you load a new one so you will notice a slower restart time when reloading the application

If you run allot of memory intensive applications like firefox, amarok, and openoffice all the time, you may want to set swappiness to 100 because it will swap more to disk when your current processes run out of physical memory. I noticed that everything was a bit more responsive with this running many programs at once, like when I close firefox and load up xChat then re-open firefox, it loaded a bit quicker since it was swapped. You can take advantage of this setting if you have a fast extra hard drive or a fast usb flash drive which you can use as swap. I have provided a readyboost for linux howto here

Lets get to tweak'n
sudo gedit /etc/sysctl.conf
To disable swapping application memory add the line:
vm.swappiness=0
To Swap more application data to disk when ram is exhausted
vm.swappiness=100

Basically what I would do is experiment with this setting and see what works best when you load up plenty of applications you use daily because leaving it at the default, 0, or 100 may not be the best option.

Please let us all know your specs and what setting works best for you.

Expand full post here...

Comments

Tweak Ubuntu Boot Speed and Application Startup Time with Preload

I have been running Preload for months testing it out, and I have gained a substantial speed increase for my daily applications, firefox-3, gimp, vlc, xine, pidgin, xchat and deluge torrent. Basically what Preload does is preload frequently used applications in memory before use, so before you even run your frequently used application it is already loaded. So I am enjoying the benifit of applications loading almost instantaneously. By using Preload, you can put unused RAM to good work, and improve the overall performance of your desktop system. If goal is to make application startup times shorter definately install this application!

Installation:
Preload is very easy to install, If you are in firefox try clicking here for a 1 click install! or all you do is simply press ALT-F2, check run in terminal and type this command:
sudo apt-get install preload

Once installed, Preload will start, and no further action is necessary, the default configuration should be left alone because the developer spend much time tweaking it for optimal usage, most likely you will notice a degrade in system performance editing the configuration. But if you insist, here is the paper written by the developer Behdad Esfahbod

If you would like to modify the configuration you can by editing /etc/preload.conf

Option Default Controls
Cache model (system) settings
model.cycle 20 [seconds] How often Preload will query your system to update it's model about programs and libraries to cache.
model.halflife 168 [hours] How often Preload will begin to "forget" about old data; for each halflife, the statistical relevance of the current model loses 50% of its importance.
model.minsize 2000000 [bytes] The minimum amount of system calls an application makes for it to be considered by Preload. A smaller number will mean Preload caches smaller applications, while to make Preload cache only larger applications, increase this number.
Memory settings
The forumula used to determine the maximum available memory available to Preload is:
(Total RAM x model.memtotal) + (RAM available at start x model.memfree) + (Cached memory x model.memcached)
model.memtotal -10%
model.memfree 100%
model.memcached 30%


Monitoring
If you want to check up on what resources Preload is using, you can monitor its logfile by running:
sudo tail -f /var/log/preload.log
If you want more information about the specific files that Preload is caching for you, look at this file:
sudo less /var/lib/preload/preload.state

Preload can provide a great improvement in application startup time; since most modern machines have a good deal of memory to spare, Preload puts this RAM to good use. I highly recommend installing Preload on your desktop machine, and although it may take a little while for the daemon to learn your habits before your see any real performance improvement, it's a great tool that increases the speed of your system while staying in the background, out of your way.

Expand full post here...

Comments

Howto: Hide Partition Volumes in Ubuntu/Gnome

Gnome users only…

* Run gconf-editor (by hitting Alt+F2 or from terminal).
* Browse to apps->nautilus->desktop in the left-hand folders window
* Uncheck the “volumes_visible” option

Careful, as this will also hide portable storage volumes also…

Expand full post here...

Comments

Next Generation Optimization for Ubuntu!

Well, prefetching isnt a new topic but there is possibility that it can be optimized into the next generation of computing...

I found an interesting Google SoC Project page that shows some promise, ive been searching around for prefetching and ReadyBoost solutions for Ubuntu and ran accross this...

From here:
In todays computer systems the main bottleneck is not CPU but disk access which is several orders of magnitude slower than CPU and memory. In such circumstances the way to improve application performance is to prefetch data it needs from disk before it even requests it and it is the point of prefetching techniques.
The example of prefetching solution is Windows prefetcher.


Here is a little bit from their thesis:

"In this thesis we develop preload, a daemon that prefetches binaries and shared libraries
from the hard disk to main memory on desktop computer systems, to achieve faster
application start-up times. Preload is adaptive: it monitors applications that the user
runs, and by analyzing this data, predicts what applications she might run in the near
future, and fetches those binaries and their dependencies into memory.
We build a Markov-based probabilistic model capturing the correlation between every
two applications on the system. The model is then used to infer the probability that each
application may be started in the near future. These probabilities are used to choose
files to prefetch into the main memory. Special care is taken to not degrade system
performance and only prefetch when enough resources are available.
Preload is implemented as a user-space application running on Linux 2.6 systems."

Howto test optimizations:
*Warning* This is experimental and I have not tested this yet, I am about to once im done posting this,
This may or may not be correct, let me know of any issues!

The following is an edited version of there wiki located here

Testing Boot Prefetching and Applications Prefetching

Introduction

First testing version of kernel with automatic boot prefetching and tracing is available. This version is precompiled for Debian-based systems (tested on Ubuntu Gutsy, other distributions might not work). The kernel is standard Ubuntu kernel with these prefetch patches.
Standard disclaimer applies: this is experimental version, it might damage your system use at your own risk and only on systems where you have backups.
*This Requires Ubuntu Gutsy*
Installation
In order to use kernel with prefetching:
Download kernel linux-image deb
Download linux-headers.deb
Install linux-image deb package
Install linux-headers deb package
Remove readahead package using: sudo apt-get remove --purge readahead -
please note that this will cause removing (x/k/edu)ubuntu-desktop package.
Download userspace prefetch support deb and install it using:
dpkg -i prefetch*.deb
Now reboot and select "kernel 2.6.22.6pf.3" during boot.
Uninstallation
In order to remove kernel with prefetching:
Reboot into standard (non-prefetching) kernel.
Remove prefetch userspace support files using apt-get remove --purge prefetch
Install readahead and (x/k/edu)ubuntu-desktop package.
Remove linux-image package with prefetching support (with "pf" in name).
Resources:
Launchpad Project
Summer Of Code 2007 Progress
Development Discussions
Google Code Page

Expand full post here...

Comments

Tweak Ubuntu Boot Processes & Runlevels

I personally like gui tools but I also tweak my bootable applications via the command line.
Here is what I use:

Command line tools:

rcconf - This tool configures system services in connection with system

This is my favorite cmd-line app

sysv-rc-conf - sysv-rc-conf provides a terminal GUI for managing "/etc/rc{runlevel}.d/"
symlinks. The interface comes in two different flavors, one that simply
allows turning services on or off and another that allows for more fine tuned
management of the symlinks. Unlike most runlevel config programs, you can
edit startup scripts for any runlevel, not just your current one.
runlevels. It turns on/off services using the scripts in
/etc/init.d/. Rcconf works with System-V style runlevel configuration.
It is a TUI(Text User Interface) frontend to the update-rc.d command.

GUI Tools:

bum - Boot-Up Manager is a graphical tool to allow easy configuration
of init services in user and system runlevels, as far as changing
Start/Stop services priority.
This baby kicks ass


services-admin - The standard services administration tool for ubuntu
A small known fact about this application is that you can rightclick on the service and change the run-level's

You can simply grab these tools via sudo apt-get install application-listed-above

Here is a quick explaination on Ubuntu & Linux runlevels that effect applications that boot:

Linux run levels are numbered 0 through 6. Run levels stop at six for practical and historical reasons, but it is entirely possible to have more if desired.

The following table summarizes the User Linux run levels:

* 0 System Halt
* 1 Single user
* 2 Full multi-user mode (Default)
* 3-5 Same as 2
* 6 System Reboot

Special Run Levels

Run level 0 is the system halt condition. Nearly all modern X86 computers will power off automatically when run level 0 is reached. Older X86 computers, and various different architectures will remain powered on and display a message referring to the halt condition.

Run Level 1 is known as ’single user’ mode. A more apt description would be ‘rescue’, or ‘trouble-shooting’ mode. In run level 1, no daemons (services) are started. Hopefully single user mode will allow you to fix whatever made the transition to rescue mode necessary.

(You can boot into single user mode typically by using your boot loader, lilo or grub, to add the word ’single’ to the end of the kernel command line).

Run levels 2 through 5 are full multi-user mode and are the same in a default User Linux (Debian) system. It is a common practice in other Linux distributions to use run level 3 for a text console login and run level 5 for a graphical login.

Run level 6 is used to signal system reboot. This is just like run level 0 except a reboot is issued at the end of the sequence instead of a power off.

In the interests of completeness, there is also a runlevel ‘S’ that the system uses on it’s way to another runlevel. Read the man page for the init command (”For manpage click here”) for more information, but you can safely skip this for all practical purposes.

Run Levels Location

Like everything else in a Linux system, run levels are defined by files in the file system. All the run level files are found in the /etc directory according to the following table:

/etc/rc0.d Run level 0
/etc/rc1.d Run level 1
/etc/rc2.d Run level 2
/etc/rc3.d Run level 3
/etc/rc4.d Run level 4
/etc/rc5.d Run level 5
/etc/rc6.d Run level 6

Each defined run level should have an rcX.d directory where X is the run level number. The contents of the rcX.d directory determines what happens at that run level.

Change run levels in Debian and Ubuntu Linux

Before we change run levels it might help to find out which run level is current. Use the ‘runlevel’ command to tell you two things: The last run level, and the current run level. Here is the command and the output shown together due to the sparsity of the output:

# runlevel N 2

The ‘N’ stands for none, meaning there has been no run level change since powering up.

The init system controls run levels, but then again, the init system pretty much controls everything. The init system will be looked at in detail in a future article.

The primary command used to change run levels is ‘telinit’.

#telinit 3

telinit takes one argument on the command line. As always, see the man page for full details. Normally the argument will be one of: 0,1,2,3,4,5,6, or the letter ‘S’. As you may have guessed, the numbers correspond to the run level you wish to move to. Using the ‘S’, for single-user, is the same as the number 1, but don’t do it; the ‘S’ runlevel is intended for use by the UserLinux (Debian)system.

A note of caution is warranted here. You can easily use the telinit command to reboot (run level 6), or shutdown (run level 0) the system, but it is not recommended. Certain programs need special processing for an orderly shutdown. Bypassing the expected shutdown sequence can have dire effects on your data. Older _Unix_ systems are especially sensitive to shutdown/bootup operations.

The preferred method for a serious runlevel change is ’shutdown’. There are easier mnemonics, but in a running system they all point to the ’shutdown’ command. You can use the ‘halt’, or ‘poweroff’ command to stop a system and the ‘reboot’ command to restart your system. In each case they call the ’shutdown’ command with different parameters.

If you wanted runlevel 3 to be the default, then you need to edit /etc/inittab.

# The default runlevel.

id:2:initdefault:

You’d change the ‘2′ to a ‘3′. Next time you reboot, your system will start in runlevel 3. There will be no display manager running in runlevel 3, because you turned it off. Therefore, runlevel 3 will become text only, and it will be the default. If that’s what you want to do.

Adding a new service

You can only add a new service to the boot sequence if a script in /etc/init.d exists. In that case the following command will install it with default settings (foo being the name of a script in /etc/init.d).

#update-rc.d foo default

Removing a service

A service may only be removed after the script in /etc/init.d as deleted already. If so, the following command will remove its references (foo being the name of a script in /etc/init.d).

#update-rc.d foo remove

If you want to remove a service without removing the start/stop script as well, you may consider using the file-rc package and editing the runlevel configuration file /etc/runlevel.conf. When using the SysV method you should rename the start/stop script, then call update-rc.d and then rename the start/stop script back to its old name.

Some of the content for this article source from here


Expand full post here...

Comments

Quicker GUI Editing with mousepad


Here is a small little app that I love to edit with, other than nano and gedit, it uses much less ram and opens instantaneously.

Install it Easily by doing:
apt-get install mousepad
or click on Applications->Add/Remove..-> then search for mousepad and check it to download & install.

Here is a little tip from my tutorial Less typing in the command line
root@ion:~# alias pad="mousepad"
root@ion:~# pad
^opens mousepad and you can just type "pad /etc/sysctl.conf" without the quotes of course :)

Expand full post here...

Comments

Fix Comcast or University BitTorrent Connection Killing on Ubuntu

I was searching the web for a fix for this fuq'd up problem about Comcast and Universities limiting connections with Sandvine. I have many reasons to believe qwest and other internet service providers are going to start limiting your torrent connections which is bullshit. Bittorrent is indeed hard on ISP's with thousands of syn/ack and tcp connection to and from your computer. I have read BANDWIDTH CHALLENGE TO PUSH LIMITS OF TECHNOLOGY and it seems bandwidth is surpassing technology and ISP's need to upgrade, but anyways who's fault is that? Not ours, screw them!

Here is a script that will block the RST packets that reset your connections:

1) open a terminal
2) sudo -s
3) cd /etc/init.d/
4) type cat >>bitfix
5) paste script below:
#!/bin/sh
#Replace 6883 with you Bittorent Port
BT_PORT=6883

#Flush the filters
iptables -F

#Apply new filters
iptables -A INPUT -i lo -j ACCEPT
#Comcast BitTorrent seeding block workaround
iptables -A INPUT -p tcp --dport $BT_PORT --tcp-flags RST RST -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#BitTorrent
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport $BT_PORT -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport $BT_PORT -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
exit

6) chmod +x bitfix
7) ./bitfix
Your ipchains firewall is now configured and you should have great upload speed now. You will have to run this script every boot.

I left out the rule to let through established connections, -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Now you if you use Transmission or any other Bittorent client you may have to edit the port

Transmission uses port 9090


Credits

Expand full post here...

Comments

Enable Sudo insults for some laughs!

I recently found a fun feature available within the sudo program that will insult you when you do the wrong thing such as enter your password incorrectly. I’ll tell you how you can activate the feature for a few laughs and also give a few examples of what insults you might get.

To turn the feature on you’ll need to use the following command:

sudo visudo

(always use visudo when you need to edit your sudoers file as it has a self-check system that won’t let you screw it up.)

Find the line that begins with Default and append insults to the end. (Any addition to that line is comma separated.) Your entry will then look like this:

Defaults !lecture,tty_tickets,!fqdn,insults

Save the file and you’ll notice the next time you screw up your sudo password you’ll get an insult.

Note: to clear your sudo session and be required to enter the password again try:

sudo -K

A few examples below:

Maybe if you used more than just two fingers…

I have been called worse.

Listen, burrito brains, I don’t have time to listen to this trash.

Have fun :)

Expand full post here...

Comments

HowTo: Speed up ubuntu boot process - the way you can feel it.

I found this great howto via the forums and I want it on my site :)

This HowTo is for those who complaint ubuntu boot-up speed is pretty slow but not willing to install any alternative tools to speed up. The way I use here is not the altimate solution by any means but it does make differences and it does work. Everything done below is by tuning the boot process itself and because everyone's computer might be different, there is a little risk that something below might break your system. Take your own judgment before you perform a change and always good to do a backup for the /etc dir.


**This HowTo is mainly for laptops and desktops, not for servers.**

Due to Ubuntu Edgy Eft (6.10) is using upstart to manage the init process and it already has reducing boot time built in mind, many things have been changed. This thread is mainly for any ubuntu version older than 6.10. For how to customize upstart, please refer to upstart threads in this forum. The following is a very interesting and useful WiKi on how to further speed up the boot process by taking out some useless bootup/shutdown processes...

wiki.ubuntu.com/Teardown

Suggestions for this HowTo:
1. I hope you learn something from here but not just a simple copy. So please, **DO NOT** follow exactly what I did and copy to your box. Read the descriptions of services and use your own judgment to determine if you need to keep them on or not. For instance, I turned GDM off on mine to boot to console, but if you do not feel confortable to see console at all, you should keep GDM or KDM on to boot directly to GUI.
2. If you have a question about a boot up service and not really sure what it does, post a question here and see if anybody can help you. Ask before you do if you don't know. The bottom line to be safe is to leave a service on rather than turn it off if you do not understand.
3. If you see a boot up service that you have but not in here, let us know what it does just like what I did here - give some descriptions and suggestions on whether it should be on or off on a normal laptop or desktop environment.

Color reference : service I turned on
service I turned off

Screen shots contrib'ed by domino for the initial bootup settings. A great reference for those who mess up on runlevels... Thanks!!

Page 1:


Page 2:



I. Install a tool - sysv-rc-conf. It is a perl based boot process adjustment tool.
Code:
sudo apt-get update
sudo apt-get install sysv-rc-conf
It gives you a way to esaily config the boot process and runlevel configuration, but its not necessary if you want to do it manually by linking/unlinking the files... Its up to you.

II. Ok, that's all we need. Now let's fire it up by
Code:
sudo sysv-rc-conf
and analyze each service one by one. **Note:** Some services I have here you might not have, perfectly ok. If some you have but I don't, then you will need to investigate on your own or ask here... But this HowTo should cover most of them...

Throw a littel bit of runlevel knowledge here before we start messing them up.... All the boot processes are executed in sequence as following:
runlevel S: the first runlevel in boot process. /etc/init.d/rcS script will be invoked to start and all the processes underneath /etc/rcS.d will be executed.
runlevel 1: the single user mode. All processes underneath /etc/rc1.d will be executed.
runlevel 2,3,4,5: in debain system, the multi-user env, may not may not include GUI. The same, processes under each of the corresponding dirs will be run. **Note** this is different than RedHat, SuSE, and other RPM based systems.
runlevel 0: computer shutdown.
runlevel 6: computer reboot.

ok, back to sysv-rc-conf:

1. acpi-support - You'd better leave it on the default runlevel. The default is 2,3,4,5.
2. acpid - The acpi daemon. These two are for power management, quite important for laptop and desktop computers, so leave them on. The default is 2,3,4,5
3. alsa - If you use alsa sound subsystem, yes leave it on. But if you have the service below, its safe to be off. The default is off when alsa-utils is on.
4. alsa-utils - On my system, this service supercedes the alsa, so I turn off the alsa and turn this on at S level. **Note**, I mean "turn off" is to remove all "X" at all runlevels. If you don't have it on your system, no problem. Just keep going. The default is S runlevel.
5. anacron - A cron subsystem that executes any cron jobs not being executed when the time is on. Most likely you've probably turned your computer off when a certain cron job time is ready. For example, updatedb is scheduled at 2am everyday, but at that moment, you computer is off, then if anacron service is on, it will try to catch up that updatedb cron... I turn it off cause it didn't turn my laptop off very offen, but its totally up to you for this one. The default is 2,3,4,5
6. apmd - This is the one that confused me a quite bit. I have acpid on already and what's the benefits of having apmd on too? If you computer is not that old which can't even support acpi, then you may try to turn this off. I did anyway. The default is 2,3,4,5
7. atd - like cron, a job scheduler. I turned it off. The default is 2,3,4,5
8. binfmt-support - Kernel supports other format of binary files. I left it on. The default is 2,3,4,5
9. bluez-utiles - I turned it off. I don't have any bluetooth devices. The default is 2,3,4,5
10. bootlogd - Leave it on. The default is S.
11. cron - Leave it on. The default is 2,3,4,5
12. cupsys - subsystem to manager your printer. I don't have so I turned it off, but if you do, just leave it on. The default is 2,3,4,5
13. dbus - Message bus system. Very important, leave it on. The default is 2,3,4,5
14. dns-clean - Mainly for cleaning up the dns info when using dial-up connection. I don't use dial up, so I turn it off. The default is S.
15. evms - Enterprise Volumn Management system. I turned it off. The default is S.
16. fetchmail - A mail receving daemon. I turned it off. The default is 2,3,4,5
17. gdm - The gnome desktop manager. I turned it off anyway since I get use to boot to console first. This is up to you if you want to boot directly to GUI. The default is 2,3,4,5
18. gdomap - Actually I have no idea why this one should on. I didn't see any other systems have this daemon, so I turned it off and I don't feel I lose anything. Any benefits to have it on a loptop or desktop? The default is 2,3,4,5
19. gpm - Mouse support for console. If you feel you'd better have a mouse on console, go turn it on at runlevel 1 and 2. That's all you need. The default is 2,3,4,5
20. halt - Don't change it. The default is 0.
21. hdparm - tuning harddisk script. I removed the 2,3,4,5 runlevel but add it to S runlevel. I feel that opening DMA, 32bit I/O, etc eariler will benefit the rest of the processes. Also I changed the original script to a very simple one that I made myself. I feel useless to put all those redundant checks if I know what I am doing. The configuration file is /etc/hdparm.conf. The default is 2,3,4,5
22. hibernate - If your system support hibernate, leave it on. Otherwise, its useless for you. The default is S.
23. hotkey-setup - This daemon setup some hotkey mappings for Laptop. Manufacturers supported are: HP, Acer, ASUS, Sony, Dell, and IBM. If you have a laptop in those brands, you can leave it on, otherwise, this might not have any benefits for you. The default is 2,3,4,5
24. hotplug and hotplug-net #activating hotplug subsystems takes time. I'd consider to turn them off. I did some changes in my /etc/network/interfaces file. Instead of mapping my wireless card during hotplug process, I set it up to auto. So I can turn them off. I've tested even I turned them off, ubuntu can still detect my usb driver, my digital camera, etc. So I think its pretty safe to turn them off. **Note** If you find your sound card doesn't work after turning hotplug service off, you can turn it back. Or edit /etc/modules file to add your sound card's driver module. Tested out the later one is faster. The default is S.
25. hplip - HP printing and Image subsystem. I turned it off. The default is S.
26. ifrename - network interface rename script. Sounds pretty neat but I turned it off. Mainly for managing multiple network interfaces names. Since I have a wireless card and an ethernet card, they all assigned eth0 and ath0 from kernel, so its not really useful for me. The default is S.
27. ifupdown and ifupdown-clean - Leave it on. They are network interfaces activation scripts for the boot time. ifupdown default is 0,6,S and ifupdown-clean is S.
28. inetd or inetd.real - take a look your /etc/inetd.conf file and comment out any services that you don't need. If there aren't any services there, then its very safe to turn them off. The default is 2,3,4,5
29. klogd - Leave it on. The default is 2,3,4,5
30. laptop-mode - A service to tweak the battery utilization when using laptops. You can leave it on. The default is 2,3,4,5
31. linux-restricted-modules-common - You need to see if you really have any restricted modules loaded on your system. Since I need madwifi ath_pci module, so I left it on. The restricted modules can be found from /lib/linux-restricted-modules. If you find that you are not using any of the restricted modules, then its ok to turn it off. The default is 0,6, and S.
32. lvm - I don't use it so I turned it off. Leave it on if you *DO* have lvm. The default is S.
33. makedev - Leave it on. The default is 2,3,4,5
34. mdamd - Raid management tool. I don't use it so I turned it off. The default is 2,3,4,5
35. mdamd-raid - Raid tool. If you don't have Raid devices, turn it off. The default is S.
36. module-init-tools - Load extra modules from /etc/modules file. You can investigate your /etc/modules file and see if there is any modules that you don't need. Normally, this is turned on. The default is S.
37. mountvirtfs - mount virtual filesystems. Leave it on. The default is S.
38. networking - bring up network interfaces and config dns info during boot time by scaning /etc/network/interfaces file. Leave it on. The default is 0,6,S
39. ntpdate - Sync time with the ubuntu time server. The default is S. QUOTED: "If you are dual-booting with Windows, it is probably a good idea to leave ntpdate on. Windows can only deal with the hardware clock set to local (not UTC) and Linux needs ntpdate to correct this, otherwise your clock will increase an hour everytime you boot into Linux from Windows." Thanks dejitarob for the update!! I don't have dual boot, so I turned it off, but if you have multiple systems, suggestion is to turn it on.
40. nvidia-kernel - I compiled the nvidia driver by myself, so its useless for me now. If you use the ubuntu nvidia driver from the restrict modules, just leave it on. The default is 1,2,3,4,5
41. pcmcia - Active pcmcia device. I changed it to start on 0,6,S runlevel instead of on each 2,3,4,5 cause I feel its better to have hardware device ready at first. Also, useless if you are using desktop which doesn't have pcmcia card. So in that case, turn it off please. The default is 2,3,4,5
42. portmap - daemon for managing services like nis, nfs, etc. If your laptop or desktop is a pure client, then turn it off. The default is 2,3,4,5,0,6,S
43. powernowd - client to manage cpufreq. Mainly for laptops that support CPU speed stepping technology. Normally, you should leave it on if you are configuring a laptop, but for desktop, it might be useless. The default is 2,3,4,5
44. ppp and ppp-dns - Useless to me. I don't have dial-up. The default for ppp is 2,3,4,5 and pppd-dns is S.
45. readahead - **Thanks mr_pouit!** It seems readahead is a kind of "preloader". It loads at startup some libs on memory, so that some programs will start faster. But it increases startup time for about 3-4 seconds. So, you can keep it... or not . **update**, I tested and I just didn't feel difference loading programs. So I decided to turn it off. If you have a reason to keep it on, please do so. The default is S
46. reboot - Don't change it. The default is 6
47. resolvconf - Automatically configuring DNS info according to your network status. I left it on. The default is S.
48. rmnologin - Remove nologin if it finds it. It wouldn't happen on my laptop, so I got rid of it. The default is 2,3,4,5
49. rsync - rsync daemon. I don't use it on my laptop, so turned it off. The default is 2,3,4,5
50. sendsigs - send signals during reboot or shutdown. Leave it as it is. The default is 0,6
51. single - Active single user mode. Leave it as it is. The default is 1
52. ssh - ssh daemon. I need this so I turned it on. The default is 2,3,4,5
53. stop-bootlogd - stop bootlogd from 2,3,4,5 runlevel. Leave it as it is. The default is 2,3,4,5
54. sudo - check sudo stauts. I don't see any good to run it everytime on a laptop or desktop client, so I turned it off. The default is S
55. sysklogd - Leave it as it is. The default is 2,3,4,5
56. udev and udev-mab - Userspace dev filesystem. Good stuff, I left them on. The defaults are all S runlevels.
57. umountfs - Leave it as it is. The default is 0,6
58. urandom - Random number generator. Might not useful but I left it on. The default is 0,6,S
59. usplash - Well, if you really want to see the nice boot up screen, leave it as it is. I just turned it off anyway. If you want to turn it off, you also need to edit /boot/grub/menu. lst file to comment out the splashimage line and get rid of the splash kernel boot option. The default is 2,3,4,5
60. vbesave - video card BIOS configuration tool. Its able to save your video card status. I left it on. The default is 2,3,4,5
61. xorg-common - setup X server ICE socket. I moved it from starting at runlevel S to runlevel 2,3,4,5. Since I don't need this if I boot to single user mode. This way it wouldn't occupy time during the initial booting. The default is 2,3,4,5
============ My bootup services end up here============

============ Some services from others================
62. adjtimex - This is a kernel hw clock time adjusting too. Normally, you shouldn't see this on your boot up list. In very rare case if you do see its on your boot up process, then there might be a reason why it is on, so better leave it that way. In my case, it is off.
63. dirmngr - A certification lists management tool. Work with gnupg. You will have to see if you need it or not. In my case, I turned it off. Default runlevel 2,3,4,5
64. hwtools - A tool to optimize irqs. Not sure what's the benefits of turning it on. In my case, I turned it off.
65. libpam-devperm - A daemon to fix device files permissions after a system crash. Sounds pretty good, so I left it on.
66. lm-sensors - If you matherboard has builtin some sensor chips, it might be helpful to see hw status via userspace. I ran it and it said "No sensors found", so I turned it off.
67. screen-cleanup - A script to cleanup the boot up screen. Well, turn on or off is up to you. In my case, I left it on. The default is S
68. xinetd - A inetd super daemon to manage other damons. In my system, the xinetd is managing chargen, daytime, echo and time (find them from /etc/xinetd.d dir), I care none of them, so I turned it off. If you do have some important services configured under xinetd, then leave it on.

III. Alter the /etc/inittab file
Code:
vi /etc/inittab
then comment out tty4,tty5, and tty6. Just leave tty1, tty2, and tty3. Three vts should be enough for a laptop or desktop user. Save the file.

IV. Ok, now, we can reboot our box and see how it goes. From what I've tested, before I got tons of services stopped, the whole process is about 85 secs to 90 secs to boot to console. (At that time, I also has samba and nfs services turned on which I shouldn't. Apparently, I turned them off too). After this change, the whole boot up process took about 50 secs. I have a P4M 1.8G CPU laptop. Some of the high-end desktops or laptops should take even less time.

**UPDATE**: speed up/clean system reboot or shutdown process.
1. start sysv-rc-conf by issuing:
Code:
sudo sysv-rc-conf
2. ok, open your eyes and look very carefully for those SERVICES THAT DO NOT HAVE A "X" ON ANY RUNLEVELS (Any runlevel means 1,2,3,4,5,6, and S), write them down one by one. Don't make mistakes here. Double check after you've done. Thanks ice60 for wording recommendation!
3. quit sysv-rc-conf.
4.
Code:
cd /etc/rc0.d
- This is for the system shutdown process.
5. ok, now,
Code:
 ls K*
will list all links starting from UPPERCASE letter "K". Compare with your list, change each of the filename containing the service name in your list to start from a lowercase "k". For example, in your list, you have ppp service (which means ppp is turned off at all runlevels), then you can do like:
Code:
sudo mv K00ppp k00ppp
. You just change the UPPERCASE K to lowercase k, keep the rest the same. Do this on all of the services in your list.
6.
Code:
cd ../rc6.d
- This is for the system reboot process.
7. ok, you should see similar things here too. So do the same thing here as you did on rc0.d.
8. Now, you reboot and shutdown process should be cleaned up and faster.

The explanation for what you did is pretty simple. The /etc/rc and /etc/rcS scripts run start on each link on each runlevel by scaning if it is starting with a UPPERCASE "S" and run stop on each by scaning if it is starting with a UPPERCASE "K". So for reboot and shutdown runlevels, the most thing we care is the "K" links cause for those services not running on all runlevels, its just not needed to stop them. They are not runing at all. If some day you want to turn some of the services back on, just change the lowercase "k" to UPPERCASE "K". That's all.

Anyway, it is not intend to work on servers, but I did try on one of my servers has 2.7G P4 and 1.5G mem. It brought the boot process down to 31 secs. I calc'ed it with my watch. Besides, this is with my ftp server and nfs server started on boot time.

**Note**
For all of those that having HAL failure problem, try this:
1. change acpi-support from S to 2,3,4,5
2. change acpid from S to 2,3,4,5
3. change dbus from S to 2,3,4,5
4. Reboot. Go to the console and do
Code:
ps -aef|grep hald
. If hald service is up, then your dbus subsystem is running fine now. Try it.

Great comments added by bodhi.zazen. Thanks!!
First we should make sure we are left with a bootable system and have backups.

Since we are changing our boot process:

Step 1- Make a bootable GRUB floppy.

http://www.linuxjournal.com/article/4622

Step 2- Backup
Is there any need to back up more then menu.1st, /etc/init.d, /etc/rcS.d, and /etc/rc*.c ( *= 0,1,2,3,4,5,6)?
mkdir /~/bakup.files
sudo cp -P /etc/init.d /~/backup.files
sudo cp -P /boot/grub/menu.1st /~/backup.files
sudo cp -P /etc/rc*.d /~/backup.files
Although a backup of /etc is nice, is it not overkill for this exercise?

Setp 3- Know you Ubuntu Root device (hda1, hdb1, hda2,) and kernel (the numbers in "vmlinuz").
Location of kernel is /boot

Step 4- Modify runlevels.
DO NOT MODIFY DEFAULT RUN LEVELS 0,1, OR 6
MODIFY ONLY 1 RUN LEVEL AT A TIME
RUN LEVEL "S" IS RUN AT EACH RUN LEVEL PRIOR TO OTHERS
ie as system boots (at default) the scritps in rcS.d are run first, then rc2.d

Therefore, if you disable a script in "S", enable the script in runlevel 2
This should guarantee your system will remain bootable to the default run level (2)

In Ubuntu the default run level is 2
Modify only 1 test run level at a time. Choose a custom run level (I will use 3 for the rest of this post, you can use 3,4, or 5).
After modifying the runlevel test without re-booting
sudo init 3
This will change to run level 3
Now check your system.
Problems? Return to default run level and re-configure run level 3
sudo init 2
No problem -> Boot from floppy
No problem, boot from floppy.
When booting (from diskette) to the default run level, the "kernel" line looks like:
kernel=/boot/vmlinuz-2.6.8.1-3-386 root=/dev/hda1 ro quiet splash
In menu.1st this looks like this:
kernel /boot/vmlinuz-2.6.8.1-3-386 root=/dev/hda1 ro quiet splash
To boot to run 3 (from GRUB diskette), add a "3" at the end of the line
kernel=/boot/vmlinuz.... root=/dev/..... ro quiet splash 3
Note: the number 3 was added at the end (without quotes)
time boot process.
If OK boot again from floppy (to default run level)
kernel=/boot/vmlinuz..... root=/dev/....
Note: no number 3 at the end of this line
time boot process
This is the default boot and you can measure any time savings.
booting from a floppy to compair apples to apples
If OK you can now change the default run level (or not)
There is more then 1 way to do this
My preferance is to leave the default runlevel unmodified
This leaves the default boot process as a future referance
Change the default boot level
sudo nano /boot/grub/menu.1st
add init=3 to end of line

kernel /boot/vmlinuz-2.6.8.1-3-386 root=/dev/hda1 ro quiet splash 3

Or create 2 Ubuntu titles, one for each run level.

OR

Edit /etc/inittab

Step 4- Modify shutdown scripts if desired.

This process should guide users through a logical process of modifying boot scripts without generating a non-bootable system. Backups were made "just in case" but really should not be needed.

Expand full post here...

Comments

Picking the Kernel thats Right for You (Possible Speed Increase)

Disclaimer

This section is about messing with the kernel and that can be tricky business. Has never messed up for me, but it is a little nerdy. Look here if you want to learn and maybe get a speed boast (or if you have a dual core/dual processor/hyperthreading machine because you WILL get a performance boost). Use at you own risk, I am not a kernel developer or anything.

Be sure not to install the linux-image package instead or things will probably break! If you have done that just install the correct package and things will fix themselves.

***********************

Introduction

I have noticed some recent confusion in the forum when it comes to kernels, so I want to explain some things I have discovered. I hope it helps.

So you just installed Ubuntu but you don't think its going as fast as you think it should? Maybe you have just been advised to install a new kernel so you want to know more.

In Synaptic, if you search for “linux-image” you will find many kernels. Each its follows by some numbers and letters in some order. I will now explain those differences and what each means.

Notes:

- This guide does not apply to the PPC or 64 bit version of Ubuntu.

- If you have a heavily modified setup this might not work. For example if you have installed some drivers "by hand" and not from the repositories.

- Its hard to measure the speed increase, so if in doubt leave it out. Don't follow the guide if you are uncomfortable

- You can always boot back into you old kernel if things mess up. When the OS Menu appears at boot (called the Grub menu) just hit down and then hit enter on the first line with a "386" in it. You might have to hit the ESC key when you boot to pull up this menu.

- My steps will rewite your grub, so if you have a custom grub save it somewhere.

The Many Kinds of Kernels

386 – the default kernel in Ubuntu is the 386 kernel (but I hear its really a 486 kernel). What that means is that its the most compatible kernel because it supports the oldest tech. Here is wiki page to learn more:

http://en.wikipedia.org/wiki/Intel_80386

686 – The kernel that is recommended for use with any Intel Processors in a computer that are more recent then a Pentium Pro. So even old Pentium 2s and 3s can get in on the act. Installing this kernel with may improve performance.

http://en.wikipedia.org/wiki/Pentium_Pro

k7 – This kernel is recommended for a computer with a Athlon or newer AMD CPU. New 64 bit AMD cpus can use it as well if you have the 32 bit version of Ubuntu installed. Installing this kernel with may improve performance.

http://en.wikipedia.org/wiki/Athlon

smp – This kernel is NEEDED to use both CPUs in a multi-CPU setting. The kernel is also required to “enable” hyperthreading in modern Pentium 4 CPUs. Also needed for dual core processors (the letters stand for Symmetric Multiprocessing). Very important to install this, as it WILL improve performance. Sorry to bold it but I think this one is the most important.

http://en.wikipedia.org/wiki/Symmetric_multiprocessing

How to Install New Kernels

You need to install the file below as indicated:

For a modern Pentium 2+ (686) kernel:

Quote:
sudo apt-get install linux-686
For a modern Pentium 2+ kernel for dual processors, dual cores, or hyperthreading:

Quote:
sudo a