Experimenting with arch linux

While waiting for the delayed opensuse 12.2 beta, I decided it was time to look at some other distros.  I thought about trying fedora or mint, but decided that I would start with arch linux.  This post describes my experience with that project.

I’ll start with a quick summary.  Arch linux is not for those new to the unix experience.  It requires some unix skills and knowledge, even during the install stage.  Unless you are comfortable working at the command line level in unix, don’t even try this distro.


I’ll start by pointing out that the “Official Installation Guide” is very useful here.

I downloaded the install media.  I chose the option for a core install, so I downloaded the file “archlinux-2011.08.19-core-dual.iso” from one of the arch mirrors, then checked the md5sum and sha1sum against the values listed at the main site.  The iso that I downloaded was around 700M, and was dual architecture.  That is, it could be used to install either a 32 bit system or a 64 bit system.  My initial plan was for a 32 bit install.

I copied the iso to a usb device, using the dd_rescue utility on my opensuse 12.1 system.  In a trial boot from the usb on a 64 bit system, the boot menu offered both 32bit and 64 bit installers, as well as a few other options.  On the 32 bit target system where I intended to install, it offered only a 32bit installer (as I had expected).

The installer came right up.  The installer screen looked superficially like a graphic screen, but was really a non-graphic screen using some graphic characters.  It seemed reminiscent of the slackware installer that I had used some time ago.  The installer screen was a menu that took me through the several steps of installing.

The first step was selecting the source repos from which to install.  The default was to use the repo on the install media, and I used that.  An alternative is to use one or more network repos, and I later tried that on a re-install.

Next came the editor selection.  I chose “vi”; the other (and default) choice was “nano”.  Then the clock setting for selecting timezone, and for setting the internal clock to UTC or localtime.  These were straightforward.

The first “difficult” menu item was the hard disk preparation.  You could allow the installer to auto-partition, or you could go into the partitioner.  The third option, which I chose, was to configure devices.  This uses existing partitioning.  I was given a list of device names, and could select which ones I wanted to modify.  I set up one to be formatted as ext2 for “/boot”, another to be formatted as ext4 for “/”, and a third to be used for “/home” but without reformatting.  I also selected one for swap.

For each device name that I checked, I had to specify the file system from a list.  There was no list entry for NTFS.  Therefore I ignored the Windows partitions, and would have to come back and fix those later by editing “/etc/fstab”.

On exiting from the hard disk preparation step, the disks were formatted.  This is different from most other distros that I have tried in the past.  With most distros, the choices are saved somewhere, but the actual disk formatting does not occur until the install step.  This allows aborting an install up until that final install step, with no changes to the disk.  However, arch does not offer that option.  It does the disk formatting, as soon as you have completed specifying how you want the disk to be setup.

The next step is package selection.  The first submenu was for boot loader.  I selected “grub”; the alternative was to use “syslinux”.  The next submenu had two items if installing from the CD, and more if installing over the network.  The base install is preselected.  You can select others if you want.

A third submenu gives a list of a zillion individual packages.  That was the confusing part of package selection.  I selected some that I thought that I needed, and ignored the rest.  My hope was that dependency checking would take care of any other needed packages, and that turned out to be correct.

Next came the package installation.  This proceeded quickly when installing from the install media.  On my later retry with network install, it download all of the packages before it installed any of them.

This is followed by a configuration step.  A list of files is presented, and they can be selected one at a time for editing, using the editor chosen in an earlier step.  I set the hostname in “/etc/rc.conf”.  I also needed changes in “/etc/rc.conf” and in “/etc/mkinitcpio.conf” to handle the encrypted partitioning I am using.  I’ll give details of that in a separate post.  If you are not using encryption, you can probably accept the defaults for most of the files.

Setting the root password was a straightforward step.  The prompt to enter a password appeared at the bottom of the screen, well away from the menu box.

Installing the boot loader is just about the last thing.  I was asked where to install grub, but the only usable option was to install to the MBR.  This was the first part that I disliked.  My early experience with linux used the MBR (with lilo as loader), but I later came to appreciate the benefits of using the boot sector of “/boot” for the boot location.  Unfortunately, arch does not allow that.  I was also required to edit the grub “menu.lst” file at this stage.  I had to make a change due to using encrypted partitioning (to be discussed in a later post).  Otherwise the defaults were fine, except that the menu item for booting Windows was commented out.  I had to uncomment that and change the partition specified for Windows.

At the end of that step, the install was complete and I could exit from it.  That put me in a command line window for any extra fixes before a reboot.  I mounted a windows disk, and copied the MBR there:

mkdir /tmp/a
mount /dev/sda2 /tmp/a
dd if=/dev/sda of=/tmp/a/bootsect.lnx count=1

Then I restored the original Windows MBR content

dd if=/tmp/a/oldmbr of=/dev/sda bs=440 count=1

That way I could have the system default to booting Windows, and select linux from the Windows boot manager.  I do it that way, because I also have PLOP boot manager accessible from the Windows boot manager.  The particular computer is an old one, with no BIOS support for booting from a USB, so I need the assistance of PLOP boot manager whenever I want to boot from a USB.

The running arch linux system

Once booted into arch linux, I had to do some manual configuration to get the system to the way that I wanted it.  This was not too different from the way I used to use slackware.  Overall the system was as expected, and for people who like to tweak things themselves, this is a good system.

A couple of positives.  The files “/etc/profile” and “/etc/bash.bashrc” were fairly minimalist in content.  This is good.  One of my pet peeves with opensuse, is that they put too much in those shell startup files.  As I see it, the system wide shell startup files are the concern of the system administrator, not of the distributor.  Unfortunately, opensuse makes those part of the distribution, with warnings not to change them.

The second positive is that reboot worked on this old (2004 Toshiba) hard1ware.  My recent experience with opensuse, has been that halt (or cold shutdown) works, but a reboot hangs.  The arch installation rebooted just fine.

Overall summary

This is a good distro for people with some unix experience, who want to get their hands dirty messing with the configuration.  It’s a nice way to build on that experience and become more conversant with the ins and outs of unix.

For myself, I appreciate opensuse all the more.  I’ve done my duty with getting my hands dirty with slackware, solaris and redhat (before the fedora branch off), but by now I prefer to enjoy using the systems, without having to spend too much time setting them up.



About Neil Rickert

Mathematician and computer scientist who dabbles in cognitive science.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: