This will use GPT partitions and GRUB2 on a BIOS enabled PC (see Wiki for EFI). The Installation Guide can be found at /root/install.txt.
Get 2012.08.04 image or later from http://www.archlinux.org/download. Following tutorial requires at least 2011.07.15 image.
dd if=/dev/zero of=/dev/sdx bs=1k count=1
dd if=archlinux-2012.08.04-dual.iso of=/dev/sdx
Replace sdx by your thumbdrive reference.
Boot & select x86_64 (or i686 if you want to stay with i686 architecture, max. 3GB SRAM)
loadkeys fr
2012.08.04 image automatically starts the network and get an IP address via DHCP so the following step is not required.
Assuming you are on ethernet with a DHCP server.
dhcpcd
gdisk /dev/sda
Remove old partitions then create the following partitions:
- 2MB, type EF02 (BIOS partition). This is used by GRUB2/BIOS-GPT.
- 100MB, type 0800 (Linux). This will store /boot (/dev/sda2)
- 4GB, type XXX (swap). This is our swap partition. (/dev/sda3)
- Remaining space, type 0800 (Linux). Store both / and /home. (/dev/sda4). You can have a separate /home if you prefer.
mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4
mkswap /dev/sda3 && swapon /dev/sda3
mount /dev/sda4 /mnt
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot
ftp.archlinux.org is throttled to 50KB/s.
Before installing, you may want to edit /etc/pacman.d/mirrorlist such that your preferred mirror is first. This copy of the mirrorlist will be installed on your new system by pacstrap as well, so it's worth getting it right.
pacstrap /mnt base base-devel
Folllowing will install GRUB2. If you want EFI please refer to Wiki.
pacstrap /mnt grub-bios
Generate an fstab with the following command (if you prefer to use UUIDs or labels, add the -U or -L option, respectively):
genfstab -p /mnt >> /mnt/etc/fstab
Edit and correct /mnt/etc/fstab so it shows the right disk ID for the swap partition (it was wrongly empty on mine).
arch-chroot /mnt
Set a root password with:
passwd
Add your hostname in /etc/hostname.
<file - /etc/hostname> myhostname
Set it to your liking. This is the name of your computer.
Add also your hostname in /etc/hosts, coinciding with the one specified in /etc/hostname as an alias, so that it looks like this:
<file - /etc/hosts> 127.0.0.1 localhost.localdomain localhost myhostname ::1 localhost.localdomain localhost myhostname
Note: ::1 is the IPv6 equivalent of 127.0.0.1
Set keymap and font name in /etc/vconsole.conf.
<file - /etc/vconsole.conf> KEYMAP=fr FONT= FONT_MAP=
KEYMAP The available keymaps are in /usr/share/kbd/keymaps. Please note that this setting is only valid for your TTYs, not any graphical window managers or X. FONT Available alternate console fonts reside in /usr/share/kbd/consolefonts/. The default (blank) is safe. FONT_MAP Defines the console map to load with the setfont program at boot. Possible maps are found in /usr/share/kbd/consoletrans, if needed. The default (blank) is safe.
Edit the file /etc/timezone and write your Zone/Subzone. Available time zones and subzones can be found in the /usr/share/zoneinfo// directories. Example: <file - /etc/timezone> Europe/Paris
Additionaly, create a symbolic link /etc/localtime to the same /usr/share/zoneinfo// using this command:
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
Edit /etc/locale.gen and uncomment:
<file - /etc/locale.gen> en_US.UTF-8 UTF-8 fr_FR.UTF-8 UTF-8 fr_FR ISO-8859-15 fr_FR@euro ISO-8859-15
locale-gen
Add your language to /etc/locale.conf. <file - /etc/locale.conf> LANG=fr_FR.UTF-8
LC_COLLATE="C"
We will be adding keymap to mkinicpio.conf therefore we need to environment variable LANG.
export LANG=fr_FR.UTF-8
When using UTC launch the following command:
hwclock --systohc --utc
If not using DHCP or network manager, please see wiki for rc.conf configuration.
Add keymap to kernel for non-US keyboard on boot.
Edit /etc/mkinitcpio.conf and insert "keymap" after "sata" (no quote required).
mkinitcpio -p linux
grub-install /dev/sda
To prevent a (harmless) error message at boot time execute:
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
grub-mkconfig -o /boot/grub/grub.cfg
If you are still in the chroot environment then type exit or Ctrl+D in order to exit chroot. Since the partitions are mounted under /mnt, we use the following command to unmount them.
umount /mnt/boot
umount /mnt
Execute the following command and remove the installation media.
reboot
Can stay in rc.conf Alternatively, you may remove the /etc/rc.conf file entirely and enable services in systemd (see wiki).
Tip: Normally all needed modules are automatically loaded by udev, so you will rarely need to add something here. Only add modules that you know are missing.
Edit /etc/modules-load.d/ to configure kernel modules to load during boot in a static list. Each configuration file is named in the style of /etc/modules-load.d/.conf. The configuration files should simply contain a list of kernel module names to load, separated by newlines. Empty lines and lines whose first non-whitespace character is # or ; are ignored. Example:
<file - /etc/modules-load.d/virtio-net.conf>
virtio-net
/etc/mkinitcpio.conf no longer has the word "sata". I assume placing "keymap" after "block" should do the trick.