Optionally changing key maps and font:
loadkeys dvorak # us is the default
setfont LatArCyrHeb-16 # better fonts for big monitorsMulti boot is a thing of the past, check legacy for information.
Use gdisk to partition, ${diskN} could be sdX or nvme0n1 or something else.
Here we create a few variables to make the rest more generic and maybe later do an automatic installation script.
export disk1=nvme01n1
export disk2=sda
export part1=nvme01n1p1
export part2=nvme01n1p2
export part3=sda1
export part4=sda2gdisk /dev/$disk1| Dev | Size | Mount point | File system | gdisk type code |
|---|---|---|---|---|
| SSD | 1G | EFI System Parition | fat32 | EF00 |
| SSD | / |
ext4 | 8300 | |
| HDD | /var |
btrfs | var subvol | |
| HDD | /home/lmcs/archive |
btrfs | Archive subvol |
Swap is a file, instead of a partition, so it can be resized easily. It should be contained in the SSD. But should only be created or activated when there are RAM issues.
Format partitions, for example:
mkfs.fat -F32 /dev/$part1
mkfs.ext4 /dev/$part2In case we have extra storage, we can use btrfs or plain old ext4s
mkfs.btrfs -f -L Storage /dev/$disk2
btrfs subvolume create var
btrfs subvolume create DocumentsIt's recommended to have the efi partition on /boot to allow systemd-boot
to work
mount /dev/$part2 /mnt
mkdir /mnt/boot
mount -t vfat /dev/$part1 /mnt/bootmount -o subvol=var /dev/$disk2 /mnt/var
mount -o subvol=Documents /dev/$disk2 /mnt/home/lmcs/Documentspacstrap helps us install the base, check -h to confirm the flags.
In case we are installing using arch-install-scripts from an existing installation
it might be recommended to create /mnt/etc and copy the local copy of
vconsole.conf and cozette12x26 there.
pacstrap -KP /mnt base linux linux-firmwarechroot into the new system:
arch-chroot /mntInstalling base-devel and the microcode depending on the processor:
pacman -S base-devel {amd or intel}-ucodeInstalling some bare bones stuff:
pacman -S efibootmgr git github-cli neovim zshMaking swap a file lets us resize it later if needed, but need to use
UUID + offset for stuff like hibernation.
fallocate -l 32G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfileNow we can generate the fstab. Make sure to fix any unintended values, for
example, the UEFI must be mounted on /boot for and have {f,d}mask=0077.
The <ctrl+d> part means we exit the chroot environment.
<ctrl-d>
genfstab -pU /mnt >> /mnt/etc/fstabAfterwards maybe change to defaults,noatime,discard all ssd partitions to
reduce input output operations from frequent disk checks.
We create the user, clone a couple repos and fire aconfmgr, to start make
sure to chroot back in.
arch-chroot /mntWe create the normal user:
useradd -m -s $(which zsh) lmcs
chfn lmcs
passwd lmcsMake the user owner of the ~/Documents if it's a mounted partition.
chown -R lmcs:users /home/lmcs/DocumentsNow we add the user to sudoers
EDITOR=nvim visudoAdd lmcs ALL= ALL somewhere and exit :wq.
suing as the normal user and authenticating:
su - lmcs
gh auth loginClone and checkout the bare repository with the dot files.
git clone --bare https://github.com/lmcanavals/dotfiles.git .dotfiles.git
rm .gitconfig .config/gh/config.yml .bash*
git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME checkoutClone aconfmgr link it and run it.
mkdir -p Apps/repos/
cd Apps/repos/
git clone --depth 1 https://github.com/CyberShadow/aconfmgr.git
<ctrl-d>
ln -s /home/lmcs/Apps/repos/aconfmgr/aconfmgr /usr/bin/
ln -s /home/lmcs/Apps/repos/aconfmgr/src/ /usr/lib/aconfmgr
su - lmcs
# cha cha chaaaan
aconfmgr applyMaking sure the system can boot
Set it like this
passwd