Installing Arch Linux

From BitFolk
Jump to navigation Jump to search

This article describes how to go about installing Arch Linux on a BitFolk VPS.

Overview

Arch Linux (or Arch) is a Linux-based operating system for i686 and x86-64 computers. It is composed predominantly of free and open source software, and supports community involvement.

Arch Linux at Wikipedia

Unlike other Linux distributions such as Debian or CentOS, Arch Linux doesn't have a bootable installer as such. Instead it is normally installed by booting a live environment and then running scripts to configure a chroot. Therefore instead of booting an installer image from the Xen Shell, the procedure for installing Arch is easier initiated from the rescue VPS.

The rescue VPS is a fully-functional Linux environment in its own right, although its storage is somewhat limited. Nevertheless, the base Arch Linux install quite easily fits within the capacity of the smallest VPS package's swap disk (typically xvdb1), so this can be used for initial storage while installing onto the main disk (typically xvda1).

Support status

Arch Linux isn't listed amongst the Linux distributions that BitFolk typically supports because we lack experience of running it on a day-to-day basis.

When customers encounter problems with their VPSes it can often help if BitFolk support can offer advice and reassurance that whatever problem they are encountering is not related to the virtualization technology in use.

Despite the fact that BitFolk VPSes are unmanaged — meaning that they are only suitable for experienced Linux administrators (or those willing to put the time in to gain experience) — without this in-depth understanding of how Arch Linux works we feel we cannot promise the usual level of support and advice.

We do not believe that there is any reason why an experienced administrator of Arch Linux cannot use Arch on BitFolk just as well as any other Linux distribution, however.

That also means that this article is just a first attempt, by someone who is not an experienced Arch Linux admin, to do an install. It may not be the best way to achieve the goal. Improvements are welcomed.

Preparation

Before proceeding you should check that you are able to:

You should also be ready to completely overwrite your existing VPS install.

As long as all of the above is the case then you should be able to install Arch Linux without requiring any assistance from support.

Installation procedure

Partitioning

The default disk layout for a BitFolk VPS is two disks (xvda and xvdb), the first of which will be the size of the requested disk space and the second of which will be equal to the size of the memory of the VPS.

Both disks will have a single partition spanning the whole disk.

The first partition of the first disk (xvda1) will be used for the root file system and the corresponding first partition on the second disk (xvdb1) will be used for swap.

At the moment booting must take place from an ext3 file system so the default at BitFolk is to have xvda1 be ext3.

If other file systems are desired then it is best to create (in the xen shell) one disk per file system and then use xvda1 as /boot and ext3. The other disks can be any other file system that your kernel supports.

This guide will focus on the usual case of just having a single disk formatted as ext3.

So, having logged in to the rescue environment, firstly partition your xvda and format the new file system:

user@rescue:~$ sudo -s
root@rescue:/home/user# fdisk -c /dev/xvda

Command (m for help): p

Disk /dev/xvda: 10.7 GB, 10737418240 bytes
107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000764fe

    Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 
Using default value 20971519

Command (m for help): p

Disk /dev/xvda: 10.7 GB, 10737418240 bytes
107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000764fe

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1            2048    20971519    10484736   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
[  134.218058]  xvda: xvda1
[  134.218767] blkfront: barrier: empty write xvda op failed
[  134.218774] blkfront: xvda: barrier or flush: disabled
Syncing disks.

It is normal to see the barrier write fail. Not all layers of the storage stack support file system barriers. We will disable them for our install.

root@rescue:/home/user# mkfs.ext3 -L root /dev/xvda1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=root
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

We will abuse what is normally the swap device for a bit of extra storage in which to temporarily place the Arch Linux installation environment. It only uses about 300MiB of disk space.

root@rescue:/home/user# fdisk -c /dev/xvdb

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-983039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-983039, default 983039): 
Using default value 983039

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
[  444.489674]  xvdb: xvdb1
[  444.490446] blkfront: barrier: empty write xvdb op failed
[  444.490462] blkfront: xvdb: barrier or flush: disabled
Syncing disks.
root@rescue:/home/user# mkfs.ext3 /dev/xvdb1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
122880 inodes, 490496 blocks
24524 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
60 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

Now mount the installer space onto /mnt:

root@rescue:/home/user# mount -obarrier=0 /dev/xvdb1 /mnt
[  562.247940] EXT3-fs: barriers not enabled
[  562.255785] kjournald starting.  Commit interval 5 seconds
[  562.268406] EXT3-fs (xvdb1): using internal journal
[  562.268418] EXT3-fs (xvdb1): mounted filesystem with ordered data mode

Unpack the bootstrap

Arch Linux provides a bootstrap archive that contains everything needed to run the install tools. You can download it from an Arch Linux mirror and unpack it to your install space:

root@rescue:/home/user# wget -O - http://www.mirrorservice.org/sites/ftp.archlinux.org/iso/2013.08.01/archlinux-bootstrap-2013.08.01-x86_64.tar.gz | tar -C /mnt -zxf -
--2013-09-01 02:13:26--  http://www.mirrorservice.org/sites/ftp.archlinux.org/iso/2013.08.01/archlinux-bootstrap-2013.08.01-x86_64.tar.gz
Resolving www.mirrorservice.org (www.mirrorservice.org)... 212.219.56.184
Connecting to www.mirrorservice.org (www.mirrorservice.org)|212.219.56.184|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89968015 (86M) [application/x-gzip]
Saving to: `STDOUT'

100%[======================================>] 89,968,015  4.36M/s   in 17s     

2013-09-01 02:13:43 (5.13 MB/s) - written to stdout [89968015/89968015]

The above command line used wget to download the bootstrap archive and pipe it to a tar command which directly unpacked it to our install space.

root@rescue:/home/user# df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdb1      464M  260M  181M  60% /mnt
root@rescue:/home/user# ls -la /mnt
total 14
drwxr-xr-x  4 root root  1024 Sep  1 02:13 .
drwxr-xr-x 30 root root   220 Sep  1 01:58 ..
drwx------  2 root root 12288 Sep  1 02:06 lost+found
drwxr-xr-x 16 root root  1024 Aug  1 08:20 root.x86_64

Edit the mirrorlist

The /mnt/root.x86_64/etc/pacman.d/mirrorlist file will have every mirror commented out. Edit it and uncomment a sensible UK mirror such as:

## United Kingdom
Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch

Obtain some entropy

One of the first things that the bootstrap script is going to do is use pacman-key to initialize the keyring, essential for verifying the integrity of the packages it will download. This requires entropy.

The rescue environment, being a virtual machine running from a RAM disk, doesn't have access to much entropy. We will need to provide it with some, otherwise pacman-key may never actually complete (I waited half an hour).

haveged is a convenient tool to inject some entropy into the system, so we'll install that in the rescue environment and run it.

root@rescue:/home/user# apt-get install haveged
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  haveged
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.5 kB of archives.
After this operation, 105 kB of additional disk space will be used.
Get:1 http://apt-cacher.lon.bitfolk.com/debian/ftp.uk.debian.org/debian/ wheezy/main haveged amd64 1.4-4 [29.5 kB]
Fetched 29.5 kB in 0s (281 kB/s)
Selecting previously unselected package haveged.
(Reading database ... 24410 files and directories currently installed.)
Unpacking haveged (from .../haveged_1.4-4_amd64.deb) ...
Processing triggers for man-db ...
Setting up haveged (1.4-4) ...
root@rescue:/home/user# haveged -w 1024

Run the bootstrap script

As per the upstream instructions the bootstrap script can now be run.

root@rescue:/home/user# /mnt/root.x86_64/bin/arch-chroot /mnt/root.x86_64/
sh-4.2# pacman-key --init
gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created
gpg: no ultimately trusted keys found
gpg: Generating pacman keyring master key...
gpg: key 8782D021 marked as ultimately trusted
gpg: Done
==> Updating trust database...
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
sh-4.2# pacman-key --populate archlinux
==> Appending keys from archlinux.gpg...
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
==> Locally signing trusted keys in keyring...
  -> Locally signing key 0E8B644079F599DFC1DDC3973348882F6AC6A4C2...
  -> Locally signing key 684148BB25B49E986A4944C55184252D824B18E8...
  -> Locally signing key 44D4A033AC140143927397D47EFD567D4C7EA887...
  -> Locally signing key 27FFC4769E19F096D41D9265A04F9397CDFD6BB0...
  -> Locally signing key AB19265E5D7D20687D303246BA1DFB64FFF979E7...
==> Importing owner trust values...
gpg: inserting ownertrust of 4
gpg: setting ownertrust to 4
gpg: setting ownertrust to 4
gpg: setting ownertrust to 4
gpg: setting ownertrust to 4
==> Disabling revoked keys in keyring...
  -> Disabling key BC1FBE4D2826A0B51E47ED62E2539214C6C11350...
==> Updating trust database...
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   5  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   5  signed:  64  trust: 0-, 0q, 0n, 5m, 0f, 0u
gpg: depth: 2  valid:  63  signed:   3  trust: 63-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2014-01-22

Mount your target disk

At this point you're inside a chroot system based off of the rescue environment's /mnt. There's a /mnt directory inside this chroot and that's where you need to mount your target disk that your actual Arch Linux install will be written to.

sh-4.2# mount -obarrier=0 /dev/xvda1 /mnt
[ 3432.877133] EXT3-fs: barriers not enabled
[ 3432.888424] kjournald starting.  Commit interval 5 seconds
[ 3432.906229] EXT3-fs (xvda1): using internal journal
[ 3432.906239] EXT3-fs (xvda1): mounted filesystem with ordered data mode

If you had a more complicated file system layout in mind then it would be at this point that you would mount it all in the correct places under /mnt.

Create /run/shm

On recent Debian-based systems the default RAM disk can be found at /run/shm as opposed to /dev/shm, and a symlink to /run/shm is used. At the time of writing the Arch Linux pacstrap expects it to be at /dev/shm.

This is simple to work around:

sh-4.2# mkdir /run/shm

Follow the upstream install instructions

The rest of the procedure is as described in the Arch Linux documentation:

https://wiki.archlinux.org/index.php/Installation_Guide#Install_the_base_system

Every step will be reproduced here, but the exact procedure may change over time. Please study the above link for an explanation of what is being done at each step.

sh-4.2# pacstrap /mnt base
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...
 core                     104.3 KiB  10.2M/s 00:00 [######################] 100%
 extra                   1448.4 KiB  8.37M/s 00:00 [######################] 100%
 community               2025.5 KiB  16.5M/s 00:00 [######################] 100%
:: There are 51 members in group base:
:: Repository core
   1) bash  2) bzip2  3) coreutils  4) cronie  5) cryptsetup  6) device-mapper
   7) dhcpcd  8) diffutils  9) e2fsprogs  10) file  11) filesystem
   12) findutils  13) gawk  14) gcc-libs  15) gettext  16) glibc  17) grep
   18) gzip  19) heirloom-mailx  20) inetutils  21) iproute2  22) iputils
   23) jfsutils  24) less  25) licenses  26) linux  27) logrotate  28) lvm2
   29) man-db  30) man-pages  31) mdadm  32) nano  33) netctl  34) pacman
   35) pciutils  36) pcmciautils  37) perl  38) procps-ng  39) psmisc
   40) reiserfsprogs  41) sed  42) shadow  43) sysfsutils
   44) systemd-sysvcompat  45) tar  46) texinfo  47) usbutils  48) util-linux
   49) vi  50) which  51) xfsprogs

Enter a selection (default=all): 
resolving dependencies...
looking for inter-conflicts...

Packages (111): acl-2.2.52-1  archlinux-keyring-20130818-1  attr-2.4.47-1
                ca-certificates-20130610-1  cracklib-2.9.0-1  curl-7.32.0-1
                db-5.3.21-1  dbus-1.6.12-1  dirmngr-1.1.1-1  expat-2.1.0-2
                gdbm-1.10-1  glib2-2.36.4-1  gmp-5.1.2-1  gnupg-2.0.21-1
                gpgme-1.4.3-1  groff-1.22.2-5  hwids-20130607-1
                iana-etc-2.30-3  iptables-1.4.19.1-1  kbd-2.0.0-1
                keyutils-1.5.5-5  kmod-15-1  krb5-1.11.3-1  libarchive-3.1.2-2
                libassuan-2.1.1-1  libcap-2.22-5  libffi-3.0.13-3
                libgcrypt-1.5.3-1  libgpg-error-1.12-1  libgssglue-0.4-1
                libksba-1.3.0-1  libldap-2.4.35-4  libpipeline-1.2.4-1
                libsasl-2.1.26-4  libssh2-1.4.3-1  libtirpc-0.2.3-1
                libusbx-1.0.16-2  linux-api-headers-3.10.6-1
                linux-firmware-20130725-1  lzo2-2.06-1  mkinitcpio-0.15.0-1
                mkinitcpio-busybox-1.21.1-2  mpfr-3.1.2-1  ncurses-5.9-5
                openresolv-3.5.6-1  openssl-1.0.1.e-3
                pacman-mirrorlist-20130830-1  pam-1.1.6-4  pambase-20130113-1
                pcre-8.33-1  pinentry-0.8.3-1  popt-1.16-6  pth-2.0.7-4
                readline-6.2.004-1  run-parts-4.4-1  systemd-204-3
                sysvinit-tools-2.88-11  tzdata-2013d-1  xz-5.0.5-1
                zlib-1.2.8-1  bash-4.2.045-5  bzip2-1.0.6-4  coreutils-8.21-2
                cronie-1.4.9-5  cryptsetup-1.6.2-1  device-mapper-2.02.100-1
                dhcpcd-6.0.5-1  diffutils-3.3-1  e2fsprogs-1.42.8-1
                file-5.14-1  filesystem-2013.05-2  findutils-4.4.2-5
                gawk-4.1.0-1  gcc-libs-4.8.1-3  gettext-0.18.3.1-1
                glibc-2.18-3  grep-2.14-2  gzip-1.6-1  heirloom-mailx-12.5-3
                inetutils-1.9.1-6  iproute2-3.10.0-1  iputils-20121221-3
                jfsutils-1.1.15-4  less-458-1  licenses-20130203-1
                linux-3.10.10-1  logrotate-3.8.6-1  lvm2-2.02.100-1
                man-db-2.6.5-1  man-pages-3.53-1  mdadm-3.2.6-4  nano-2.2.6-2
                netctl-1.3-1  pacman-4.1.2-1  pciutils-3.2.0-3
                pcmciautils-018-7  perl-5.18.1-1  procps-ng-3.3.8-2
                psmisc-22.20-1  reiserfsprogs-3.6.24-1  sed-4.2.2-3
                shadow-4.1.5.1-6  sysfsutils-2.1.0-8  systemd-sysvcompat-204-3
                tar-1.26-4  texinfo-5.1-1  usbutils-007-1  util-linux-2.23.2-1
                vi-1:050325-3  which-2.20-6  xfsprogs-3.1.11-1

Total Download Size:    133.07 MiB
Total Installed Size:   427.57 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages ...
 linux-api-headers-3...   690.2 KiB  8.99M/s 00:00 [######################] 100%
 tzdata-2013d-1-any       251.5 KiB  11.2M/s 00:00 [######################] 100%
 iana-etc-2.30-3-any      319.8 KiB  9.76M/s 00:00 [######################] 100%
 filesystem-2013.05-...     8.4 KiB  0.00B/s 00:00 [######################] 100%
 glibc-2.18-3-x86_64        8.2 MiB  11.5M/s 00:01 [######################] 100%
 ncurses-5.9-5-x86_64     965.4 KiB  9.24M/s 00:00 [######################] 100%
 readline-6.2.004-1-...   295.0 KiB  8.73M/s 00:00 [######################] 100%
 bash-4.2.045-5-x86_64    792.5 KiB  8.60M/s 00:00 [######################] 100%
 bzip2-1.0.6-4-x86_64      54.7 KiB  17.8M/s 00:00 [######################] 100%
 gcc-libs-4.8.1-3-x86_64  930.5 KiB  8.91M/s 00:00 [######################] 100%
 db-5.3.21-1-x86_64      1139.3 KiB  9.12M/s 00:00 [######################] 100%
 zlib-1.2.8-1-x86_64       80.0 KiB  13.0M/s 00:00 [######################] 100%
 cracklib-2.9.0-1-x86_64  244.3 KiB  11.4M/s 00:00 [######################] 100%
 libgssglue-0.4-1-x86_64   29.4 KiB  0.00B/s 00:00 [######################] 100%
 libtirpc-0.2.3-1-x86_64  176.6 KiB  12.3M/s 00:00 [######################] 100%
 pambase-20130113-1-any  1032.0   B  0.00B/s 00:00 [######################] 100%
 pam-1.1.6-4-x86_64       662.9 KiB  11.4M/s 00:00 [######################] 100%
 attr-2.4.47-1-x86_64      69.2 KiB  13.5M/s 00:00 [######################] 100%
 acl-2.2.52-1-x86_64      139.0 KiB  17.0M/s 00:00 [######################] 100%
 gmp-5.1.2-1-x86_64       450.8 KiB  1587K/s 00:00 [######################] 100%
 libcap-2.22-5-x86_64      36.3 KiB  2.73M/s 00:00 [######################] 100%
 coreutils-8.21-2-x86_64    2.1 MiB  19.0M/s 00:00 [######################] 100%
 run-parts-4.4-1-x86_64    24.6 KiB  0.00B/s 00:00 [######################] 100%
 cronie-1.4.9-5-x86_64     59.8 KiB  0.00B/s 00:00 [######################] 100%
 expat-2.1.0-2-x86_64     103.5 KiB  0.00B/s 00:00 [######################] 100%
 dbus-1.6.12-1-x86_64     420.7 KiB  41.1M/s 00:00 [######################] 100%
 pcre-8.33-1-x86_64      1031.9 KiB  17.4M/s 00:00 [######################] 100%
 libffi-3.0.13-3-x86_64    28.9 KiB  0.00B/s 00:00 [######################] 100%
 glib2-2.36.4-1-x86_64   1990.7 KiB  22.3M/s 00:00 [######################] 100%
 kbd-2.0.0-1-x86_64      1077.3 KiB  15.7M/s 00:00 [######################] 100%
 kmod-15-1-x86_64         103.2 KiB  20.1M/s 00:00 [######################] 100%
 hwids-20130607-1-any     289.7 KiB  18.9M/s 00:00 [######################] 100%
 libgpg-error-1.12-1...    63.9 KiB  31.2M/s 00:00 [######################] 100%
 libgcrypt-1.5.3-1-x...   308.9 KiB  15.1M/s 00:00 [######################] 100%
 shadow-4.1.5.1-6-x86_64 1049.7 KiB  10.1M/s 00:00 [######################] 100%
 util-linux-2.23.2-1...  1739.1 KiB  14.0M/s 00:00 [######################] 100%
 xz-5.0.5-1-x86_64        226.4 KiB  18.4M/s 00:00 [######################] 100%
 systemd-204-3-x86_64       2.2 MiB  12.6M/s 00:00 [######################] 100%
 device-mapper-2.02....   163.2 KiB  9.96M/s 00:00 [######################] 100%
 popt-1.16-6-x86_64        53.7 KiB  17.5M/s 00:00 [######################] 100%
 cryptsetup-1.6.2-1-...   182.5 KiB  12.7M/s 00:00 [######################] 100%
 dhcpcd-6.0.5-1-x86_64     96.0 KiB  18.7M/s 00:00 [######################] 100%
 diffutils-3.3-1-x86_64   173.7 KiB  12.1M/s 00:00 [######################] 100%
 e2fsprogs-1.42.8-1-...   725.2 KiB  10.4M/s 00:00 [######################] 100%
 file-5.14-1-x86_64       190.5 KiB  7.44M/s 00:00 [######################] 100%
 findutils-4.4.2-5-x...   370.8 KiB  7.24M/s 00:00 [######################] 100%
 mpfr-3.1.2-1-x86_64      342.7 KiB  7.44M/s 00:00 [######################] 100%
 gawk-4.1.0-1-x86_64      891.4 KiB  7.32M/s 00:00 [######################] 100%
 gettext-0.18.3.1-1-...     2.1 MiB  8.83M/s 00:00 [######################] 100%
 grep-2.14-2-x86_64       194.1 KiB  11.8M/s 00:00 [######################] 100%
 less-458-1-x86_64         90.2 KiB  17.6M/s 00:00 [######################] 100%
 gzip-1.6-1-x86_64         77.4 KiB  15.1M/s 00:00 [######################] 100%
 gdbm-1.10-1-x86_64        81.4 KiB  13.2M/s 00:00 [######################] 100%
 perl-5.18.1-1-x86_64      12.9 MiB  12.2M/s 00:01 [######################] 100%
 openssl-1.0.1.e-3-x...     2.5 MiB  12.5M/s 00:00 [######################] 100%
 libsasl-2.1.26-4-x86_64  134.7 KiB  16.4M/s 00:00 [######################] 100%
 libldap-2.4.35-4-x86_64  394.5 KiB  13.8M/s 00:00 [######################] 100%
 keyutils-1.5.5-5-x86_64   57.6 KiB  4.33M/s 00:00 [######################] 100%
 krb5-1.11.3-1-x86_64    1074.1 KiB  10.9M/s 00:00 [######################] 100%
 heirloom-mailx-12.5...   205.3 KiB  12.5M/s 00:00 [######################] 100%
 inetutils-1.9.1-6-x...   247.2 KiB  14.2M/s 00:00 [######################] 100%
 iptables-1.4.19.1-1...   247.5 KiB  14.2M/s 00:00 [######################] 100%
 iproute2-3.10.0-1-x...   467.4 KiB  12.7M/s 00:00 [######################] 100%
 sysfsutils-2.1.0-8-...    28.9 KiB  0.00B/s 00:00 [######################] 100%
 iputils-20121221-3-...    73.8 KiB  24.0M/s 00:00 [######################] 100%
 jfsutils-1.1.15-4-x...   167.5 KiB  14.9M/s 00:00 [######################] 100%
 licenses-20130203-1-any   59.4 KiB  29.0M/s 00:00 [######################] 100%
 linux-firmware-2013...    18.3 MiB  11.6M/s 00:02 [######################] 100%
 mkinitcpio-busybox-...   150.6 KiB  16.3M/s 00:00 [######################] 100%
 lzo2-2.06-1-x86_64        73.5 KiB  35.9M/s 00:00 [######################] 100%
 libarchive-3.1.2-2-...   621.8 KiB  12.4M/s 00:00 [######################] 100%
 mkinitcpio-0.15.0-1-any   35.2 KiB  17.2M/s 00:00 [######################] 100%
 linux-3.10.10-1-x86_64    46.3 MiB  10.4M/s 00:04 [######################] 100%
 logrotate-3.8.6-1-x...    31.8 KiB  15.5M/s 00:00 [######################] 100%
 lvm2-2.02.100-1-x86_64   737.0 KiB  10.3M/s 00:00 [######################] 100%
 groff-1.22.2-5-x86_64   1757.9 KiB  11.7M/s 00:00 [######################] 100%
 libpipeline-1.2.4-1...    35.0 KiB  0.00B/s 00:00 [######################] 100%
 man-db-2.6.5-1-x86_64    364.4 KiB  16.2M/s 00:00 [######################] 100%
 man-pages-3.53-1-any       4.7 MiB  14.1M/s 00:00 [######################] 100%
 mdadm-3.2.6-4-x86_64     272.2 KiB  15.6M/s 00:00 [######################] 100%
 nano-2.2.6-2-x86_64      300.0 KiB  17.2M/s 00:00 [######################] 100%
 openresolv-3.5.6-1-any    15.6 KiB  0.00B/s 00:00 [######################] 100%
 netctl-1.3-1-any          32.2 KiB  0.00B/s 00:00 [######################] 100%
 sed-4.2.2-3-x86_64       123.2 KiB  20.1M/s 00:00 [######################] 100%
 ca-certificates-201...   145.4 KiB  17.7M/s 00:00 [######################] 100%
 libssh2-1.4.3-1-x86_64   186.0 KiB  11.3M/s 00:00 [######################] 100%
 curl-7.32.0-1-x86_64     524.4 KiB  11.1M/s 00:00 [######################] 100%
 pth-2.0.7-4-x86_64        75.9 KiB  14.8M/s 00:00 [######################] 100%
 libksba-1.3.0-1-x86_64   111.3 KiB  13.6M/s 00:00 [######################] 100%
 libassuan-2.1.1-1-x...    78.4 KiB  15.3M/s 00:00 [######################] 100%
 pinentry-0.8.3-1-x86_64   96.2 KiB  15.7M/s 00:00 [######################] 100%
 dirmngr-1.1.1-1-x86_64   169.0 KiB  11.8M/s 00:00 [######################] 100%
 gnupg-2.0.21-1-x86_64   1518.9 KiB  9.04M/s 00:00 [######################] 100%
 gpgme-1.4.3-1-x86_64     205.4 KiB  8.02M/s 00:00 [######################] 100%
 pacman-mirrorlist-2...     2.8 KiB  0.00B/s 00:00 [######################] 100%
 archlinux-keyring-2...   396.0 KiB  6.91M/s 00:00 [######################] 100%
 pacman-4.1.2-1-x86_64    626.0 KiB  7.37M/s 00:00 [######################] 100%
 pciutils-3.2.0-3-x86_64   83.5 KiB  16.3M/s 00:00 [######################] 100%
 pcmciautils-018-7-x...    19.7 KiB  0.00B/s 00:00 [######################] 100%
 procps-ng-3.3.8-2-x...   213.2 KiB  9.46M/s 00:00 [######################] 100%
 psmisc-22.20-1-x86_64     90.3 KiB  11.0M/s 00:00 [######################] 100%
 reiserfsprogs-3.6.2...   203.7 KiB  7.37M/s 00:00 [######################] 100%
 sysvinit-tools-2.88...    25.8 KiB  0.00B/s 00:00 [######################] 100%
 systemd-sysvcompat-...     5.7 KiB  0.00B/s 00:00 [######################] 100%
 tar-1.26-4-x86_64        565.0 KiB  12.8M/s 00:00 [######################] 100%
 texinfo-5.1-1-x86_64    1105.3 KiB  23.0M/s 00:00 [######################] 100%
 libusbx-1.0.16-2-x86_64   49.2 KiB  0.00B/s 00:00 [######################] 100%
 usbutils-007-1-x86_64     51.9 KiB  0.00B/s 00:00 [######################] 100%
 vi-1:050325-3-x86_64     141.4 KiB  46.0M/s 00:00 [######################] 100%
 which-2.20-6-x86_64       13.8 KiB  0.00B/s 00:00 [######################] 100%
 xfsprogs-3.1.11-1-x...   621.9 KiB  21.7M/s 00:00 [######################] 100%
(111/111) checking keys in keyring                 [######################] 100%
(111/111) checking package integrity               [######################] 100%
(111/111) loading package files                    [######################] 100%
(111/111) checking for file conflicts              [######################] 100%
(111/111) checking available disk space            [######################] 100%
(  1/111) installing linux-api-headers             [######################] 100%
(  2/111) installing tzdata                        [######################] 100%
(  3/111) installing iana-etc                      [######################] 100%
(  4/111) installing filesystem                    [######################] 100%
warning: directory permissions differ on /mnt/sys/
filesystem: 755  package: 555
(  5/111) installing glibc                         [######################] 100%
(  6/111) installing ncurses                       [######################] 100%
(  7/111) installing readline                      [######################] 100%
(  8/111) installing bash                          [######################] 100%
(  9/111) installing bzip2                         [######################] 100%
( 10/111) installing gcc-libs                      [######################] 100%
( 11/111) installing db                            [######################] 100%
( 12/111) installing zlib                          [######################] 100%
( 13/111) installing cracklib                      [######################] 100%
( 14/111) installing libgssglue                    [######################] 100%
( 15/111) installing libtirpc                      [######################] 100%
( 16/111) installing pambase                       [######################] 100%
( 17/111) installing pam                           [######################] 100%
( 18/111) installing attr                          [######################] 100%
( 19/111) installing acl                           [######################] 100%
( 20/111) installing gmp                           [######################] 100%
( 21/111) installing libcap                        [######################] 100%
( 22/111) installing coreutils                     [######################] 100%
( 23/111) installing run-parts                     [######################] 100%
( 24/111) installing cronie                        [######################] 100%
Optional dependencies for cronie
    pm-utils: defer anacron on battery power
    smtp-server: send job output via email
    smtp-forwarder: forward job output to email server
( 25/111) installing expat                         [######################] 100%
( 26/111) installing dbus                          [######################] 100%
Optional dependencies for dbus
    libx11: dbus-launch support
( 27/111) installing pcre                          [######################] 100%
( 28/111) installing libffi                        [######################] 100%
( 29/111) installing glib2                         [######################] 100%
Optional dependencies for glib2
    python2: for gdbus-codegen and gtester-report
    elfutils: gresource inspection tool
( 30/111) installing kbd                           [######################] 100%
( 31/111) installing kmod                          [######################] 100%
( 32/111) installing hwids                         [######################] 100%
( 33/111) installing libgpg-error                  [######################] 100%
( 34/111) installing libgcrypt                     [######################] 100%
( 35/111) installing shadow                        [######################] 100%
( 36/111) installing util-linux                    [######################] 100%
( 37/111) installing xz                            [######################] 100%
( 38/111) installing systemd                       [######################] 100%
Initializing machine ID from random generator.
ln -s '/usr/lib/systemd/system/getty@.service' '/etc/systemd/system/getty.target
.wants/getty@tty1.service'
:: Append 'init=/usr/lib/systemd/systemd' to your kernel command line in your
   bootloader to replace sysvinit with systemd, or install systemd-sysvcompat
Optional dependencies for systemd
    cryptsetup: required for encrypted block devices [pending]
    libmicrohttpd: systemd-journal-gatewayd
    quota-tools: kernel-level quota management
    python: systemd library bindings
    systemd-sysvcompat: symlink package to provide sysvinit binaries [pending]
( 39/111) installing device-mapper                 [######################] 100%
( 40/111) installing popt                          [######################] 100%
( 41/111) installing cryptsetup                    [######################] 100%
( 42/111) installing dhcpcd                        [######################] 100%
( 43/111) installing diffutils                     [######################] 100%
( 44/111) installing e2fsprogs                     [######################] 100%
( 45/111) installing file                          [######################] 100%
( 46/111) installing findutils                     [######################] 100%
( 47/111) installing mpfr                          [######################] 100%
( 48/111) installing gawk                          [######################] 100%
( 49/111) installing gettext                       [######################] 100%
Optional dependencies for gettext
    cvs: for autopoint tool
( 50/111) installing grep                          [######################] 100%
( 51/111) installing less                          [######################] 100%
( 52/111) installing gzip                          [######################] 100%
( 53/111) installing gdbm                          [######################] 100%
( 54/111) installing perl                          [######################] 100%
( 55/111) installing openssl                       [######################] 100%
Optional dependencies for openssl
    ca-certificates [pending]
( 56/111) installing libsasl                       [######################] 100%
( 57/111) installing libldap                       [######################] 100%
( 58/111) installing keyutils                      [######################] 100%
( 59/111) installing krb5                          [######################] 100%
( 60/111) installing heirloom-mailx                [######################] 100%
Optional dependencies for heirloom-mailx
    smtp-forwarder: for sending mail
( 61/111) installing inetutils                     [######################] 100%
( 62/111) installing iptables                      [######################] 100%
( 63/111) installing iproute2                      [######################] 100%
Optional dependencies for iproute2
    linux-atm: ATM support
( 64/111) installing sysfsutils                    [######################] 100%
( 65/111) installing iputils                       [######################] 100%
Optional dependencies for iputils
    xinetd: for tftpd
( 66/111) installing jfsutils                      [######################] 100%
( 67/111) installing licenses                      [######################] 100%
( 68/111) installing linux-firmware                [######################] 100%
( 69/111) installing mkinitcpio-busybox            [######################] 100%
( 70/111) installing lzo2                          [######################] 100%
( 71/111) installing libarchive                    [######################] 100%
( 72/111) installing mkinitcpio                    [######################] 100%
Optional dependencies for mkinitcpio
    xz: Use lzma or xz compression for the initramfs image [pending]
    bzip2: Use bzip2 compression for the initramfs image [pending]
    lzop: Use lzo compression for the initramfs image
    mkinitcpio-nfs-utils: Support for root filesystem on NFS
( 73/111) installing linux                         [######################] 100%
>>> Updating module dependencies. Please wait ...
>>> Generating initial ramdisk, using mkinitcpio.  Please wait...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.10.10-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.10.10-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
Optional dependencies for linux
    crda: to set the correct wireless channels of your country
( 74/111) installing logrotate                     [######################] 100%
Optional dependencies for logrotate
    cron: scheduled log rotation
( 75/111) installing lvm2                          [######################] 100%
( 76/111) installing groff                         [######################] 100%
Optional dependencies for groff
    netpbm: for use together with man -H command interaction in browsers
    psutils: for use together with man -H command interaction in browsers
    libxaw: for gxditview
( 77/111) installing libpipeline                   [######################] 100%
( 78/111) installing man-db                        [######################] 100%
it's recommended to create an initial
database running as root:
"/usr/bin/mandb --quiet"
Optional dependencies for man-db
    gzip [pending]
( 79/111) installing man-pages                     [######################] 100%
( 80/111) installing mdadm                         [######################] 100%
( 81/111) installing nano                          [######################] 100%
( 82/111) installing openresolv                    [######################] 100%
( 83/111) installing netctl                        [######################] 100%
Optional dependencies for netctl
    dialog: for the menu based wifi assistant
    dhclient: for DHCP support (or dhcpcd)
    dhcpcd: for DHCP support (or dhclient) [pending]
    wpa_supplicant: for wireless networking support
    ifplugd: for automatic wired connections through netctl-ifplugd
    wpa_actiond: for automatic wireless connections through netctl-auto
    ifenslave: for bond connections
    ppp: for pppoe connections
( 84/111) installing sed                           [######################] 100%
( 85/111) installing ca-certificates               [######################] 100%
( 86/111) installing libssh2                       [######################] 100%
( 87/111) installing curl                          [######################] 100%
( 88/111) installing pth                           [######################] 100%
( 89/111) installing libksba                       [######################] 100%
( 90/111) installing libassuan                     [######################] 100%
( 91/111) installing pinentry                      [######################] 100%
Optional dependencies for pinentry
    gtk2: for gtk2 backend
    qt4: for qt4 backend
( 92/111) installing dirmngr                       [######################] 100%
( 93/111) installing gnupg                         [######################] 100%
Optional dependencies for gnupg
    curl: gpg2keys_curl [pending]
    libldap: gpg2keys_ldap [pending]
    libusb-compat: scdaemon
( 94/111) installing gpgme                         [######################] 100%
( 95/111) installing pacman-mirrorlist             [######################] 100%
( 96/111) installing archlinux-keyring             [######################] 100%
( 97/111) installing pacman                        [######################] 100%
 >>> Run  `pacman-key --init; pacman-key --populate archlinux`
 >>> to import the data required by pacman for package verification.
 >>> See: https://www.archlinux.org/news/having-pacman-verify-packages
Optional dependencies for pacman
    fakeroot: for makepkg usage as normal user
( 98/111) installing pciutils                      [######################] 100%
( 99/111) installing pcmciautils                   [######################] 100%
(100/111) installing procps-ng                     [######################] 100%
(101/111) installing psmisc                        [######################] 100%
(102/111) installing reiserfsprogs                 [######################] 100%
(103/111) installing sysvinit-tools                [######################] 100%
(104/111) installing systemd-sysvcompat            [######################] 100%
(105/111) installing tar                           [######################] 100%
(106/111) installing texinfo                       [######################] 100%
(107/111) installing libusbx                       [######################] 100%
(108/111) installing usbutils                      [######################] 100%
Optional dependencies for usbutils
    python2: for lsusb.py usage
    coreutils: for lsusb.py usage [pending]
(109/111) installing vi                            [######################] 100%
Optional dependencies for vi
    heirloom-mailx: used by the preserve command for notification [pending]
(110/111) installing which                         [######################] 100%
(111/111) installing xfsprogs                      [######################] 100%
sh-4.2# genfstab /mnt >> /mnt/etc/fstab
sh-4.2# arch-chroot /mnt
sh-4.2# echo 'archtest1' > /etc/hostname
sh-4.2# ln -s /usr/share/zoneinfo/UTC /etc/localtime
sh-4.2# sed -i -e 's/^#en_GB.UTF-8/en_GB.UTF-8/' /etc/locale.gen
sh-4.2# locale-gen 
Generating locales...
  en_GB.UTF-8... done
Generation complete.
sh-4.2# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.10.10-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.10.10-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
sh-4.2# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Configure the network

We will configure the network as a simple static ethernet configuration. You can obtain the address information either from the rescue environment or from your Panel account.

The following example details will be used in this guide:

IPv4 address 85.119.82.225
IPv4 netmask 255.255.248.0 (/21)
IPv4 gateway 85.119.80.1
IPv6 address 2001:ba8:1f1:f1d7::2/64
IPv6 gateway 2001:ba8:1f1:f1d7::1
Name servers
  • 85.119.80.232
  • 85.119.80.233
sh-4.2# cat > /etc/netctl/bitfolk
Description='BitFolk static Ethernet'
Interface=eth0
Connection=ethernet
IP=static
Address=('85.119.82.225/21')
Gateway='85.119.80.1'
DNS=('85.119.80.232' '85.119.80.233')
IP6=static
Address6=('2001:ba8:1f1:f1d7::2/64')
Gateway6='2001:ba8:1f1:f1d7::1'

Hit Ctrl+d.

sh-4.2# netctl enable bitfolk
ln -s '/etc/systemd/system/netctl@bitfolk.service' '/etc/systemd/system/multi-user.target.wants/netctl@bitfolk.service'
Running in chroot, ignoring request.

Boot loader

No actual boot loader package is needed, but a dummy /boot/grub/menu.lst file is necessary so that the VPS can be booted by Xen.

sh-4.2# mkdir -vp /boot/grub
mkdir: created directory '/boot/grub'
sh-4.2# cat > /boot/grub/menu.lst
title  Arch Linux  [/boot/vmlinuz-linux]
root   (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/xvda1 ro
initrd /boot/initramfs-linux.img

Hit Ctrl+d.

Exit

Exit out of the several layers of chroot.

sh-4.2# exit
sh-4.2# exit
umount: /mnt/root.x86_64: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

Halt and boot Arch Linux

root@rescue:/home/user# halt

Broadcast message from root@rescue (hvc0) (Sun Sep  1 03:47:39 2013):

The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
[info] Using makefile-style concurrent boot in runlevel 0.
[ ok ] Stopping the Winbind daemon: winbind.
[ ok ] Asking all remaining processes to terminate...done.
[ ok ] All processes ended within 2 seconds...done.
[ ok ] Stopping enhanced syslogd: rsyslogd.
[ ok ] Deconfiguring network interfaces...done.
[ ok ] Deactivating swap...done.
[ ok ] Unmounting local filesystems...done.
[info] Will now halt.
[ 6541.328014] xenbus_dev_shutdown: device/console/0: Initialising != Connected, skipping
[ 6541.679129] System halted.
xen-shell> boot

    pyGRUB  version 0.6
 ┌────────────────────────────────────────────────────────────────────────┐
 │ Arch Linux  [/boot/vmlinuz-linux]                                      │
 │                                                                        │
 │                                                                        │
 │                                                                        │
 │                                                                        │
 │                                                                        │
 │                                                                        │
 │                                                                        │
 └────────────────────────────────────────────────────────────────────────┘
     Use the ^ and v keys to select which entry is highlighted.            
     Press enter to boot the selected OS. 'e' to edit the      
     commands before booting, 'a' to modify the kernel arguments
     before booting, or 'c' for a command line.                 

Started domain archtest1
[    1.115662] i8042: No controller found
[    1.176610] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
:: running early hook [udev]
:: running hook [udev]
:: Triggering uevents...
:: performing fsck on '/dev/xvda1'
root: clean, 29156/655360 files, 242597/2621184 blocks
********************** WARNING **********************
*                                                   *
*  The root device is not configured to be mounted  *
*  read-write! It may be fsck'd again later.        *
*                                                   *
*****************************************************
:: mounting '/dev/xvda1' on real root
:: running cleanup hook [udev]

Welcome to Arch Linux!

         Expecting device dev-hvc0.device...
         Expecting device sys-subsystem-net-devices-eth0.device...
[  OK  ] Reached target Remote File Systems.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on LVM2 metadata daemon socket.
[  OK  ] Listening on Device-mapper event daemon FIFOs.
[  OK  ] Listening on Delayed Shutdown Socket.
[  OK  ] Set up automount Arbitrary Executable File Formats F...utomount Point.
[  OK  ] Listening on Journal Socket.
         Starting Journal Service...
[  OK  ] Started Journal Service.
[  OK  ] Reached target Paths.
         Mounting POSIX Message Queue File System...
         Starting Setup Virtual Console...
         Starting Create static device nodes in /dev...
         Starting Apply Kernel Variables...
         Mounting Configuration File System...
[  OK  ] Reached target Encrypted Volumes.
         Mounting Huge Pages File System...
[  OK  ] Listening on udev Kernel Socket.
[  OK  ] Listening on udev Control Socket.
         Starting udev Coldplug all Devices...
         Mounting Debug File System...
[  OK  ] Reached target Swap.
         Starting File System Check on Root Device...
         Mounting Temporary Directory...
[  OK  ] Started Setup Virtual Console.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Mounted Configuration File System.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted Debug File System.
[  OK  ] Mounted Temporary Directory.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started Create static device nodes in /dev.
         Starting udev Kernel Device Manager...
[  OK  ] Started udev Kernel Device Manager.
systemd-fsck[84]: root: clean, 29165/655360 files, 243592/2621184 blocks
[  OK  ] Started File System Check on Root Device.
         Starting Remount Root and Kernel File Systems...
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
         Starting Recreate Volatile Files and Directories...
         Starting Trigger Flushing of Journal to Persistent Storage...
         Starting Load Random Seed...
[  OK  ] Found device /dev/hvc0.
[  OK  ] Started Recreate Volatile Files and Directories.
         Starting Update UTMP about System Reboot/Shutdown...
[  OK  ] Started Trigger Flushing of Journal to Persistent Storage.
[  OK  ] Started Update UTMP about System Reboot/Shutdown.
[  OK  ] Started Load Random Seed.
[  OK  ] Reached target System Initialization.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Permit User Sessions...
         Starting Login Service...
         Starting D-Bus System Message Bus...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Permit User Sessions.
         Starting Getty on tty1...
[  OK  ] Started Getty on tty1.
         Starting Serial Getty on hvc0...
[  OK  ] Started Serial Getty on hvc0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Found device /sys/subsystem/net/devices/eth0.
         Starting BitFolk static Ethernet...
[  OK  ] Started Login Service.
[  OK  ] Started BitFolk static Ethernet.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.

Arch Linux 3.10.10-1-ARCH (hvc0)

archtest1 login: root
Password: 
[root@archtest1 ~]#