committer 864d9c075e u
2024-06-10 21:37:49 -05:00
u
2024-06-10 21:37:49 -05:00
2024-05-12 14:14:13 -05:00
2024-06-10 11:00:47 -05:00
u
2024-06-06 19:12:32 -05:00

linux arch

step one :: usb drive preparation

$ gpg --keyserver-options auto-key-retrieve --verify archlinux-2024.04.01-x86_64.iso.sig
gpg: assuming signed data in 'archlinux-2024.04.01-x86_64.iso'
gpg: Signature made 2024-04-01T13:00:16 EST
gpg:                using EDDSA key 3E80CA1A8B89F69CBA57D98A76A5EF9054449A5C
gpg:                issuer "pierre@archlinux.org"
gpg: key 76A5EF9054449A5C: public key "Pierre Schmitz <pierre@archlinux.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: Good signature from "Pierre Schmitz <pierre@archlinux.org>" [unknown]
gpg:                 aka "Pierre Schmitz <pierre@archlinux.de>" [unknown]
gpg: WARNING: The key's User ID is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3E80 CA1A 8B89 F69C BA57  D98A 76A5 EF90 5444 9A5C
  • install to usb
    • insert usb
    • lsblk (alt: df)
      • ➔ usb = sda
    • sudo dd bs=4M if=archlinux-2024.04.01-x86_64.iso of=/dev/sda status=progress oflag=sync
      • error: dd: failed to open '/dev/sda': Device or resource busy
      • solution: using gparted, you can reformat the drive (from fat32) to ext4, then try again

step two :: boot the iso

  • boot the target system using the arch iso, and prepare for a guided install
    • tuxwarrior: F2 for BIOS
    • thinkpad: F12 for boot options (F1 for BIOS)
  • select ArchLinux install medium (x86_64, x64 UEFI)
    • grub error
      • error: you need to load the kernel first
      • error start_image() returned 0x800000000000001
      • solution
        • reinstall iso on usb
    • arch iso error
      • squashfs error unable to read
      • solution
        • re-install the ISO on another USB device
    • arch iso error
      • ip link gives no wifi
      • solution
        • re-install the ISO on another USB device

step three :: generate config for new hosts

  • on new host:
  • archinstall --dry-run
    • install language: english (default)
    • mirrors: colombia, united states, worldwide
    • locales: keyboard us, loc lang en_AU.UTF-8, loc enc UTF-8
    • disk config: use a best-effort default partition layout ➔ pick main hd ➔ btrfs ➔ default structure yes ➔ compression or disable Cow ESC (do not)
    • disk encryption: no (default)
    • bootloader: systemd-boot (default)
    • unified kernel image: False (default)
    • swap: True (default)
    • hostname: tuxwarrior
    • root password: leave blank (default)
    • user account: leave empty (default)
    • profile: type ➔ minimal
    • audio: pipewire
    • kernels: linux (default)
    • additional packages: git nano tree wget
    • network configuration: Use NetworkManager
    • timezone: America/Panama
    • Automatic time sync: True (default)
    • Optional repositories: leave blank (default)
    • Save configuration

      • Save user configuration (inc disk layout)

      • Save directory: /tmpyes
  • curl -F'file=@user_configuration.json' https://0x0.st
  • on existing host:
  • for this repo, inside dots/archinstall create folder for new host (use hostname as folder name)
    • open page given above, like https://0x0.st/Xbov.json
    • save raw content as user_configuration.json
    • (change gfx_driver value from null to Nvidia (proprietary)) - not needed, i think
    • save file
  • from a pre-existing host directory, copy over and modify (if needed) options.sh, packages.txt and services.txt. this should be copied to new host directory
    • example: copied from dots/archinstall/t470p to dots/archinstall/tuxwarrior
  • commit changes to this repo, adding the new host files

step four :: arch install :: the basics

  • ip link
    • lo (loopback - special device)
    • enp0s31f6 (ethernet)
    • wlan0 (wifi)
  • iwctl
    • station wlan0 scan
    • station wlan0 get-networks
    • station wlan0 connect -_-
    • exit
  • cd /tmp
  • curl -L -O https://git.mz.fo/fro/lnx-arch/raw/branch/master/scripts/archinstall_config_download.sh
    • (-L to follow redirects, -O to save to disk)
  • chmod 755 archinstall_config_download.sh
  • cat archinstall_config_download.sh
  • ./archinstall_config_download.sh
    • hostname: tuxwarrior
    • password: [poq.L2]
    • make sure both user .json files have been downloaded and updated
      • two files should be listed: user_configuration.json and user_credentials.json
      • check datestamp shown at the end when running the script
  • archinstall --config user_configuration.json --creds user_credentials.json
    • Install
    • Would you like to chroot into ... perform post-installation config?

      • no
    • reboot

step four :: arch install :: software & dots

  • log in as poq
  • nmtui (activate internet connection)
  • set up curae (system tool)
    • cd /tmp
    • wget https://git.mz.fo/fro/lnx-arch/raw/branch/master/scripts/curae_setup.sh
    • cat curae_setup.sh ➔ verify the file content
    • chmod 755 curae_setup.sh
    • sudo ./curae_setup.sh
  • sudo curae yay (install yay, which is used to install aur packages)
  • sudo curae uf (full update, install packages, hostname is optional)
    • same as running the two commands:
    • sudo curae sw
    • sudo curae dots
  • sudo curae dots+ (download wallpapers, fonts++)
  • sudo ufw enable (enable firewall)
  • reboot & re-login
  • startx (start window manager)
  • start firefox
  • (nextcloud and protonvpn will start automatically, just exit the applications)
  • start firefox (SUP + Dfirefox)
  • close firefox
  • create local sync folder for nextcloud
    • local folder must match $SYNCDIR_HOSTNAME in dots/environment/environment
      • t470p: /home/poq/nextcloud
      • tuxwarrior: /home/poq/nextcloud
  • open the terminal (SUP + Enter)
  • curae sw (install sw that were not installed first time around - not sure why this is needed)
  • curae dots (the re-run of dots will deploy firefox settings)
  • curae services (enable services)
  • reboot & re-login
  • set up nextcloud sync (it should start automatically)
  • in nextcloud
    • log in
    • pick local folder (created above), and
    • choose to sync everything to the local nextcloud folder
    • wait for nextcloud to sync (will take hours, depending on the internet speed)
  • syncDirSetup.sh (will set up ~/syncDir)
  • mountDownloadsDir.sh (will mount ~/Downloads to syncDir's download dir)
  • deploySshKeys.sh (deployment of ssh keys)
  • importGnupgKeys.sh (deployment of gnupgp keys)
  • reboot and re-login

step five :: post installation tasks

  • gnome keyring
  • firefox
    • install dictionaries for en-AU and no-NB
    • singlefile name format:
      • old: %if-empty<{page-title}|No title> ({date-locale} {time-locale}).{filename-extension}
      • new: {year-locale}{month-locale}{day-locale}_{url-href-flat}_.{filename-extension}

error solving

more info

Description
arch linux
Readme 4.7 MiB
Languages
Shell 85.4%
Python 12.5%
CSS 2.1%