Difference between revisions of "Arch Linux"

From PrgmrWiki
(added some configuration sections from previous edits)
Line 1: Line 1:
 
===Fresh Install===
 
===Fresh Install===
 
+
You will need at least 1GiB of ram to use the Arch netboot installer.  If you want to copy an existing installation from another location, please <todo> FOLLOW THESE INSTRUCTIONS </todo> on how to do so.
 
====Initial setup====
 
====Initial setup====
This guide assumes that you have installed archlinux before, either on a KVM vps or locally. This guide requires you to install archlinux locally, preferably using [https://www.virtualbox.org/ virtualbox].
+
WARNING: this will delete all your data!<br>
 
+
=====Quick start=====
First grab the latest and greatest archlinux iso from the archlinux [http://www.archlinux.org/download/ website].
 
* Open up virtualbox, and create a vm for archlinux.
 
* Make the disk image 1GB, that's all you should need.
 
* Boot it up, and follow the [https://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide official installation guide]. Please read the following sub-points before starting the installation:
 
** Only make a single ext3 partition for everything. <tt># mkfs.ext3 /dev/sda1</tt>
 
** You will need a linux kernel that includes xen drivers. If you trust me, you can use this pre-built x86 kernel (3.5.4): [http://kbar.pro/files/linux/vmlinuz-3.5.4 md5sum: 4d00f77b2a4c5e2c565a7ee9e5796e26]. [http://kbar.pro/files/linux/config Here] is the .config I used to build the kernel.
 
** You may wish to install [http://www.archlinux.org/packages/core/i686/systemd-sysvcompat/ systemd-sysvcompat] to get systemd working.
 
* Before you complete the installation as per the [https://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide official guide], clear out <tt>/var/cache/pacman/pkg</tt> to save on bandwidth + disk space.
 
* Unmount the disk as per the official guide.
 
* Boot your prgmr domU into <code>CentOS 5.5 rescue (2.6.18-194.3.1.el5xen)</code> from pvgrub, and Log in as <tt>root</tt>
 
** Set up partitions. This guide will use one partition, starting with a blank disk for simplicity.
 
<pre>
 
[root@host ~]# dd if=/dev/zero of=/dev/xvda # (optional) wipes all your data
 
[root@host ~]# parted /dev/xvda
 
GNU Parted 1.8.1
 
Using /dev/xvda
 
Welcome to GNU Parted! Type 'help' to view a list of commands.
 
(parted) mklabel msdos
 
(parted) mkpart primary 0% 100%
 
(parted) quit
 
</pre>
 
** Make your one partition, but don't mount it yet:
 
<pre>[root@host ~]# mkfs.ext3 -L ARCHLINUX /dev/xvda1</pre>
 
** Transfer over installed archlinux filesystem using archlinux install media running on your local virtualbox. Here's where it gets kinda interesting, and you may or may not want to do it the way I'm doing it here.
 
*** Since the rescue shell is mounted read-only, you'll need to do some work to get sshd running. First, copy your pubkey into /tmp/authorized_keys.
 
*** Then launch sshd, making sure you don't enter a password when ssh-keygen prompts for a passphrase:
 
<pre>
 
# wget -O /tmp/sshd_config http://kbar.pro/files/linux/sshd_config_rescue
 
# ssh-keygen -f /tmp/ssh_host_rsa_key
 
# /usr/sbin/sshd -f /tmp/sshd_config
 
</pre>
 
*** Now you can ssh into the rescue image! Use the install media running on your local virtualbox to copy over your installed filesystem:
 
<pre>
 
# dd if=/dev/sda1 | ssh root@your.prgmr.ip.here "dd of=/dev/xvda1"
 
</pre>
 
*** After the copying has finished, you should some output that confirms completion.
 
 
 
** Now mount the filesystem on your vps:
 
<pre>
 
# mount -n /dev/xvda1 /mnt
 
# cd /mnt
 
</pre>
 
 
 
====Configuration====
 
 
 
If you installed to somewhere other than <code>/dev/xvda1</code>, you will need to edit <code>boot/grub/menu.lst</code> to reflect the changes.
 
 
 
** Drop this into <tt>/boot/grub/menu.lst</tt>
 
<pre>
 
timeout 5
 
 
 
title          3.5.4-x86
 
root            (hd0,0)
 
kernel          /boot/vmlinuz-3.5.4 root=/dev/xvda ro console=hvc0
 
</pre>
 
** Grab the kernel from earlier in this guide and put it in <tt>/boot/</tt>
 
** Edit <tt>etc/fstab</tt> to look something like this:
 
<pre>
 
#
 
# /etc/fstab: static file system information
 
#
 
# <file system> <dir>  <type>  <options>      <dump>  <pass>
 
devpts                /dev/pts      devpts    defaults            0      0
 
shm                    /dev/shm      tmpfs    nodev,nosuid        0      0
 
 
 
/dev/xvda1      /      ext3    defaults,noatime 0 1
 
</pre>
 
** Comment the following lines in <tt>etc/inttab</tt>:
 
<pre>
 
#c1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linux
 
#c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
 
#c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
 
#c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
 
#c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
 
#c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux
 
</pre>
 
** Uncomment or add the following line in <tt>etc/inittab</tt>:
 
<pre>h0:2345:respawn:/sbin/agetty -8 -s 38400 hvc0 linux</pre>
 
 
 
** Get the configuration details for a working network:
 
*** Note the <tt>inet addr</tt> and <tt>mask</tt> in the output of <code>ifconfig eth0</code>
 
*** Note the IP in the <tt>gateway</tt> column in the output of <code>route</code>
 
*** Note the <tt>search</tt> and <tt>nameserver</tt> outputs of <code>cat /etc/resolv.conf</code>
 
 
 
** This is all you need to know to configure Arch to connect to the internet.
 
** Reboot into Arch after taking note of the information.
 
<pre>
 
# shutdown -r now
 
</pre>
 
 
 
** Login as root and set the root password.
 
<pre>
 
Arch Linux 2.6.37-xen  ((none)) (hvc0)
 
(none) login: root
 
[root@(none) ~]# passwd
 
</pre>
 
 
 
=====Network=====
 
* Edit <code>/etc/resolv.conf</code> to look like what you wrote down.
 
 
 
* Fill in the blanks of <code>/etc/rc.conf</code> to include your hostname, interface, address, netmask, broadcast, and gateway. Your hostname can be whatever you like. Your interface is <tt>eth0</tt>.
 
 
 
=====Extra/SSH=====
 
 
 
Add a user, add your public key, enable ssh privilege separation, and allow ssh connections.
 
<pre>
 
# adduser kino
 
 
 
# mkdir ~kino/.ssh
 
# echo "paste public key" > ~kino/.ssh/authorized_keys
 
# chown -R kino:users ~kino
 
# chmod 700 ~kino/.ssh
 
# chmod 600 ~kino/.ssh/authorized_keys
 
 
 
# echo "nobody:x:99:99:Nobody:/:/sbin/nologin" >> /etc/passwd
 
 
 
# echo "sshd: ALL" >> /etc/hosts.allow
 
</pre>
 
 
 
Add sshd to the startup daemons list.
 
 
<pre>
 
<pre>
# vim /etc/rc.conf +/DAEMONS=
+
echo -e 'o\nn\np\n1\n2048\n+256M\nn\np\n2\n\n\nw' | fdisk -u /dev/xvda
 +
mkfs.ext3 -L BOOT /dev/xvda1
 +
mount /dev/xvda1 /mnt
 +
tar xvf /distros/arch*.tar.gz -C /mnt
 +
reboot
 
</pre>
 
</pre>
 
+
=====Details=====
If you don't want to reboot, use your new hostname and start ssh.
+
Partition /dev/xvda to have at least two partitions.  /dev/xvda1 will be boot and should have at least 256MB.  You can complete partitioning now or use the Arch linux installation one later. A graphical partitioner can be used with:
 
<pre>
 
<pre>
# hostname tabi
+
root@rescue:~# cfdisk /dev/xvda
# rc.d start sshd
 
 
</pre>
 
</pre>
 
+
Next format the partition:
Now you should be good to go!
 
 
 
===Pre-made tarball===
 
 
 
====Initial setup====
 
Setup is nearly identical to [[Untarring a fresh OS image]].
 
This guide will have some extra bloat just to keep everything in one place.
 
 
 
Boot into <code>CentOS 5.5 rescue (2.6.18-194.3.1.el5xen)</code> from pvgrub, and Log in as <tt>root</tt>.
 
 
 
Set up partitons. This guide will use one partition, starting with a blank disk for simplicity.
 
 
<pre>
 
<pre>
[root@host ~]# dd if=/dev/zero of=/dev/xvda # (optional) wipes all your data
+
root@rescue:~# mkfs.ext3 -L BOOT /dev/xvda1
[root@host ~]# parted /dev/xvda
 
GNU Parted 1.8.1
 
Using /dev/xvda
 
Welcome to GNU Parted! Type 'help' to view a list of commands.
 
(parted) mklabel msdos
 
(parted) mkpart primary 0% 100%
 
(parted) quit
 
 
</pre>
 
</pre>
 
+
Mount:
Make a filesystem, mount it, and enter it.
 
 
<pre>
 
<pre>
# mkfs.ext3 -L ARCHLINUX /dev/xvda1
+
mount /dev/xvda1 /mnt
# mount -n /dev/xvda1 /mnt
 
# cd /mnt
 
 
</pre>
 
</pre>
 
+
Extract the installer
Download and extract Arch.
 
{|border="1"
 
|File
 
|ArchLinuxBase-i686.tar.gz
 
|ArchLinuxBase-x86_64.tar.gz
 
|-
 
|Download
 
|257 MiB
 
|320 MiB
 
|-
 
|Install
 
|470 MiB
 
|592 MiB
 
|}
 
 
<pre>
 
<pre>
# wget http://dl.dropbox.com/u/34148684/ArchLinuxBase-i686.tar.gz
+
tar xvf /distros/arch*.tar.gz -C /mnt
# wget http://dl.dropbox.com/u/34148684/ArchLinuxBase-x86_64.tar.gz
 
# tar -zxf ArchLinuxBase*
 
 
</pre>
 
</pre>
Don't restart yet.
+
And reboot. On the next boot, for the "user bootloader configuration" the arch linux installer will be loaded.
 
 
====Configuration====
 
 
 
If you installed to somewhere other than <code>/dev/xvda1</code>, you will need to edit <code>boot/grub/menu.lst</code> to reflect the changes.
 
  
Get the configuration details for a working network:
+
====Installation====
Note the <tt>inet addr</tt> and <tt>mask</tt> in the output of <code>ifconfig eth0</code>
+
Procede through 0, 1, and 2 as normal.  For 3 "Prepare storage device" use the following selections:<br>
Note the IP in the <tt>gateway</tt> column in the output of <code>route</code>
+
2. Partition storage drives<br>
Note the <tt>search</tt> and <tt>nameserver</tt> outputs of <code>cat /etc/resolv.conf</code>
+
No - do not use GUID partition table<br>
 
+
Select "/dev/xvda" as device to partition - /dev/xvde and /dev/xvdf are read-only<br>
This is all you need to know to configure Arch to connect to the internet.
+
In parted, leave partition "1" as is to be /boot and partition otherwise as you see fit - a sane default is to have partition 2 be the rest of the disk<br>
Reboot into Arch after taking note of the information.
+
Select "DONE" when done with parted to go back to main "Prepare storage device" menu<br>
 +
Under "4 Set Filesystem Mountpoints" - select optional swap partition, select root partition, and then select "/dev/xvda1" as an additional partition to mount as "/boot"<br>
 +
Select "ext3" as the filesystem for "/dev/xvda1"<br>
 +
Select "No" for "Would you like to create a filesystem on /dev/xvda1?"<br>
 +
Select "Done"
 +
Your final selections should resemble:
 
<pre>
 
<pre>
# shutdown -r now
+
      ┌────────────────────────────────────────────────────────────────┐
 +
      │ Would you like to create and mount the filesytems like this?  │
 +
      │                                                                │
 +
      │ Syntax                                                        │
 +
      │ ------                                                        │
 +
      │ DEVICE:TYPE:MOUNTPOINT:FORMAT:LABEL:FSOPTIONS:BTRFS_DETAILS    │
 +
      │                                                                │
 +
      │ /dev/xvda2:ext3:/:yes:ROOT:NONE:NONE:NONE:NONE:no:            │
 +
      │ /dev/xvda1:ext3:/boot:no:BOOT:NONE:NONE:NONE:NONE:no:          │
 +
      ├────────────────────────────────────────────────────────────────┤
 +
      │                  < Yes >          < No  >                    │
 +
      └────────────────────────────────────────────────────────────────┘
 
</pre>
 
</pre>
 
+
On the main menu, under "4 Select Source", choose "2 NETWORK"<br>
Login as root and set the root password.
+
For a mirror, I suggest "http://mirrors.xmission.com" which is 4th from the bottom if you scroll to the end.<br>
 +
Proceed as normal until "7 Configure System"<br>
 +
In "7 Configure System", select "/etc/pacman.d/mirrorlist" and uncomment a mirror. Otherwise configure as desired.<br>
 +
For "8 Install Bootloader" select "BIOS" and then "GRUB(2) BIOS".  Note we aren't actually going to use grub2, we are just going to use the grub2 configuration as a starting point.<br>
 +
Select "/dev/xvda" as the install point. Do not customize grub.cfg.<br>
 +
Select "no" when asked "Do you want to install another bootloader>" <br>
 +
Select "9 Exit install" <br>
 +
From here, at the shell prompt run:
 
<pre>
 
<pre>
Arch Linux 2.6.37-xen  ((none)) (hvc0)
 
(none) login: root
 
[root@(none) ~]# passwd
 
</pre>
 
 
Note: nano is installed.
 
=====Network=====
 
Edit <code>/etc/resolv.conf</code> to look like what you wrote down.
 
 
Fill in the blanks of <code>/etc/rc.conf</code> to include your hostname, interface, address, netmask, broadcast, and gateway. Your hostname can be whatever you like. Your interface is <tt>eth0</tt>.
 
  
Append the hostname you chose to the line with 127.0.0.1 in <code>/etc/hosts</code>
+
cp /etc/resolv.conf /install/etc
 +
mount --bind /proc /install/proc
 +
mount --bind /sys /install/sys
 +
mount --bind /dev /install/dev
 +
chroot /install /bin/sh
  
=====General=====
+
pacman -Syy
 
 
Uncomment your preferred locale in <code>/etc/locale.gen</code> (en_US.UTF-8 uncommented in x86_64 tarball)
 
 
 
Set the same locale in <code>/etc/rc.conf</code>
 
 
 
Apply the locale with <code>locale-gen</code>
 
 
 
=====Extra/SSH=====
 
 
 
Add a user, add your public key, enable ssh privilege separation, and allow ssh connections.
 
<pre>
 
# adduser kino
 
 
 
# mkdir ~kino/.ssh
 
# echo "paste public key" > ~kino/.ssh/authorized_keys
 
# chown -R kino:users ~kino
 
# chmod 700 ~kino/.ssh
 
# chmod 600 ~kino/.ssh/authorized_keys
 
 
 
# echo "nobody:x:99:99:Nobody:/:/sbin/nologin" >> /etc/passwd
 
 
 
# echo "sshd: ALL" >> /etc/hosts.allow
 
 
</pre>
 
</pre>
 
+
If at this step you get an error, verify in /etc/pacman.d/mirrorlist that a mirror is uncommented and try again.
Add sshd to the startup daemons list.
+
Then continuing:
 
<pre>
 
<pre>
# vim /etc/rc.conf +/DAEMONS=
+
pacman -S python2
 +
cp /boot/grub/menu.lst /boot/grub/menu.lst.old
 +
cat /boot/grub/grub.cfg | /boot/prgmr-grub2-to-pv-grub-menu  > /boot/grub/menu.lst
 
</pre>
 
</pre>
 
+
At this point, /boot/grub/menu.lst should look like the following:
If you don't want to reboot, use your new hostname and start ssh.
 
 
<pre>
 
<pre>
# hostname tabi
+
default=0
# rc.d start sshd
+
timeout=10
</pre>
+
title Arch Linux
 +
  root (hd0,0)
 +
  kernel /vmlinuz-linux root=LABEL=ROOT rootfstype=ext3 rw rootflags=rw,relatime,data=ordered cgroup_disable=memory
 +
  initrd /initramfs-linux.img
  
Done.
+
title Arch Linux Fallback
 
+
  root (hd0,0)
===Bootstrap script===
+
  kernel /vmlinuz-linux root=LABEL=ROOT rootfstype=ext3 rw rootflags=rw,relatime,data=ordered cgroup_disable=memory
 
+
  initrd /initramfs-linux-fallback.img
====Initial setup====
 
 
 
Reboot your VPS and select the CentOS rescue image.
 
 
 
If you don't want to set up partitions (I didn't), just go ahead and make it ext3.
 
 
 
<pre>
 
# mkfs.ext3 /dev/xvda1
 
 
</pre>
 
</pre>
 
+
Note the prgmr-grub2-to-pv-grub-menu script is only a partial implementation of a conversion from the grub2 to legacy grub format and may fail, so you should always back up the original /boot/grub/menu.lst before generating a new one. If you are satisfied, then run "exit" to exit the chroot and then reboot.
Mount the drive into /mnt
 
 
 
<pre>
 
# mount -n /dev/xvda1 /mnt
 
# cd /mnt
 
</pre>
 
 
 
Download the install script and run it!
 
 
 
<pre>
 
# wget http://calimeroteknik.free.fr/arch-guide/install-chroot.sh
 
# chmod +x install-chroot.sh
 
# ./install-chroot.sh
 
</pre>
 
 
 
When prompted give the following answers.
 
 
 
Installation Directory: /mnt
 
 
 
Architecture: Your choice (32 or 64 bit)
 
 
 
Download Mirror: arm.konnichi.com/2010/12/29/
 
 
 
Using this old mirror is necessary due to the old kernel version of the CentOS rescue image (2.6.18).
 
Once the install script is complete a full system upgrade can be done using "pacman -Syu".
 
 
 
====Configuration====
 
 
 
The install script chroots for you. After entering the root password for your new system, you need to configure your Arch.
 
Specify DNS servers in /etc/resolv.conf. An example, using prgmr nameservers:
 
 
 
<pre>
 
domain xen.prgmr.com
 
search xen.prgmr.com
 
nameserver 216.218.223.67
 
nameserver 38.99.2.224
 
</pre>
 
 
 
Uncomment the desired locale in /etc/locale.gen then run locale-gen. The default is en_US.UTF-8 as seen in /etc/rc.conf.
 
An example /etc/locale.gen:
 
 
 
<pre>
 
en_US.UTF-8 UTF-8 
 
en_US ISO-8859-1
 
</pre>
 
 
 
Add your / partition to /etc/fstab. Get your UUID from ls -l /dev/disk/by-uuid/. An example /etc/fstab:
 
 
 
<pre>
 
# <file system>        <dir>        <type>    <options>          <dump> <pass>
 
devpts                /dev/pts      devpts    defaults            0      0
 
shm                    /dev/shm      tmpfs    nodev,nosuid        0      0
 
 
 
UUID=185c4489-6eec-4b72-a479-c4cc207e7413 / ext3 defaults,noatime 0 1
 
</pre>
 
 
 
Remove the default kernel, as we're installing the Xen one.
 
 
 
<pre>
 
# pacman -Rsdn kernel26
 
</pre>
 
 
 
To build the Xen kernel, you'll need to install the make, gcc, and patch packages from the repositories.
 
We'll also need xmlto and docbook-xsl as dependencies to the PKGBUILD.
 
 
 
<pre>
 
# pacman -S make gcc patch xmlto docbook-xsl
 
</pre>
 
 
 
Download and untar the latest tarball of the kernel26-xen package.
 
 
 
<pre>
 
# wget http://aur.archlinux.org/packages/kernel26-xen/kernel26-xen.tar.gz
 
# tar -xf kernel26-xen.tar.gz
 
# cd kernel26-xen
 
</pre>
 
 
 
You'll need to uncomment the following line from the PKGBUILD file.
 
 
 
<pre>
 
#pkgname=('kernel26-xen' 'kernel26-xen-headers') # Build kernel with a different name
 
</pre>
 
 
 
Build the package. This step will take a while, so grab some coffee and a scone.
 
 
 
<pre>
 
# makepkg --asroot
 
</pre>
 
 
 
<blockquote>
 
If makepkg complains about extracting, then do it yourself for both, linux and patch archives and move them to src/. Then try makepkg again with no extract flag:
 
 
 
<pre>
 
# makepkg --asroot -e
 
</pre>
 
</blockquote>
 
 
 
Install the packages you just built:
 
 
 
<pre>
 
# pacman -U kernel26-xen-VERSION-x86_64.pkg.tar.gz
 
# pacman -U kernel26-xen-headers-VERSION-x86_64.pkg.tar.gz
 
</pre>
 
 
 
Add the following xen modules to your initcpio by appending the following to MODULES in /etc/mkinitcpio.conf: "xen-blkfront xen-fbfront xenfs xen-netfront xen-kbdfront" and rebuild your initcpio:
 
 
 
<pre>
 
mkinitcpio -p kernel26-xen
 
</pre>
 
 
 
Install grub
 
 
 
<pre>
 
pacman -S grub
 
</pre>
 
 
 
Edit boot/grub/menu.lst and fill it with the following:
 
 
 
<pre>
 
timeout 5
 
default 0
 
 
 
# (0) Arch Linux
 
title Arch Linux
 
root  (hd0,0)
 
kernel /boot/vmlinuz26-xen root=/dev/xvda1 ro console=hvc0
 
initrd /boot/kernel26-xen.img
 
</pre>
 
 
 
Edit /etc/inittab and remove/comment these
 
 
 
<pre>
 
# -8 options fixes umlauts problem on login
 
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
 
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
 
c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
 
c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
 
c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
 
c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux
 
</pre>
 
 
 
Uncomment this
 
 
 
<pre>
 
# Hypervisor Virtual Console for Xen and KVM
 
# h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linux
 
</pre>
 
 
 
To avoid hwclock error messages, set HARDWARECLOCK="xen" in /etc/rc.conf (actually you can use any value here except "UTC" and "localtime")
 
 
 
Install SSH and configure it (http://wiki.archlinux.org/index.php/SSH)
 
 
 
<pre>
 
# pacman -S openssh
 
</pre>
 
 
 
Reboot your VPS and you should be good to go!
 
  
 
{{u}} {{distros}}
 
{{u}} {{distros}}

Revision as of 17:29, 18 October 2014

Fresh Install

You will need at least 1GiB of ram to use the Arch netboot installer. If you want to copy an existing installation from another location, please <todo> FOLLOW THESE INSTRUCTIONS </todo> on how to do so.

Initial setup

WARNING: this will delete all your data!

Quick start
echo -e 'o\nn\np\n1\n2048\n+256M\nn\np\n2\n\n\nw' | fdisk -u /dev/xvda
mkfs.ext3 -L BOOT /dev/xvda1
mount /dev/xvda1 /mnt
tar xvf /distros/arch*.tar.gz -C /mnt
reboot
Details

Partition /dev/xvda to have at least two partitions. /dev/xvda1 will be boot and should have at least 256MB. You can complete partitioning now or use the Arch linux installation one later. A graphical partitioner can be used with:

root@rescue:~# cfdisk /dev/xvda

Next format the partition:

root@rescue:~# mkfs.ext3 -L BOOT /dev/xvda1

Mount:

mount /dev/xvda1 /mnt

Extract the installer

tar xvf /distros/arch*.tar.gz -C /mnt

And reboot. On the next boot, for the "user bootloader configuration" the arch linux installer will be loaded.

Installation

Procede through 0, 1, and 2 as normal. For 3 "Prepare storage device" use the following selections:
2. Partition storage drives
No - do not use GUID partition table
Select "/dev/xvda" as device to partition - /dev/xvde and /dev/xvdf are read-only
In parted, leave partition "1" as is to be /boot and partition otherwise as you see fit - a sane default is to have partition 2 be the rest of the disk
Select "DONE" when done with parted to go back to main "Prepare storage device" menu
Under "4 Set Filesystem Mountpoints" - select optional swap partition, select root partition, and then select "/dev/xvda1" as an additional partition to mount as "/boot"
Select "ext3" as the filesystem for "/dev/xvda1"
Select "No" for "Would you like to create a filesystem on /dev/xvda1?"
Select "Done" Your final selections should resemble:

       ┌────────────────────────────────────────────────────────────────┐
       │ Would you like to create and mount the filesytems like this?   │
       │                                                                │
       │ Syntax                                                         │
       │ ------                                                         │
       │ DEVICE:TYPE:MOUNTPOINT:FORMAT:LABEL:FSOPTIONS:BTRFS_DETAILS    │
       │                                                                │
       │ /dev/xvda2:ext3:/:yes:ROOT:NONE:NONE:NONE:NONE:no:             │
       │ /dev/xvda1:ext3:/boot:no:BOOT:NONE:NONE:NONE:NONE:no:          │
       ├────────────────────────────────────────────────────────────────┤
       │                   < Yes >          < No  >                     │
       └────────────────────────────────────────────────────────────────┘

On the main menu, under "4 Select Source", choose "2 NETWORK"
For a mirror, I suggest "http://mirrors.xmission.com" which is 4th from the bottom if you scroll to the end.
Proceed as normal until "7 Configure System"
In "7 Configure System", select "/etc/pacman.d/mirrorlist" and uncomment a mirror. Otherwise configure as desired.
For "8 Install Bootloader" select "BIOS" and then "GRUB(2) BIOS". Note we aren't actually going to use grub2, we are just going to use the grub2 configuration as a starting point.
Select "/dev/xvda" as the install point. Do not customize grub.cfg.
Select "no" when asked "Do you want to install another bootloader>"
Select "9 Exit install"
From here, at the shell prompt run:


cp /etc/resolv.conf /install/etc
mount --bind /proc /install/proc
mount --bind /sys /install/sys
mount --bind /dev /install/dev
chroot /install /bin/sh

pacman -Syy

If at this step you get an error, verify in /etc/pacman.d/mirrorlist that a mirror is uncommented and try again. Then continuing:

pacman -S python2
cp /boot/grub/menu.lst /boot/grub/menu.lst.old
cat /boot/grub/grub.cfg | /boot/prgmr-grub2-to-pv-grub-menu  > /boot/grub/menu.lst

At this point, /boot/grub/menu.lst should look like the following:

default=0
timeout=10
title Arch Linux
  root (hd0,0)
  kernel /vmlinuz-linux root=LABEL=ROOT rootfstype=ext3 rw rootflags=rw,relatime,data=ordered cgroup_disable=memory
  initrd /initramfs-linux.img

title Arch Linux Fallback
  root (hd0,0)
  kernel /vmlinuz-linux root=LABEL=ROOT rootfstype=ext3 rw rootflags=rw,relatime,data=ordered cgroup_disable=memory
  initrd /initramfs-linux-fallback.img

Note the prgmr-grub2-to-pv-grub-menu script is only a partial implementation of a conversion from the grub2 to legacy grub format and may fail, so you should always back up the original /boot/grub/menu.lst before generating a new one. If you are satisfied, then run "exit" to exit the chroot and then reboot.