— DualBoot Archlinux/Windows7 Installation

Documentation of the process of installing archlinux and Windows 7 in a dual-boot configuration circa 2012.

System Specs

  • AMD X2 dual-core processor, running at 2.8 ghz, circa 2002
  • ASUS ATX motherboard
  • 2 gigs of ram
  • 100gb drive
  • nvidia gtx 550 ti graphics card
  • linksys wmp54g wireless pci network card
  • 550w power supply

Installing Windows

Windows was installed from a USB stick using Microsoft’s Windows 7 USB/DVD tool. It’s required to create this key from a Windows 7 system. Boot with the USB drive, then install Windows on the drive in a single partition. Windows also creates a System Reserved partition for itself. Once installed, via Start Menu > Administrative Tools > Computer Management > Disk Manamagent, select ‘Shrink Partition’ on the main Windows parition to create another partition for Arch. The default value for the shrink is 50%, so for my setup the value for the new disk size was ~50GB, which was ideal.

Note about this install. I have an old Linksys (Cysco) WMP54G Wireless PCI Card. Drivers from Linksys/Cysco’s website didn’t work, but following this blog post, the generic RALink drivers worked great.

Installing Archlinux

I downloading the Core Image via torrent from http://www.archlinux.org/download/. This ISO includes all core packages so the system doesn’t need to be online to install.

Once downloaded, I followed the notes on how to create a bootable ISO onto another USB drive with yet another machine. There are also numerous free tools available to make a bootable ISO on Windows. After booting into Arch with the USB stick, boot into Arch, and type:

/arch/setup

The installation article on the archwiki is an excellent resource.

Disk Partitions

It’s pretty straight forward until the drive partitions. My 100GB drive can only support 4 logical partitions, so the rest have to be Logical. Note: The numbers are out of order, because I used Logical partitions for everything except for the Windows partitions and /home. Logical partitions end up being counted last in the partition table, but I made my /home folder LAST so I could use the up the remaining space on the drive. You’ll also need to set the /boot partition’s ‘bootable’ flag to true.

- sda1
	Windows 7 System Reserved
- sda2
	Windows 7
- sda5
	/boot - 100MB is enough
- sda6
	/ - about 25GB is appropriate
- sda7
	swap - between 1024MB and 4096MB
- sda4
	/home - use rest of hard drive

Some of these, namely boot, swap, and home, are optional.

Select Packages

At minimum, you’ll need the core packages that are already selected. I also included certain key packages such as OpenSSH. Basically, include any packages you need for internet connectivity, as everything else will be updated from the net.

Configure System

Configure system does multiple things, including setting the root password, network settings, and some other configuration tools. Here’s a reference of where Arch installs all the base config files for the system.

/etc/rc.conf                    # system config
/etc/fstab                      # filesystem mountpoints
/etc/mkinitcpio.conf            # initramfs config
/etc/modprobe.d/modprobe.conf   # kernel modules
/etc/resolv.conf                # dns servers
/etc/hosts                      # network hosts
/etc/locale.get                 # glibc locals
/etc/pacman.conf                # pacman.confg
/etc/pacman.d/mirrorlist        # pacman mirror list

You should edit any of these files that are specific to your system. At minimum I enabled my network card in rc.conf.

You’ll also need to enable at least one mirror in pacman.d/mirrorlist if you plan to update the system or download new packages.

Bootloader

Install Bootloader will install and help you configure the bootloader you selected in the Select Packages stage (GRUB, in my case). After double-checking your bootloader configuration, you’ll be prompted for a disk to install the loader to. You should install GRUB to the MBR of the installation disk, in this case sda1.

Finalizing Installation

Once installed, exit the installer, remove the USB, type reboot in the command line, and the system will reboot. You’ll boot into a login screen, which you can login with via root.

You can create new users interactively with useradd.

You can install/update packages with Arch’s package manager, pacman.

Before installing any packages, sync the package list with:

pacman --sync --refresh

To add a new package (vim, in this case), type:

pacman -S vim

next: getting node and a webserver installed.