Arch Linux installation from ground up
Scribbled on Friday, July 11th, 2008Updated on: 31 July, 2008 at 4:28 PM IST

NOTE: This walk-through is still in progress and certain amendments are being done.
So there is this new linux that everyone is talking about. My friends at Digit Forum said that this one is a killer at speed and performance. Its much more responsive than any other linux out there. But a downside is that its not really easy for a newbie to install it. I thought of giving it a try and found it quite amazing. Its nearly upto my expectations. I am loving this distro more than any other now. Its all about speed, beauty and response. I will be showing the steps to get a perfect desktop in Arch Linux from the command line startup. Remember there are some nifty tricks and a good amount of things I have learned while installing.
I won’t be writing complete steps for base system install.
Install Base system
- Install the base system from the CD
- Remember to choose nano as the text editor.
- Remember to select ntfs-3g in devel packages.
- Now you should be presented with a bash shell.
- Login as root user.
Setting up Network using command line
- First strep is to setup the rc.conf file for network. Remember we are setting static network address and not DHCP.
- Before that you have to see which one of your ethernet card is connected to internet
Hunting down the Ethernet Card
- You will be using “ifconfig” command to do that
- The above command will activate the card assigned to eth0 with the ip address 192.168.1.2 and subnet mask 255.255.255.0. Now check if you can ping to the router (which is generally has ip 192.168.1.1). Type in terminal:
- Press (CTRL + C) to cancel. See if you get a reply without any error. Type in terminal:
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.13 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.912 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.23 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.924 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.897 ms
- Now you know that it is the interface (eth0) that is connected to your router and presumably to internet too. If there was error in ping then do as given below. Type in terminal:
- Now this time we have assigned same address to eth1 (another ethernet card attached to your PC). But before that we have disabled the eth0 by issuing down at the end.
- Check eth1 for ping. Do the same thing “ping 192.168.1.1″. If you get a reply then its the ethernet card that is connected to your router. Now you know what to do if this is not the card that is connected to router :p Do the same with you third ethernet card.
- For my system there are two ethernet cards and eth1(192.168.1.2) was connected to router(192.168.1.1)
rc.conf editing
- Now you want to make the changes permanent, so open rc.conf. Type in terminal:
- Few things you have to note in this file are, HOSTNAME
Here it is “myhost”, without quotation.
Go to the part below the above line skipping the commented entry (any line that starts with # is a comment and does not actually processed ) and set it as given below but with the IP addresses you want:
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
# - prefix an entry in INTERFACES with a ! to disable it
# - no hyphens in your interface names - Bash doesn’t like it
#
# DHCP: Set your interface to “dhcp” (eth0=”dhcp”)
# Wireless: See network profiles below
#
eth1=”eth1 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255″
eth0=”eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255″
INTERFACES=(eth0 eth1)
- See eth1 is assigned IP 192.168.1.2, subnet mask 255.255.255.0 and broadcast 192.168.1.255 (Broadcast address is same as IP address but the portion that correspond to 0 in subnet mask is assigned 255, since the last portion was 0 in subnet mask so the broadcast address’s last portion was assigned 255)
- Similarly set eth0 if you have another ethernet card.
- lastly write them in the brackets for INTERFACES as shown above.
- Thats it you are donw with assigning IP address at boot time
- Now go to the line below these comments:
# Declare each route then list in ROUTES
# - prefix an entry in ROUTES with a ! to disable it
#
gateway=”default gw 192.168.1.1”
ROUTES=(gateway)
- Here your default gateway is set, mine is the IP address of router i.e. 192.168.1.1. Remove any “!” from the second line, if any.
- Close the file by pressing (CTRL + X) followed by typing “y” and then pressing Enter key.
resolve.conf editing
- Now comes the DNS nameserver setting part
- Open the file using this command:
- Add these lines as it is:
# /etc/resolv.conf
#
#search <yourdomain.tld>
#nameserver <ip>
nameserver 208.67.222.222
nameserver 208.67.220.220
search test.com
# End of file
- We have added two nameserver(208.67.222.222 and 208.67.220.220 ) and a test case after them
hosts editing
- Now we have to set the hostname you got previously (mine is “myhost”) in file hosts (/etc/hosts)
- Open file “/etc/hosts”. Type this in terminal:
- set the hostname.
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost myhost
192.168.1.2 myhost.mydomain myhost
# End of file
- Look I have written “myhost” at the end of first uncommented line.
- Now you have done the network setting part, its time to reboot.
Editing routing table
- A last step that is crucial is to add default gateway to the routing table. Type this in terminal:
- Yeah thats it, now you know in general how networking works in linux and how to be a little geeky…lolz
- type “reboot” to reboot, your network will be up and running after reboot.
- yay ! m/
Add a User:
- To add a user login to root.
- Then issue this command
- You will be asked to fill in details step by step (you can leave certain fields to default values)
User ID (’UID’) [ defaults to next available ]:
Initial group [ users ]:
Additional groups (comma separated) []: audio,video,floppy,lp,optical,storage,wheel
Home directory [ /home/archuser ]
Shell [ /bin/bash ]
Expiry date (YYYY-MM-DD) []:
- The entries shown in bold letters are the only thing you need to fill for everything else just leave it blank. archuser will be your login name, and audio,video,floppy,lp,optical,storage,wheel in additional users make sure that you can access theses privileges.
- After filling in all this you will be eventually presented with this message
New account will be created as follows:
Login name…….: archuser
UID…………..: [ Next available ]
Initial group….: users
Additional groups: audio,video,floppy,lp,optical,storage,wheel
Home directory…: /home/archuser
Shell…………: /bin/bash
Expiry date……: [ Never ]
This is it… if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
- press enter and you will prompted to set password for this account.
This is it… if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
Password:
- Thats it, you can now login by exiting root account (type “exit”).
Preparing for Graphical Desktop
- You will need to install Xserver for any graphical eyecandy.
- Login as root.
- Update and Synchronize first pacman repository and cache (pacman is package manager for Arch Linux, its similar to apt in Debiand or Ubuntu):
- Install xorg using pacman:
- Install the appropriate driver
For Intel grpahics:
For NVIDIA graphics:
For ATI graphics:
- Now intall hwd to automaticall generate xorg.conf
- Generate xorg.conf
For ATI graphics:
For NVIDIA graphics:
- You got the default xorg.conf file (/etc/X11/xorg.conf). For users having Intel G965 chipset with X3000 graphics core, use this custom made xorg,conf file.
- Now you are done with priliminary steps, it time to install a Graphical Desktop now.
Installing Graphical Desktop - Gnome
- I will be installing Gnome as a Desktop Environment
- Install the base gnome:
- Now its time to install extra goodies. gnome-extra package contains bug-buddy cheese dasher eog evince evolution-webcal file-roller gcalctool gconf-editor gdm gedit gnome-audio gnome-games gnome-mag gnome-netstatus gnome-nettool gnome-power-manager gnome-system-monitor gnome-terminal gnome-utils gok gucharmap nautilus-cd-burner orca seahorse sound-juicer tomboy totem vino zenity
- Of which I chose, evince (a pdf reader), file-roller (archive viewer and maker), gconf-editor (tweaking gnome desktop), gdm (provides GUI login screen), gedit (text editor), gnoe-power-manager, gnome-system-monitor (task manager), gnome-terminal, gnome-utils, gucharmap (character map), totem ( fast light media player)
- Now install gnome extra:
- Install Gnome Display Manager (it provides nice GUI login and other things and will be installed if you have included it in gnome-extra):
- install geany and gnome-terminal (gnome-terminal is included in gnome-extra):
- add three daemons (hal fam gdm) to rc.conf, hal and fam are to make desktop users life at ease. Type this in terminal:
- Now go to the line starting with DAEMONS, and add these three within the round brackets separated by a space:
- On to the next step…some crispy software installation :p
Installing Softwares
- Install web browser:
Firefox:
Opera:
- Install Flash, acrobat reader and Java runtime:
firefox support:
- Install codecs:
- Install Audio player:
Exaile:
Rhythmbox:
- Install Video player
Mplayer:
Mplayer firefox plugin:
VLC:
Totem:
- Install Internet Messenger:
- Install IRC chat client:
- Install Email Client:
- Install archive support in file-roller:
7zip
unrar
- Install Image editing and management software:
GIMP:
gThumb:
- Install Torrent Client:
Azureus:
Deluge:
- Install CHM viewer:
- Install openoffice:
- Install Development environment:
GCC:
GCC 3:
Eclipse:
Geany:
- Install Network analysers:
Wireshark:
Nmap:
Snort:
Nifty Tips and Tricks
- If the system restarts or hangs while installing a software, it may happen that lock on pacman will not be removed. To remove it type this command as root in terminal:
- To set date using terminal use mmddHHMM, where mm denotes month, dd denotes day, HH denotes hour, MM denotes minutes. e.g. to set “Jul 11 06:36:00″ I will issue this command as root:
remember to synchronize the hardware clock too, issue this command to do this:
- You may want to set the system volume at certain level even after reboots, to do this install alsa-utils and alsa-lib :
then store the current system volume using this command:
and remember to add “alsa” daemon to rc.conf file, open it:
add alsa to DAEMONS list
save and close it
- Install Alacarte for menu editing:
- Install MS fonts and other cool fonts:
- Enable SysRq magic keys:
Edit sysctl file, open it:
set the value to 1 for kernel.sysrq:
kernel.sysrq = 1
save and quite
Now you can use ALT + Prt Scr/Sys Rq + REISUB (to reboot system when it freezes) and ALT + Prt Scr/SysRq + REISUO (to shutdown system gracefully when it hangs)
See the post “when Ubuntu freezes” post for more detail
- To see currently opened files, install “lsof”:
Reference: Arch Wiki Ubunuforum Comments
The Desktop !!!
Arch lolz…
Guess i reverted back to retro Kate look :p

No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.







9 Responses to “Arch Linux installation from ground up”
Thank goodness you typed this up. I was going to type one up just incase someone in the forum asked. But now I can link this instead :). Also you might want to refer to Post Installation tips on the Arch Wiki and on installing yaourt.
By FilledVoid on Sat 12th Jul, 2008
Interesting. pacman is the package manager I see, which requires a net connection, can I setup Arch offline, without a net connection?
By Sathya on Sun 13th Jul, 2008
wow dude… u must be knowing really more about linux that an average pc user doesnt know… say, me… i never bothered about linux even thought i was interested… could u write something about newbies and linux for people like me and linux’s own popularity…? i’d like to know abt using linux and WinXP on same pc with the pros and cons of both… waiting for a post…
By Su on Mon 14th Jul, 2008
@FilledVoid
Yeah it I was burning the nights. Will be updating about post installation and Yaourt tpp. Am too lazy to maintain posts. But will surely do this within 2 days.
@Sathya
Yeah core system can be installed without net connection but for graphical desktop environment its better to have net connection or may be some dependencies issues will crept in if you don’t have the whole dependency packages too.
@Su
I was always amused about the working of an OS. What could be the better way to learn than use Linux for home use. Btw I was fed up of constant paranoia abt all kinds of malwares while using windows. Now I don’t even care for a bit.
You may try it for a while and see if you can observe the open world.
Soon I will be writing a post for newbies.
By T on Wed 16th Jul, 2008
There is a better way to learn OS’s it’s called OpenBSD
Of course nothing better than creating your own. hehe.
Also, for checking if route is set properly, not need to ping just check the output of
route -n
Correct your /etc/hosts
add another entry for host.domain
Check the output of
hostname
hostname -f
The latter will be localhost.localdomain which is wrong.
Enable ntpd in the daemons for automatically sync’ing time
Try liberation and libertine fonts for ‘free’ replacements of ms ttf fonts
By mehul on Tue 05th Aug, 2008
@mehul
I wish I had the time and talent to create my own. But will surely try OpenBSD (a system specifically built for that).
Currently my chipset has a BIOS bug for linux but still things work well for linux.
route -n do list out the default gateway but a cross check wouldn’t hurt.
Correcting the hosts file.
Yeah I forgot ntpd part, lots of things to update and complete.
There is one query. How do I see hindi alphabet correct, i mean they are very spaced out when I see them.
By T on Tue 05th Aug, 2008
Can this be done offline? or how can i steup my usb vodafone modem in command line?
By vdias on Wed 21st Jan, 2009
@vidas
Yes, you can install it offline. You will need to add packages to the repository by using “repo-add” and then edit the “pacman.conf” file with the package address
http://www.archlinux.org/pacman/repo-add.8.html
http://www.archlinux.org/pacman/pacman.conf.5.html
I did it a long time ago, I was able to install whole packages which I backed up in a ISO from another machine connected to internet. But there were some minor locale problem.
You should be able to do it if you have a fairly decent knowledge of handling CLI and read the Arch Linux Manual already.
By T on Mon 26th Jan, 2009
Thanks a lot for this excellent tutorial! I’ve always wanted to setup a static network. I’ve read so many network tutorials. But none of them worked for me. I like using the command line very much. I followed your tut step by step, and guess what: now I have a working network with a static IP!
It’s amazing how lightning fast Arch Linux boots up with a static IP.
You’ve made my day.
By Big Viking on Mon 31st Aug, 2009