reupload
This commit is contained in:
118
arch-platform/README.md
Normal file
118
arch-platform/README.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# arch-platform
|
||||
|
||||
## Introduction
|
||||
|
||||
This document describes disk partitioning and installation of the minimal Arch Linux system with LVM-in-LUKS, systemd-boot and network capabilities.
|
||||
|
||||
Created at 2022-05-22T23:58:54Z and not so well maintained as I rarely use it.
|
||||
|
||||
## Create installation medium
|
||||
|
||||
1. [Download](https://archlinux.org/download/) via torrent
|
||||
2. Verify: `sha256sum <path> | grep <checksum>`
|
||||
3. Find usb device name: `lsblk`
|
||||
4. Create installation medium: `dd if=<path> of=/dev/<device> bs=1MiB`
|
||||
|
||||
## Install
|
||||
|
||||
1. Boot to USB image
|
||||
2. On loader screen press `e`, append `nomodeset` the at end of `linux` commans
|
||||
3. Partitioning: `parted <disk>` (see name via `lsblk`)
|
||||
|
||||
```
|
||||
mklabel gpt
|
||||
mkpart ESP fat32 1MiB 513MiB
|
||||
set 1 boot on
|
||||
mkpart primary ext4 514MiB 100%
|
||||
quit
|
||||
```
|
||||
|
||||
4. Encrypt & open:
|
||||
|
||||
```bash
|
||||
cryptsetup luksFormat <disk>p2
|
||||
cryptsetup luksOpen <disk>p2 <diskname>p2_crypt
|
||||
```
|
||||
|
||||
5. Create volumes:
|
||||
|
||||
```bash
|
||||
pvcreate /dev/mapper/<diskname>p2_crypt
|
||||
vgcreate main /dev/mapper/<diskname>p2_crypt
|
||||
lvcreate -L <RAM+2G>G main -n swap
|
||||
lvcreate -L <N>G main -n root
|
||||
lvcreate -l 100%FREE main -n home
|
||||
```
|
||||
|
||||
6. Create FS:
|
||||
|
||||
```bash
|
||||
mkfs.ext4 /dev/mapper/main-root
|
||||
mkfs.ext4 /dev/mapper/main-home
|
||||
mkswap /dev/mapper/main-swap
|
||||
mkfs.fat -F32 /dev/<disk>p1
|
||||
```
|
||||
|
||||
7. Mount:
|
||||
|
||||
```bash
|
||||
mount /dev/mapper/main-root /mnt
|
||||
mkdir /mnt/home /mnt/boot
|
||||
mount /dev/mapper/main-home /mnt/home
|
||||
mount /dev/nvme0n1p1 /mnt/boot
|
||||
swapon /dev/mapper/main-swap
|
||||
```
|
||||
|
||||
8. Wifi setup (if needed)
|
||||
|
||||
```bash
|
||||
iwctl device list
|
||||
iwctl station [device] connect [network_name]
|
||||
```
|
||||
|
||||
9. Update keyring (iso may be too old): `pacman -Sy archlinux-keyring`
|
||||
10. Install (for wifi you also need `networkmanager`):
|
||||
|
||||
```bash
|
||||
pacstrap -i /mnt base linux linux-firmware intel-ucode lvm2 sudo vim polkit
|
||||
```
|
||||
|
||||
11. Disks: `genfstab -U /mnt >> /mnt/etc/fstab`
|
||||
12. Change root: `arch-chroot /mnt`
|
||||
13. Add loader hooks: `vim /etc/mkinitcpio.conf`, set
|
||||
|
||||
```conf
|
||||
HOOKS=(base udev autodetect microcode keyboard keymap modconf block encrypt lvm2 filesystems fsck)`
|
||||
```
|
||||
|
||||
14. Make initrams: `mkinitcpio -p linux`
|
||||
15. Install bootloader: `bootctl install --path=/boot`
|
||||
16. Save disk UUID: `cryptsetup luksUUID /dev/<disk>p2 > /boot/loader/entries/arch.conf`
|
||||
17. Make boot config: `vim /boot/loader/entries/arch.conf`
|
||||
|
||||
```conf
|
||||
title Arch
|
||||
linux /vmlinuz-linux
|
||||
initrd /initramfs-linux.img
|
||||
options quiet loglevel=3 cryptdevice=UUID=[uuid]:[disk_name]p2_crypt root=/dev/mapper/main-root rw resume=/dev/mapper/main-swap
|
||||
```
|
||||
|
||||
18. Make generic boot config: `vim /boot/loader/loader.conf`, set `default arch`
|
||||
19. Create sudo group: `groupadd -g 1000 sudo`
|
||||
20. Grant privileges: `visudo`, uncomment or add line `%sudo ALL=(ALL:ALL) ALL`
|
||||
21. Add user
|
||||
|
||||
```bash
|
||||
groupadd -g 2000 <username>
|
||||
useradd -m --groups sudo --gid 2000 --uid 2000 <username>
|
||||
passwd <username>
|
||||
```
|
||||
|
||||
22. `exit`, `reboot` into real system
|
||||
23. login, `sudo su`
|
||||
24. Uncomment locale in `/etc/locale.gen`, run `locale-gen`
|
||||
25. `echo "<name>" > /etc/hostname`
|
||||
26. `systemctl enable NetworkManager --now`
|
||||
27. Enable and sync time: `systemctl enable systemd-timesyncd --now`
|
||||
28. Get tz from `tzselect`, set via `timedatectl set-timezone [tz]`
|
||||
29. Update hwclock: `hwclock -w --utc`
|
||||
Reference in New Issue
Block a user