Skip to main content

ArchLinux Base Build

By November 21, 2019September 23rd, 2020Blog, Networking
Basic Build Instructions for an ArchLinux server

Description:

Ever need a stripped down, minimalist installation of Linux for ease of security and customization? Well then, ArchLinux is for you; once installed, it’s a great base Linux server that can be used for a wide variety of applications. Its install is extremely slim, making its attack surface very small and its performance extremely fast. Unlike gentoo, it does not compile all packages on install, making the deployment process for services much simpler and less labor intensive. It supports a variety of hardware including ARM v6, which means it can run on the Raspberri pi and a variety of other embedded systems.

One of the drawbacks of ArchLinux is that due to its flexibility, the initial install of the O/S can be somewhat of a bear for non-Linux geeks or folks who haven’t been around long enough to have experienced the sweet pain of installing a boot loader manually etc… This document walks through the process of a bare-bones base install with logical volumes utilized for the swap and root partitions (for ease of disk expansion).

VM Specs:

VCPUs: 4
Memory: 4096 MB
Drive: 60GB

Installation:

Just to summarize the install process: ArchLinux boots into a live image, which is then used to create partitions (already done), setup LVM and establish network connectivity. After that, partitions are mounted and the install utility (pacman) is used to pull down and install the base system to the newly setup partitions. After that process completes, the user chroots into the mounted root drive, re-compiles the kernel for LVM support and installs the boot loader.

After booting into the initial image, create at least a /boot and / partition using the fdisk utility.  I Won’t go through the initial partition creation as it is pretty straight-forward. In this case, I used fdisk to create 3 partitions with the following specs:

Device Start Cyl End Cyl Size File System Type
/dev/sda1 2048 411647 200M Linux
/dev/sda2 411648 8800255 4G Linux Swap
/dev/sda3 8800256 125829119 55.8G Linux
  1.  Setup NTP:
root@archiso # timedatectl set-ntp true
  1. Setup LVM, first create disk device out of partition 2 and 3 (swap and root)
root@archiso ~ # pvcreate /dev/sda2
Physical volume “/dev/sda2” successfully created.
root@archiso ~ # pvcreate /dev/sda3
Physical volume “/dev/sda3” successfully created.
root@archiso ~ #
root@archiso ~ # pvdisplay
“/dev/sda3” is a new physical volume of “55.80 GiB”
— NEW Physical volume —
PV Name /dev/sda3
VG Name
PV Size 55.80 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID jAgmPE-XcxO-YdyX-1HE4-UHRY-IdLb-rfvP41

“/dev/sda2” is a new physical volume of “4.00 GiB”
— NEW Physical volume —
PV Name /dev/sda2
VG Name
PV Size 4.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 7D3aIn-TIca-MY1X-FsTk-mcbr-LtPm-crg4fZ
  1. Now create a disk group called VolGroup00 with both disks

root@archiso ~ # vgcreate VolGroup00 /dev/sda2 /dev/sda3
Volume group “VolGroup00” successfully created

root@archiso ~ # vgdisplay
— Volume group —
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size <59.80 GiB
PE Size 4.00 MiB
Total PE 15308
Alloc PE / Size 0 / 0
Free PE / Size 15308 / <59.80 GiB
VG UUID GyoCgc-EAMM-oSxC-igsI-C2Nm-aOUY-KOEoYv

  1. Finally create a logical volume for swap and root

root@archiso ~ # lvcreate -L 4096M VolGroup00 -n swap
Logical volume “swap” created.

root@archiso ~ # lvcreate -L 55.79GB VolGroup00 -n root
Rounding up size to full physical extent 55.79 GiB
Logical volume “root” created.

root@archiso ~ # lvdisplay
— Logical volume —
LV Path /dev/VolGroup00/swap
LV Name swap
VG Name VolGroup00
LV UUID 0hgxUS-Mas1-tI7k-feAO-hKp1-tuFo-h4e91b
LV Write Access read/write
LV Creation host, time archiso, 2019-03-26 17:04:40 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:0

— Logical volume —
LV Path /dev/VolGroup00/root
LV Name root
VG Name VolGroup00
LV UUID 8TVdbO-KfBB-8Vna-2pC5-TUy1-JZZ1-uXIg61
LV Write Access read/write
LV Creation host, time archiso, 2019-03-26 17:07:02 +0000
LV Status available
# open 0
LV Size 55.79 GiB
Current LE 14283
Segments 2
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:1

  1. Activate the new volumes so we can create filesystems etc…
root@archiso ~ # vgscan
Reading volume groups from cache.
Found volume group “VolGroup00” using metadata type lvm2
root@archiso ~ # vgchange -ay
2 logical volume(s) in volume group “VolGroup00” now active
  1. Create ext3 file system and mount it up:

root@archiso ~ # mkfs.ext4 /dev/VolGroup00/root
mke2fs 1.44.5 (15-Dec-2018)
/dev/VolGroup00/root contains a ext4 file system
created on Tue Mar 26 17:10:45 2019
Proceed anyway? (y,N) y
Creating filesystem with 14625792 4k blocks and 3661824 inodes
Filesystem UUID: 674b6d27-bbf0-4a0e-8044-d6d99b6cc737
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

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

  1. Create swap filesystem and turn on swap:
root@archiso ~ # mkswap /dev/VolGroup00/swap
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=9a456655-487c-4d54-9c65-3d7c3a5fc89c
root@archiso ~ # swapon /dev/VolGroup00/swap
  1. Now create our /boot filesystem

root@archiso ~ # mkfs.ext4 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: 8fd6c1d3-9279-40dd-a63e-a3925fdd5a83
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

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

  1. Now mount up root in /mnt, boot within that mount in /mnt/boot like so:
root@archiso ~ # mount /dev/VolGroup00/root /mnt
root@archiso ~ # mkdir -p /mnt/boot
root@archiso ~ # mount /dev/sda1 /mnt/boot
  1. Now mount up root in /mnt, boot within that mount in /mnt/boot like so:

root@archiso ~ # pacstrap /mnt base
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases…

core 133.7 KiB 248K/s 00:01 [##########################################################] 100%
extra 1697.4 KiB 2.30M/s 00:01 [##########################################################] 100%
community 4.9 MiB 13.5M/s 00:00 [##########################################################] 100%
:: There are 50 members in group base:
:: Repository core
1) bash 2) bzip2 3) coreutils 4) cryptsetup 5) device-mapper 6) dhcpcd 7) diffutils 8) e2fsprogs 9) file 10) filesystem 11) findutils 12) gawk
13) gcc-libs 14) gettext 15) glibc 16) grep 17) gzip 18) inetutils 19) iproute2 20) iputils 21) jfsutils 22) less 23) licenses 24) linux
25) linux-firmware 26) logrotate 27) lvm2 28) man-db 29) man-pages 30) mdadm 31) nano 32) netctl 33) pacman 34) pciutils 35) perl 36) procps-ng
37) psmisc 38) reiserfsprogs 39) s-nail 40) sed 41) shadow 42) sysfsutils 43) systemd-sysvcompat 44) tar 45) texinfo 46) usbutils 47) util-linux
48) vi 49) which 50) xfsprogs

Enter a selection (default=all):
resolving dependencies…
:: There are 2 providers available for resolvconf:
:: Repository core
1) openresolv 2) systemd-resolvconf

Enter a number (default=1):
looking for conflicting packages…

Packages (138) acl-2.2.53-1 archlinux-keyring-20190123-2 argon2-20171227-3 attr-2.4.48-1 audit-2.8.4-3 ca-certificates-20181109-1
ca-certificates-mozilla-3.43-1 ca-certificates-utils-20181109-1 cracklib-2.9.6-3 curl-7.64.0-9 db-5.3.28-4 dbus-1.12.12-1 expat-2.2.6-1
gdbm-1.18.1-2 glib2-2.60.0-1 gmp-6.1.2-2 gnupg-2.2.14-1 gnutls-3.6.6-3 gpgme-1.12.0-2 groff-1.22.3-8 hwids-20180917-1 iana-etc-20190228-1
icu-63.1-2 iptables-1:1.8.2-1 json-c-0.13.1-2 kbd-2.0.4-2 keyutils-1.6-1 kmod-26-2 krb5-1.16.1-1 libaio-0.3.111-2 libarchive-3.3.3-1
libassuan-2.5.3-1 libcap-2.26-1 libcap-ng-0.7.9-1 libcroco-0.6.12+4+g9ad7287-2 libelf-0.176-1 libffi-3.2.1-3 libgcrypt-1.8.4-1
libgpg-error-1.36-1 libidn2-2.1.1-2 libksba-1.3.5-1 libldap-2.4.47-1 libmnl-1.0.4-2 libnetfilter_conntrack-1.0.7-1 libnfnetlink-1.0.1-3
libnftnl-1.1.1-1 libnghttp2-1.36.0-1 libnl-3.4.0-1 libpcap-1.9.0-1 libpipeline-1.5.1-1 libpsl-0.20.2-5 libsasl-2.1.27-1 libseccomp-2.4.0-1
libsecret-0.18.8-2 libssh2-1.8.1-1 libtasn1-4.13-1 libtirpc-1.1.4-1 libunistring-0.9.10-1 libusb-1.0.22-1 libutil-linux-2.33.1-2
libxml2-2.9.9-1 linux-api-headers-4.17.11-1 lz4-1:1.8.3-1 mkinitcpio-25-1 mkinitcpio-busybox-1.30.1-1 mpfr-4.0.2-1 ncurses-6.1-6
nettle-3.4.1-1 npth-1.6-1 openresolv-3.9.0-2 openssl-1.1.1.b-1 p11-kit-0.23.15-1 pacman-mirrorlist-20190109-1 pam-1.3.1-1
pambase-20190105.1-1 pcre-8.43-1 pcre2-10.32-2 pinentry-1.1.0-4 popt-1.16-10 readline-8.0.0-1 sqlite-3.27.2-1 systemd-241.7-2
systemd-libs-241.7-2 thin-provisioning-tools-0.7.6-1 tzdata-2018i-1 xz-5.2.4-1 zlib-1:1.2.11-3 zstd-1.3.8-1 bash-5.0.002-1 bzip2-1.0.6-8
coreutils-8.31-1 cryptsetup-2.1.0-1 device-mapper-2.02.183-2 dhcpcd-7.0.8-1 diffutils-3.7-1 e2fsprogs-1.45.0-1 file-5.36-1
filesystem-2018.12-2 findutils-4.6.0-4 gawk-4.2.1-2 gcc-libs-8.2.1+20181127-1 gettext-0.19.8.1-3 glibc-2.28-5 grep-3.3-1 gzip-1.10-1
inetutils-1.9.4-7 iproute2-5.0.0-1 iputils-20180629.f6aac8d-4 jfsutils-1.1.15-6 less-530-1 licenses-20181104-1 linux-5.0.4.arch1-1
linux-firmware-20190313.efd2c1c-1 logrotate-3.15.0-1 lvm2-2.02.183-2 man-db-2.8.5-2 man-pages-5.00-1 mdadm-4.0-2 nano-4.0-1 netctl-1.20-1
pacman-5.1.3-1 pciutils-3.6.2-1 perl-5.28.1-1 procps-ng-3.3.15-1 psmisc-23.2-1 reiserfsprogs-3.6.27-2 s-nail-14.9.13-2 sed-4.7-1
shadow-4.6-2 sysfsutils-2.1.0-10 systemd-sysvcompat-241.7-2 tar-1.32-1 texinfo-6.6-1 usbutils-010-1 util-linux-2.33.1-2 vi-1:070224-3
which-2.21-3 xfsprogs-4.19.0-2

Total Download Size: 270.05 MiB
Total Installed Size: 1040.92 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages…
linux-api-headers-4.17.11-1-any 927.7 KiB 151M/s 00:00 [##########################################################] 100%
tzdata-2018i-1-x86_64 362.5 KiB 118M/s 00:00 [##########################################################] 100%
iana-etc-20190228-1-any 367.6 KiB 0.00B/s 00:00 [##########################################################] 100%
filesystem-2018.12-2-x86_64 7.7 KiB 0.00B/s 00:00 [##########################################################] 100%
glibc-2.28-5-x86_64 9.1 MiB 382K/s 00:24 [##########################################################] 100%
gcc-libs-8.2.1+20181127-1-x86_64 20.4 MiB 8.53M/s 00:02 [##########################################################] 100%
ncurses-6.1-6-x86_64 1066.4 KiB 104M/s 00:00 [##########################################################] 100%
readline-8.0.0-1-x86_64 296.1 KiB 96.4M/s 00:00 [##########################################################] 100%
bash-5.0.002-1-x86_64 1537.0 KiB 88.3M/s 00:00 [##########################################################] 100%
bzip2-1.0.6-8-x86_64 53.5 KiB 0.00B/s 00:00 [##########################################################] 100%
attr-2.4.48-1-x86_64 65.0 KiB 0.00B/s 00:00 [##########################################################] 100%
acl-2.2.53-1-x86_64 131.9 KiB 0.00B/s 00:00 [##########################################################] 100%
gmp-6.1.2-2-x86_64 408.1 KiB 133M/s 00:00 [##########################################################] 100%
libcap-2.26-1-x86_64 39.2 KiB 0.00B/s 00:00 [##########################################################] 100%
gdbm-1.18.1-2-x86_64 160.5 KiB 39.2M/s 00:00 [##########################################################] 100%
db-5.3.28-4-x86_64 1094.0 KiB 82.2M/s 00:00 [##########################################################] 100%
perl-5.28.1-1-x86_64 14.2 MiB 18.8M/s 00:01 [##########################################################] 100%
openssl-1.1.1.b-1-x86_64 3.4 MiB 17.8M/s 00:00 [##########################################################] 100%
coreutils-8.31-1-x86_64 2.4 MiB 103M/s 00:00 [##########################################################] 100%
libgpg-error-1.36-1-x86_64 195.8 KiB 0.00B/s 00:00 [##########################################################] 100%
libgcrypt-1.8.4-1-x86_64 485.7 KiB 119M/s 00:00 [##########################################################] 100%
lz4-1:1.8.3-1-x86_64 98.2 KiB 32.0M/s 00:00 [##########################################################] 100%
xz-5.2.4-1-x86_64 231.2 KiB 75.2M/s 00:00 [##########################################################] 100%
systemd-libs-241.7-2-x86_64 389.8 KiB 127M/s 00:00 [##########################################################] 100%
device-mapper-2.02.183-2-x86_64 269.6 KiB 65.8M/s 00:00 [##########################################################] 100%
popt-1.16-10-x86_64 62.8 KiB 20.4M/s 00:00 [##########################################################] 100%
libutil-linux-2.33.1-2-x86_64 367.9 KiB 120M/s 00:00 [##########################################################] 100%
json-c-0.13.1-2-x86_64 44.8 KiB 0.00B/s 00:00 [##########################################################] 100%
argon2-20171227-3-x86_64 31.5 KiB 0.00B/s 00:00 [##########################################################] 100%
cryptsetup-2.1.0-1-x86_64 392.7 KiB 128M/s 00:00 [##########################################################] 100%
expat-2.2.6-1-x86_64 97.7 KiB 0.00B/s 00:00 [##########################################################] 100%
e2fsprogs-1.45.0-1-x86_64 1054.7 KiB 103M/s 00:00 [##########################################################] 100%
libsasl-2.1.27-1-x86_64 137.1 KiB 0.00B/s 00:00 [##########################################################] 100%
libldap-2.4.47-1-x86_64 282.7 KiB 92.0M/s 00:00 [##########################################################] 100%
keyutils-1.6-1-x86_64 84.4 KiB 0.00B/s 00:00 [##########################################################] 100%
krb5-1.16.1-1-x86_64 1173.4 KiB 81.8M/s 00:00 [##########################################################] 100%
libcap-ng-0.7.9-1-x86_64 36.1 KiB 0.00B/s 00:00 [##########################################################] 100%
audit-2.8.4-3-x86_64 336.1 KiB 82.1M/s 00:00 [##########################################################] 100%
dbus-1.12.12-1-x86_64 288.9 KiB 94.1M/s 00:00 [##########################################################] 100%
libmnl-1.0.4-2-x86_64 10.6 KiB 0.00B/s 00:00 [##########################################################] 100%
libnftnl-1.1.1-1-x86_64 62.5 KiB 0.00B/s 00:00 [##########################################################] 100%
libnl-3.4.0-1-x86_64 352.6 KiB 115M/s 00:00 [##########################################################] 100%
libusb-1.0.22-1-x86_64 55.4 KiB 0.00B/s 00:00 [##########################################################] 100%
libpcap-1.9.0-1-x86_64 233.4 KiB 0.00B/s 00:00 [##########################################################] 100%
iptables-1:1.8.2-1-x86_64 385.4 KiB 125M/s 00:00 [##########################################################] 100%
zlib-1:1.2.11-3-x86_64 81.3 KiB 0.00B/s 00:00 [##########################################################] 100%
cracklib-2.9.6-3-x86_64 248.2 KiB 0.00B/s 00:00 [##########################################################] 100%
libtirpc-1.1.4-1-x86_64 177.5 KiB 57.8M/s 00:00 [##########################################################] 100%
pambase-20190105.1-1-any 3.1 KiB 0.00B/s 00:00 [##########################################################] 100%
pam-1.3.1-1-x86_64 552.8 KiB 180M/s 00:00 [##########################################################] 100%
kbd-2.0.4-2-x86_64 1140.9 KiB 111M/s 00:00 [##########################################################] 100%
kmod-26-2-x86_64 113.9 KiB 27.8M/s 00:00 [##########################################################] 100%
hwids-20180917-1-any 357.0 KiB 87.2M/s 00:00 [##########################################################] 100%
libunistring-0.9.10-1-x86_64 501.7 KiB 70.0M/s 00:00 [##########################################################] 100%
libidn2-2.1.1-2-x86_64 112.3 KiB 0.00B/s 00:00 [##########################################################] 100%
libelf-0.176-1-x86_64 368.9 KiB 0.00B/s 00:00 [##########################################################] 100%
libseccomp-2.4.0-1-x86_64 76.0 KiB 0.00B/s 00:00 [##########################################################] 100%
shadow-4.6-2-x86_64 1104.3 KiB 108M/s 00:00 [##########################################################] 100%
util-linux-2.33.1-2-x86_64 2.0 MiB 100M/s 00:00 [##########################################################] 100%
pcre2-10.32-2-x86_64 986.3 KiB 161M/s 00:00 [##########################################################] 100%
systemd-241.7-2-x86_64 4.5 MiB 23.3M/s 00:00 [##########################################################] 100%
dhcpcd-7.0.8-1-x86_64 167.1 KiB 0.00B/s 00:00 [##########################################################] 100%
diffutils-3.7-1-x86_64 327.1 KiB 0.00B/s 00:00 [##########################################################] 100%
file-5.36-1-x86_64 284.4 KiB 0.00B/s 00:00 [##########################################################] 100%
findutils-4.6.0-4-x86_64 426.6 KiB 0.00B/s 00:00 [##########################################################] 100%
mpfr-4.0.2-1-x86_64 313.8 KiB 0.00B/s 00:00 [##########################################################] 100%
gawk-4.2.1-2-x86_64 1047.3 KiB 170M/s 00:00 [##########################################################] 100%
pcre-8.43-1-x86_64 929.2 KiB 302M/s 00:00 [##########################################################] 100%
libffi-3.2.1-3-x86_64 31.8 KiB 0.00B/s 00:00 [##########################################################] 100%
glib2-2.60.0-1-x86_64 2.4 MiB 100M/s 00:00 [##########################################################] 100%
icu-63.1-2-x86_64 8.6 MiB 643K/s 00:14 [##########################################################] 100%
gettext-0.19.8.1-3-x86_64 1796.9 KiB 1369K/s 00:01 [##########################################################] 100%
grep-3.3-1-x86_64 185.4 KiB 0.00B/s 00:00 [##########################################################] 100%
less-530-1-x86_64 99.2 KiB 0.00B/s 00:00 [##########################################################] 100%
gzip-1.10-1-x86_64 77.9 KiB 0.00B/s 00:00 [##########################################################] 100%
inetutils-1.9.4-7-x86_64 295.0 KiB 0.00B/s 00:00 [##########################################################] 100%
iproute2-5.0.0-1-x86_64 826.4 KiB 80.7M/s 00:00 [##########################################################] 100%
iputils-20180629.f6aac8d-4-x86_64 73.1 KiB 0.00B/s 00:00 [##########################################################] 100%
jfsutils-1.1.15-6-x86_64 179.9 KiB 58.6M/s 00:00 [##########################################################] 100%
licenses-20181104-1-any 67.2 KiB 0.00B/s 00:00 [##########################################################] 100%
linux-firmware-20190313.efd2c1c-1-any 77.3 MiB 15.1M/s 00:05 [##########################################################] 100%
mkinitcpio-busybox-1.30.1-1-x86_64 252.7 KiB 0.00B/s 00:00 [##########################################################] 100%
zstd-1.3.8-1-x86_64 371.5 KiB 121M/s 00:00 [##########################################################] 100%
libarchive-3.3.3-1-x86_64 448.9 KiB 110M/s 00:00 [##########################################################] 100%
mkinitcpio-25-1-any 40.0 KiB 0.00B/s 00:00 [##########################################################] 100%
linux-5.0.4.arch1-1-x86_64 70.7 MiB 16.2M/s 00:04 [##########################################################] 100%
logrotate-3.15.0-1-x86_64 42.0 KiB 0.00B/s 00:00 [##########################################################] 100%
libaio-0.3.111-2-x86_64 6.3 KiB 0.00B/s 00:00 [##########################################################] 100%
thin-provisioning-tools-0.7.6-1-x86_64 385.3 KiB 94.1M/s 00:00 [##########################################################] 100%
lvm2-2.02.183-2-x86_64 1351.4 KiB 102M/s 00:00 [##########################################################] 100%
groff-1.22.3-8-x86_64 1921.0 KiB 81.6M/s 00:00 [##########################################################] 100%
libpipeline-1.5.1-1-x86_64 38.0 KiB 0.00B/s 00:00 [##########################################################] 100%
man-db-2.8.5-2-x86_64 969.6 KiB 94.7M/s 00:00 [##########################################################] 100%
man-pages-5.00-1-any 5.7 MiB 25.3M/s 00:00 [##########################################################] 100%
mdadm-4.0-2-x86_64 414.2 KiB 135M/s 00:00 [##########################################################] 100%
nano-4.0-1-x86_64 478.6 KiB 66.8M/s 00:00 [##########################################################] 100%
openresolv-3.9.0-2-any 21.1 KiB 0.00B/s 00:00 [##########################################################] 100%
netctl-1.20-1-any 38.7 KiB 0.00B/s 00:00 [##########################################################] 100%
libtasn1-4.13-1-x86_64 117.1 KiB 0.00B/s 00:00 [##########################################################] 100%
p11-kit-0.23.15-1-x86_64 456.7 KiB 63.7M/s 00:00 [##########################################################] 100%
ca-certificates-utils-20181109-1-any 7.9 KiB 0.00B/s 00:00 [##########################################################] 100%
ca-certificates-mozilla-3.43-1-x86_64 337.2 KiB 82.3M/s 00:00 [##########################################################] 100%
ca-certificates-20181109-1-any 2.1 KiB 0.00B/s 00:00 [##########################################################] 100%
libssh2-1.8.1-1-x86_64 183.2 KiB 0.00B/s 00:00 [##########################################################] 100%
libpsl-0.20.2-5-x86_64 71.2 KiB 0.00B/s 00:00 [##########################################################] 100%
libnghttp2-1.36.0-1-x86_64 86.7 KiB 28.2M/s 00:00 [##########################################################] 100%
curl-7.64.0-9-x86_64 969.8 KiB 94.7M/s 00:00 [##########################################################] 100%
npth-1.6-1-x86_64 13.1 KiB 0.00B/s 00:00 [##########################################################] 100%
libksba-1.3.5-1-x86_64 116.0 KiB 0.00B/s 00:00 [##########################################################] 100%
libassuan-2.5.3-1-x86_64 85.2 KiB 0.00B/s 00:00 [##########################################################] 100%
libsecret-0.18.8-2-x86_64 196.7 KiB 0.00B/s 00:00 [##########################################################] 100%
pinentry-1.1.0-4-x86_64 101.1 KiB 0.00B/s 00:00 [##########################################################] 100%
nettle-3.4.1-1-x86_64 330.4 KiB 108M/s 00:00 [##########################################################] 100%
gnutls-3.6.6-3-x86_64 2.5 MiB 83.1M/s 00:00 [##########################################################] 100%
sqlite-3.27.2-1-x86_64 1374.8 KiB 95.9M/s 00:00 [##########################################################] 100%
gnupg-2.2.14-1-x86_64 2.1 MiB 78.5M/s 00:00 [##########################################################] 100%
gpgme-1.12.0-2-x86_64 401.7 KiB 131M/s 00:00 [##########################################################] 100%
pacman-mirrorlist-20190109-1-any 6.2 KiB 0.00B/s 00:00 [##########################################################] 100%
archlinux-keyring-20190123-2-any 685.1 KiB 95.6M/s 00:00 [##########################################################] 100%
pacman-5.1.3-1-x86_64 751.1 KiB 105M/s 00:00 [##########################################################] 100%
pciutils-3.6.2-1-x86_64 87.0 KiB 28.3M/s 00:00 [##########################################################] 100%
procps-ng-3.3.15-1-x86_64 339.2 KiB 82.8M/s 00:00 [##########################################################] 100%
psmisc-23.2-1-x86_64 105.7 KiB 0.00B/s 00:00 [##########################################################] 100%
reiserfsprogs-3.6.27-2-x86_64 204.3 KiB 66.5M/s 00:00 [##########################################################] 100%
s-nail-14.9.13-2-x86_64 493.0 KiB 160M/s 00:00 [##########################################################] 100%
sed-4.7-1-x86_64 218.1 KiB 0.00B/s 00:00 [##########################################################] 100%
sysfsutils-2.1.0-10-x86_64 31.4 KiB 0.00B/s 00:00 [##########################################################] 100%
systemd-sysvcompat-241.7-2-x86_64 7.7 KiB 0.00B/s 00:00 [##########################################################] 100%
tar-1.32-1-x86_64 743.7 KiB 104M/s 00:00 [##########################################################] 100%
texinfo-6.6-1-x86_64 1299.0 KiB 74.6M/s 00:00 [##########################################################] 100%
usbutils-010-1-x86_64 69.2 KiB 0.00B/s 00:00 [##########################################################] 100%
vi-1:070224-3-x86_64 152.1 KiB 0.00B/s 00:00 [##########################################################] 100%
which-2.21-3-x86_64 16.0 KiB 0.00B/s 00:00 [##########################################################] 100%
xfsprogs-4.19.0-2-x86_64 922.6 KiB 90.1M/s 00:00 [##########################################################] 100%
libnfnetlink-1.0.1-3-x86_64 16.4 KiB 0.00B/s 00:00 [##########################################################] 100%
libnetfilter_conntrack-1.0.7-1-x86_64 47.5 KiB 0.00B/s 00:00 [##########################################################] 100%
libxml2-2.9.9-1-x86_64 1273.7 KiB 95.7M/s 00:00 [##########################################################] 100%
libcroco-0.6.12+4+g9ad7287-2-x86_64 146.0 KiB 0.00B/s 00:00 [##########################################################] 100%
(138/138) checking keys in keyring [##########################################################] 100%
(138/138) checking package integrity [##########################################################] 100%
(138/138) loading package files [##########################################################] 100%
(138/138) checking for file conflicts [##########################################################] 100%
:: Processing package changes…
( 1/138) installing linux-api-headers [##########################################################] 100%
( 2/138) installing tzdata [##########################################################] 100%
( 3/138) installing iana-etc [##########################################################] 100%
( 4/138) installing filesystem [##########################################################] 100%
( 5/138) installing glibc [##########################################################] 100%
Optional dependencies for glibc
gd: for memusagestat
( 6/138) installing gcc-libs [##########################################################] 100%
( 7/138) installing ncurses [##########################################################] 100%
( 8/138) installing readline [##########################################################] 100%
( 9/138) installing bash [##########################################################] 100%
Optional dependencies for bash
bash-completion: for tab completion
( 10/138) installing bzip2 [##########################################################] 100%
( 11/138) installing attr [##########################################################] 100%
( 12/138) installing acl [##########################################################] 100%
( 13/138) installing gmp [##########################################################] 100%
( 14/138) installing libcap [##########################################################] 100%
( 15/138) installing gdbm [##########################################################] 100%
( 16/138) installing db [##########################################################] 100%
( 17/138) installing perl [##########################################################] 100%
( 18/138) installing openssl [##########################################################] 100%
Optional dependencies for openssl
ca-certificates [pending]
( 19/138) installing coreutils [##########################################################] 100%
( 20/138) installing libgpg-error [##########################################################] 100%
( 21/138) installing libgcrypt [##########################################################] 100%
( 22/138) installing lz4 [##########################################################] 100%
( 23/138) installing xz [##########################################################] 100%
( 24/138) installing systemd-libs [##########################################################] 100%
( 25/138) installing device-mapper [##########################################################] 100%
( 26/138) installing popt [##########################################################] 100%
( 27/138) installing libutil-linux [##########################################################] 100%
( 28/138) installing json-c [##########################################################] 100%
( 29/138) installing argon2 [##########################################################] 100%
( 30/138) installing cryptsetup [##########################################################] 100%
( 31/138) installing expat [##########################################################] 100%
( 32/138) installing e2fsprogs [##########################################################] 100%
( 33/138) installing libsasl [##########################################################] 100%
( 34/138) installing libldap [##########################################################] 100%
( 35/138) installing keyutils [##########################################################] 100%
( 36/138) installing krb5 [##########################################################] 100%
( 37/138) installing libcap-ng [##########################################################] 100%
( 38/138) installing audit [##########################################################] 100%
( 39/138) installing dbus [##########################################################] 100%
( 40/138) installing libmnl [##########################################################] 100%
( 41/138) installing libnftnl [##########################################################] 100%
( 42/138) installing libnl [##########################################################] 100%
( 43/138) installing libusb [##########################################################] 100%
( 44/138) installing libpcap [##########################################################] 100%
( 45/138) installing libnfnetlink [##########################################################] 100%
( 46/138) installing libnetfilter_conntrack [##########################################################] 100%
( 47/138) installing iptables [##########################################################] 100%
( 48/138) installing zlib [##########################################################] 100%
( 49/138) installing cracklib [##########################################################] 100%
( 50/138) installing libtirpc [##########################################################] 100%
( 51/138) installing pambase [##########################################################] 100%
( 52/138) installing pam [##########################################################] 100%
( 53/138) installing kbd [##########################################################] 100%
( 54/138) installing kmod [##########################################################] 100%
( 55/138) installing hwids [##########################################################] 100%
( 56/138) installing libunistring [##########################################################] 100%
( 57/138) installing libidn2 [##########################################################] 100%
( 58/138) installing libelf [##########################################################] 100%
( 59/138) installing libseccomp [##########################################################] 100%
( 60/138) installing shadow [##########################################################] 100%
( 61/138) installing util-linux [##########################################################] 100%
Optional dependencies for util-linux
python: python bindings to libmount
words: default dictionary for look
( 62/138) installing pcre2 [##########################################################] 100%
( 63/138) installing systemd [##########################################################] 100%
Initializing machine ID from random generator.
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.
Created symlink /etc/systemd/system/multi-user.target.wants/remote-fs.target → /usr/lib/systemd/system/remote-fs.target.
:: 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
libmicrohttpd: remote journald capabilities
quota-tools: kernel-level quota management
systemd-sysvcompat: symlink package to provide sysvinit binaries [pending]
polkit: allow administration as unprivileged user
curl: machinectl pull-tar and pull-raw [pending]
( 64/138) installing dhcpcd [##########################################################] 100%
Optional dependencies for dhcpcd
openresolv: resolvconf support [pending]
( 65/138) installing diffutils [##########################################################] 100%
( 66/138) installing file [##########################################################] 100%
( 67/138) installing findutils [##########################################################] 100%
( 68/138) installing mpfr [##########################################################] 100%
( 69/138) installing gawk [##########################################################] 100%
( 70/138) installing pcre [##########################################################] 100%
( 71/138) installing libffi [##########################################################] 100%
( 72/138) installing glib2 [##########################################################] 100%
Optional dependencies for glib2
python: gdbus-codegen, glib-genmarshal, glib-mkenums, gtester-report
libelf: gresource inspection tool [installed]
( 73/138) installing icu [##########################################################] 100%
( 74/138) installing libxml2 [##########################################################] 100%
( 75/138) installing libcroco [##########################################################] 100%
( 76/138) installing gettext [##########################################################] 100%
Optional dependencies for gettext
git: for autopoint infrastructure updates
( 77/138) installing grep [##########################################################] 100%
( 78/138) installing less [##########################################################] 100%
( 79/138) installing gzip [##########################################################] 100%
( 80/138) installing inetutils [##########################################################] 100%
( 81/138) installing iproute2 [##########################################################] 100%
Optional dependencies for iproute2
linux-atm: ATM support
( 82/138) installing iputils [##########################################################] 100%
Optional dependencies for iputils
xinetd: for tftpd
( 83/138) installing jfsutils [##########################################################] 100%
( 84/138) installing licenses [##########################################################] 100%
( 85/138) installing linux-firmware [##########################################################] 100%
( 86/138) installing mkinitcpio-busybox [##########################################################] 100%
( 87/138) installing zstd [##########################################################] 100%
( 88/138) installing libarchive [##########################################################] 100%
( 89/138) installing mkinitcpio [##########################################################] 100%
Optional dependencies for mkinitcpio
xz: Use lzma or xz compression for the initramfs image [installed]
bzip2: Use bzip2 compression for the initramfs image [installed]
lzop: Use lzo compression for the initramfs image
lz4: Use lz4 compression for the initramfs image [installed]
mkinitcpio-nfs-utils: Support for root filesystem on NFS
( 90/138) installing linux [##########################################################] 100%
Optional dependencies for linux
crda: to set the correct wireless channels of your country
( 91/138) installing logrotate [##########################################################] 100%
( 92/138) installing libaio [##########################################################] 100%
( 93/138) installing thin-provisioning-tools [##########################################################] 100%
( 94/138) installing lvm2 [##########################################################] 100%
( 95/138) 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
( 96/138) installing libpipeline [##########################################################] 100%
( 97/138) installing man-db [##########################################################] 100%
Optional dependencies for man-db
gzip [installed]
( 98/138) installing man-pages [##########################################################] 100%
( 99/138) installing mdadm [##########################################################] 100%
(100/138) installing nano [##########################################################] 100%
(101/138) installing openresolv [##########################################################] 100%
(102/138) 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) [installed]
wpa_supplicant: for wireless networking support
ifplugd: for automatic wired connections through netctl-ifplugd
ppp: for PPP connections
openvswitch: for Open vSwitch connections
(103/138) installing libtasn1 [##########################################################] 100%
(104/138) installing p11-kit [##########################################################] 100%
Created symlink /etc/systemd/user/sockets.target.wants/p11-kit-server.socket → /usr/lib/systemd/user/p11-kit-server.socket.
(105/138) installing ca-certificates-utils [##########################################################] 100%
(106/138) installing ca-certificates-mozilla [##########################################################] 100%
(107/138) installing ca-certificates [##########################################################] 100%
(108/138) installing libssh2 [##########################################################] 100%
(109/138) installing libpsl [##########################################################] 100%
(110/138) installing libnghttp2 [##########################################################] 100%
(111/138) installing curl [##########################################################] 100%
(112/138) installing npth [##########################################################] 100%
(113/138) installing libksba [##########################################################] 100%
(114/138) installing libassuan [##########################################################] 100%
(115/138) installing libsecret [##########################################################] 100%
Optional dependencies for libsecret
gnome-keyring: key storage service, or use any other service implementing org.freedesktop.secrets
(116/138) installing pinentry [##########################################################] 100%
Optional dependencies for pinentry
gtk2: gtk2 backend
qt5-base: qt backend
gcr: gnome3 backend
(117/138) installing nettle [##########################################################] 100%
(118/138) installing gnutls [##########################################################] 100%
(119/138) installing sqlite [##########################################################] 100%
(120/138) installing gnupg [##########################################################] 100%
Optional dependencies for gnupg
libldap: gpg2keys_ldap [installed]
libusb-compat: scdaemon
pcsclite: scdaemon
(121/138) installing gpgme [##########################################################] 100%
(122/138) installing pacman-mirrorlist [##########################################################] 100%
(123/138) installing archlinux-keyring [##########################################################] 100%
(124/138) installing pacman [##########################################################] 100%
Optional dependencies for pacman
perl-locale-gettext: translation support in makepkg-template
xdelta3: delta support in repo-add
(125/138) installing pciutils [##########################################################] 100%
(126/138) installing procps-ng [##########################################################] 100%
(127/138) installing psmisc [##########################################################] 100%
(128/138) installing reiserfsprogs [##########################################################] 100%
(129/138) installing s-nail [##########################################################] 100%
Optional dependencies for s-nail
smtp-forwarder: for sending mail
(130/138) installing sed [##########################################################] 100%
(131/138) installing sysfsutils [##########################################################] 100%
(132/138) installing systemd-sysvcompat [##########################################################] 100%
(133/138) installing tar [##########################################################] 100%
(134/138) installing texinfo [##########################################################] 100%
(135/138) installing usbutils [##########################################################] 100%
Optional dependencies for usbutils
python: for lsusb.py usage
coreutils: for lsusb.py usage [installed]
(136/138) installing vi [##########################################################] 100%
Optional dependencies for vi
s-nail: used by the preserve command for notification [installed]
(137/138) installing which [##########################################################] 100%
(138/138) installing xfsprogs [##########################################################] 100%
:: Running post-transaction hooks…
( 1/13) Updating linux module dependencies…
( 2/13) Updating linux initcpios…
==> 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: 5.0.4-arch1-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-compressed 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: 5.0.4-arch1-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
( 3/13) Warn about old perl modules
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_MESSAGES = “”,
LANG = “en_US.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
( 4/13) Updating journal message catalog…
( 5/13) Reloading system manager configuration…
Running in chroot, ignoring request: daemon-reload
( 6/13) Updating udev hardware database…
( 7/13) Applying kernel sysctl settings…
( 8/13) Creating system user accounts…
( 9/13) Creating temporary files…
(10/13) Reloading device manager configuration…
Running in chroot, ignoring request.
(11/13) Arming ConditionNeedsUpdate…
(12/13) Updating the info directory file…
(13/13) Rebuilding certificate stores…
pacstrap /mnt base 46.59s user 10.38s system 17% cpu 5:29.36 total

  1. Generate fstab
root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab
root@archiso ~ # cat /mnt/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# file system dir type options dump pass
# /dev/mapper/VolGroup00-root
UUID=674b6d27-bbf0-4a0e-8044-d6d99b6cc737 / ext4 rw,relatime 0 1

# /dev/sda1
UUID=8fd6c1d3-9279-40dd-a63e-a3925fdd5a83 /boot ext4 rw,relatime 0 2

# /dev/mapper/VolGroup00-swap
UUID=9a456655-487c-4d54-9c65-3d7c3a5fc89c none swap defaults 0 0
  1. Now chroot into our newly built system
root@archiso ~ # arch-chroot /mnt
[root@archiso /]#
  1. I setup our timezone to Denver and sync the current time to the hardware clock
[root@archiso /]# ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime
[root@archiso /]# hwclock –systohc
  1. Create the locale in /etc/locale.conf with the following contents:
LANG=en_US.UTF-8
  1. Set your hosts file by appending the following /etc/hostname
changeme
  1. Edit /etc/hosts and append the following:
127.0.0.1 localhost
::1 localhost
127.0.1.1 changeme.localdomain changeme
  1. Now, since the setup utilizes LVM, we have to recreate the mkinitio. First edit /etc/mkinitcpio.conf and find the uncommented HOOKS= line and change it to the following
HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck)
  1. Now re-run mkinitcpio to recompile the kernel with the lvm2 module. Note: the driver errors can be ignored as they are only applicable if you have RAID or SCSCI card.
[root@archiso /]# 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: 5.0.4-arch1-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: [lvm2]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed 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: 5.0.4-arch1-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x
-> Running build hook: [filesystems]
-> Running build hook: [lvm2]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
  1. Now that we have a nice initramfs, we need to go ahead and install our boot loader. Start by
[root@archiso /]# pacman -S grub
resolving dependencies…
looking for conflicting packages…

Packages (1) grub-2:2.02-8

Total Download Size: 5.96 MiB
Total Installed Size: 30.04 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages…
grub-2:2.02-8-x86_64 6.0 MiB 4.04M/s 00:01 [#############################################] 100%
(1/1) checking keys in keyring [#############################################] 100%
(1/1) checking package integrity [#############################################] 100%
(1/1) loading package files [#############################################] 100%
(1/1) checking for file conflicts [#############################################] 100%
(1/1) checking available disk space [#############################################] 100%
:: Processing package changes…
(1/1) installing grub [#############################################] 100%
Generate your bootloader configuration with:
grub-mkconfig -o /boot/grub/grub.cfg
Optional dependencies for grub
freetype2: For grub-mkfont usage
fuse2: For grub-mount usage
dosfstools: For grub-mkrescue FAT FS and EFI support
efibootmgr: For grub-install EFI support
libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue
os-prober: To detect other OSes when generating grub.cfg in BIOS systems
mtools: For grub-mkrescue FAT FS support
:: Running post-transaction hooks…
(1/2) Arming ConditionNeedsUpdate…
(2/2) Updating the info directory file…
  1. Now run the grub install for legacy mode. Be sure to point it at your main disk:
[root@archiso /]# grub-install –target=i386-pc /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
[root@archiso /]#
  1. Now generate your configuration file
[root@archiso boot]# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done
  1. Exit out of chroot, remove the ArchLinux disk and reboot the system.
  2. Once the system comes back up, our last task is assigning out an IP address. First touch the following file in /etc/netctl/ethernet-static
Description=’Main Interface’
Interface=ens192
Connection=ethernet
IP=static
Address=(‘192.168.1.100/24′)
Gateway=’192.168.1.1’
DNS=(‘8.8.8.8’)
  1. Change the permissions on the file and then just use netctl to start
[root@changeme ~]# chmod 600 /etc/netctl/ethernet-static
[root@changeme ~]# netctl enable ethernet-static
netctl enable ethernet-static
‘/etc/systemd/system/multi-user.target.wants/netctl@ethernet\x2dstatic.service’ -> ‘/usr/lib/systemd/system/netctl@.service’
generated ‘/etc/systemd/system/netctl@ethernet\x2dstatic.service.d/profile.conf’
[root@changeme ~]# netctl start ethernet-static
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:94:b8:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.222.255 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe94:b89c/64 scope link
valid_lft forever preferred_lft forever

Done, we now have a bare-bones build that can be used for a variety of applications.

Next article we will look at using that build to create a neato-keen OpenVPN server.

mfuller, PEI

Leave a Reply