# installing Arch on a VM This is a basic set of instructions for installing Arch on a virtual machine. # starting steps Boot up the latest Arch install disk from PXE or an `iso` file. Find which disk partition you are installing on. For the purpose of this documentation, the disk is `/dev/vda`, but it may be different. ``` lsblk ``` Run parted and make a partition. This is for MBR. ``` parted /dev/vda (parted) mklabel msdos (parted) mkpart p ext4 1M 100% (parted) quit ``` Create the filesystem ``` mkfs.ext4 /dev/vda1 ``` Mount the filesystem. ``` mount /dev/vda1 /mnt ``` Edit the mirrorlist ``` vim /etc/pacman.d/mirrorlist ``` Add the following line: ``` Server = http://128.153.145.19/archlinux/$repo/os/$arch ``` Pacstrap the base system (base is `base` system, `base-devel` is gcc and some build tools, `vim` for editor, `htop` for stuff, `git` for aur, `grub` for bootloader, `go` for `yay` later) ``` pacstrap /mnt base base-devel vim htop git grub go ``` Wait. Stop waiting. Install fstab ``` genfstab -U /mnt > /mnt/etc/fstab ``` Chroot ``` arch-chroot /mnt /bin/bash ``` Install `grub`. ``` grub-install /dev/vda grub-mkconfig -o /boot/grub/grub.cfg # notice, not /dev/vda1. This is the disk, not the partition. ``` Set password. Use the VMSSMP for COSI infrastructure. ``` passwd ``` Configure networking. Find the network interface. Something with `NO CARRIER` is probably *not* it. It may have an IPv6 global address and perhaps a COSI IPv4 address already. ``` ip -c a ``` Change to the `netctl` folder, copy static ethernet example.s ``` cd /etc/netctl cp examples/ethernet-static ethernet ``` Edit the ethernet file. ``` vim ethernet ``` Typical contents ``` Description='A basic statc ethernet connection' Interface=ens3 Connection=ethernet IP=static Address=('128.153.145.23/24') Gateway='128.153.145.1' DNS=('128.153.145.3') ``` Enable that, document IP addresses if on COSI infrastructure. ``` netctl enable ethernet ``` Edit hostname ``` vim /etc/hostname ``` We're done. Exit and reboot. Remove bootable media if applicable. ``` exit reboot ``` If you screw up, feel free to reboot into the live media, and then you can chroot into the system to fix it after mounting it. Don't forget to create the `cslabadmin` user. `openssh` server is also probably good - typically the only edits are to enable `Listen 0.0.0.0` and `Port 13699`. Random commands useful to doing things: ``` # create user useradd # create group groupadd # add user to group gpasswd -a # set default editor to Vim export EDITOR=vim # add sudo group to sudoers visudo # get and install yay (AUR package manager) git clone https://aur.archlinux.org/yay.git cd yay makepkg -i ```