logo cheese.nu / docs

install guide

very wip arch guide

  1. set keyboard layout:

    loadkeys sv-latin1
  2. set system clock:

    timedatectl set-ntp true
  3. optional: connect to wifi if no ethernet:

    nmcli d wifi connect <ssid> password <pass>
  4. find and partition disk:

    (WARNING: WILL NUKE DRIVE!!!!!!!!!)

    fdisk -l
    fdisk /dev/<disk>
    g                         # create efi partition table
    n [enter] [enter] +1G     # create boot part
    n [enter] [enter] [enter] # create root part
    t 1 1                     # set type of first to "EFI"
    t 2 23                    # set type of second to "Linux Root"
    w                         # apply changes
  5. format partitions:

    mkfs.fat -F32 /dev/<disk>1
    mkfs.btrfs --csum xxhash /dev/<disk>2

    xxhash checksum is very fast and very much good enough for detecting accidental errors.

  6. mount root:

    • no compression:

      mount -o defaults,lazytime /dev/<disk>2 /mnt

      lazytime stores access times in memory and only commits periodically to reduce drive wear.

    • light zstd compression

      mount -o defaults,lazytime,compress=zstd:1 /dev/<disk>2 /mnt

      simple and almost transparent compression for reducing size of smaller files.

  7. mount boot:

    mount -o defaults,noatime --mkdir /dev/<disk>1 /mnt/efi

    don't need access time on the boot partition.

  8. bootstrap base packages:

    pacstrap /mnt base linux-zen linux-firmware nano networkmanager man-db man-pages texinfo openssh sudo
  9. generate fstab from current mounts:

    genfstab -U /mnt >> /mnt/etc/fstab
  10. change root into target system:

    arch-chroot /mnt
  11. set timezone and sync hardware clock:

    ln -sf /usr/share/zoneinfo/<region>/<city> /etc/localtime
    hwclock --systohc
  12. open up /etc/locale.gen and uncomment en_US.UTF-8 UTF-8 plus any other wanted languages. then we can generate em:

    locale-gen
  13. set lang variables by putting the following in /etc/locale.conf:

    LANG=en_US.UTF-8
    LANGUAGE=en_US.UTF-8
    LC_ALL=en_US.UTF-8
  14. set keyboard layout for cli in /etc/vconsole.conf:

    KEYMAP=sv-latin1
  15. set hostname in /etc/hostname (just an example, can be almost whatever):

    arch
  16. optional: set root password

    passwd
  17. open up /etc/mkinitcpio.conf, comment out any existing hooks and replace with the following ones instead:

    #HOOKS=(...)
    HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
  18. enable efi instead of initramfs:

    cp /etc/mkinitcpio.d/linux-zen.preset /etc/mkinitcpio.d/linux-zen.preset.bak
    nano /etc/mkinitcpio.d/linux-zen.preset

    comment out default_image=... and fallback_image=.... uncomment default_uki=... and fallback_uki=....

  19. configure your kernel parameters in /etc/kernel/cmdline (very basic setup):

    rw zswap.enabled=0
  20. install systemd-boot and generate boot files:

    bootctl install
    mkinitcpio -P
  21. enable NetworkManager on boot:

    systemctl enable NetworkManager
  22. optional: enable ssh server:

    systemctl enable sshd

    disable remote root login in /etc/ssh/sshd_config:

    PermitRootLogin no
  23. optional: enable sudoers (wheel) group:

    groupadd wheel
    EDITOR=nano visudo

    uncomment %wheel ALL=(ALL:ALL) ALL.

  24. optional: create a user account:

    • if using sudo, also add sudoers group:

      useradd -m -G wheel -s /bin/bash <username>
    • if not using sudo:

      useradd -m -s /bin/bash <username>

    change password:

    passwd <username>
  25. exit and reboot:

    exit
    reboot

Copyright © 2025. Made with 💀 by ThaCheeseBun. prod 511a0426eb.