First post of the New Year. Still got it in January. I moved States, bought a house, got a dog. So blogging has not been at the top of the list.
Now that I emptied my storage unit, I found my old buddy Tinman. He's a Core i7 ‘server’ with two GTX 480's and 2TB of space. He's old, but sturdy. He deserves a place of glory. And and Arch installation.
In my previous article, I installed Arch on my ThinkPad. That installation is still going strong and I'm very happy with the rolling release. I solved some maintenance issues like running out of space in this article. Running out of space is really the only problem I've had. Arch for life.
This is based off Peter Beard's awesome article on the subject. There are some things that are different and I suspect because they're just out of date.
Note: This is for a BIOS installation.
My previous article was for UEFI hardware.
You will know if you have UEFI at boot of the live media if you have the folder:
If the live media does not have that folder, then you are on a BIOS system and your partition scheme and installation will be different.
This was a pain point for my current installation, so I want to make sure to call that out ahead of time.
Also Note that you should use the latest installation media because the
archlinux-keyring package is updated frequently.
Over time, signing keys are revoked and the keyring needs to be updated.
If you're working with a 4GB installation USB stick, it may not be possible to
pacman -Syu update your installation media because you will run out of space.
Downloading the new ISO is the best bet.
On a Mac:
sudo dd if=/Users/admin/Downloads/archlinux-2020.01.01-x86_64.iso of=/dev/rdisk2 bs=1m
/dev/disk2 is the unreadable USB stick. Note the
I took Peter's lead and followed this partition scheme goal:
/dev/sda1- 1 MiB for BIOS compatibility
/dev/sda2- 200 MiB for /boot
/dev/sda3- The rest of the disk
cgdisk and that isn't mentioned in the Arch Installation Guide the way
parted is mentioned.
It is way easier to use than
parted and I don't think I'll go back.
When you start up
cgdisk it is pretty intuitive to navigate, just remember to select the free space for each new partition you want to make.
/dev/sda1- 1 MiB, type
/dev/sda2- 200 MiB, type
/dev/sda3- Remainder, type
write that to the disk, then
Write cryptographically secure ‘zeroes’ to the disk.
cryptsetup luksFormat -s 512 /dev/sda3
Open the drive with the passphrase.
cryptsetup luksOpen /dev/sda3 luks
Create your filesystem.
pvcreate /dev/mapper/luks vgcreate vg0 /dev/mapper/luks vgdisplay (record size "Free PE") lvcreate -l 32729 /dev/mapper/vg0 -n root mkfs.ext4 /dev/mapper/vg0-root
Mount your drives.
mount /dev/mapper/vg0-root /mnt mkdir /mnt/boot mount /dev/sda2 /mnt/boot
After all these, you should have a system that is ready to strap.
pacstrap /mnt linux linux-firmware vim base-devel base lvm2 dhcpcd
Note: If you screw up something like I did, you can mount the drives in the way specified above from the live media and
pacstrap additional things that are available through pacman.
dhcpcd, so that is exactly what I did so I didn't have to restart the installation process.
After the installation process is complete:
genfstab -p /mnt >> /mnt/etc/fstab arch-chroot /mnt /bin/bash
You're now ‘in’ your new installation. You should set up the niceties.
vim /etc/hostname ln -s /usr/share/zoneinfo/US/Arizona /etc/localtime vim /etc/locale.gen [Uncomment the one you want] locale-gen echo "LANG=en_us.UTF-8" > /etc/locale.conf
This part is what is different between Peter's experience and mine. In the file
HOOKS= (base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck)
Then run this to build the
initramfs image that will strap your system prior to decrypting your SDD.
mkinitcpio -p linux
pacman -S grub
Now put Grub on the disk.
grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
exit umount -R /mnt reboot
You should have a working installation now!
You'll need to enable DHCP to have a happy life.
Find your ethernet device with
ip link and commit the device name to memory.
You'll be using it a lot in the future.
To get DHCP to work, link the following for systemd.
I reserve the right to edit this. It is my site.