arch-install/README.md

120 lines
3.0 KiB
Markdown

# Personal Arch Linux Install Guide
I'm using this repo to record the steps I take to install and personalize arch linux.
Hopefully I can automate some of the later steps over time.
# Part 1 - Installation
Generally following the steps on the arch
[install guide](https://wiki.archlinux.org/title/Installation_guide) to
get to a chrooted environment.
- Verify we booted as x64 UEFI `cat /sys/firmware/efi/fw_platform_size`
## Network
- Check device with `ip link`
- Auth wifi with `iwctl station wlan0 connect $AP_NAME`
- `ping archlinux.org` to verify
## Partitioning
Use fdisk to partition:
/boot : 1G partition, type=1 (EFI), bootable (press M then a)
/ : remainder of the disk, default type
For /boot (/dev/sda1) call `mkfs.fat -F 32 /dev/sda1`
Follow the steps
[here](https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system#LUKS_on_a_partition)
to encrypt the root partition. Consider increasing the cryptographic parameters as mentions.
Mount the partitions at /mnt and /mnt/boot.
## Install
Install the base:
`pacstrap -K /mnt base linux linux-firmware`
Followed by important packages:
`pacstrap /mnt grub efibootmgr e2fsprogs networkmanager vim man-db man-pages texinfo sudo`
# Part 2 - Configure
Generally follow the configure the system steps in the
[install guide](https://wiki.archlinux.org/title/Installation_guide#Configure_the_system).
`genfstab -U /mnt >> /mnt/etc/fstab`
`arch-chroot /mnt`
- Set the time as described.
- Set the localization as described.
- Enable NetworkManager `systemctl enable NetworkManager.service`
- Update the initramfs as described
[here](https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system#Configuring_mkinitcpio)
- Set the root password
- Run `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB`
- Update `/etc/default/grub` to have the line:
`GRUB_CMDLINE_LINUX="cryptdevice=UUID=device-UUID:root root=/dev/mapper/root"`
- Run `grub-mkconfig -o /boot/grub/grub.cfg`
- Reboot sucessfully(?) into the new system.
## In the new system
Connect to wifi
- `nmcli device wifi list`
- `nmcli device wifi connect --ask $SSID`
- `nmcli c modify $SSID connection.autoconnect true`
Create a user:
- `useradd -m -G wheel drew`
- `EDITOR=vim visudo` and uncomment the line starting %wheel
Install helpful utilities:
- `pacman -S git`
TODO: Install graphics driver pagckages?
# Part 3 - Desktop
Reboot and login as the new user.
Clone this git repo at /home/drew/install.
Run `sudo ./install_desktop.sh`
# Part 4 - Applications
`mkdir Documents/ Downloads/ Pictures/`
`sudo pacman -S firefox`
Log into firefox w/ sync (installs bitwarden.)
# Part 5 - Dev environment
`sudo pacman -S neovim lua-language-server ccls rust rust-analyzer jedi-language-server`
Start up neovim and run PackerSync
(note you may have to comment out:
init.lua: require(impatient)
opts.lua: vim.cmd("colorscheme nordfox")
Add ssh keys to gitea and gitlab.
mkdir prog and clone a c++ code base, a python code base, and a rust code base to test the language server.
# Part 6 - Optional
Steam?