Update Arch guide as base for blendOS

This commit is contained in:
exu 2024-05-28 18:42:48 +02:00
parent c7ad7da6f8
commit 486c7a283e

View File

@ -19,7 +19,7 @@ loadkeys de_CH-latin1
## Check UEFI mode
If the following command works, the system is booted in EFI.
If the following command works, the system is booted in EFI.
[shroot]
@ -66,7 +66,7 @@ Use `Linux filesystem` for other partitions
_Note: Do not put your /efi partition on an encrypted partition!_
Create encrypted Partition with a label. This label will later be used to identified the bootdevice as a simpler alternative to UUIDs.
Create encrypted Partition with a label. This label will later be used to identified the bootdevice as a simpler alternative to UUIDs.
[shroot]
@ -76,7 +76,7 @@ cryptsetup luksFormat --label=(label) /dev/(partition)
[/shroot]
Open the partition and specify a name
Open the partition and specify a name
[shroot]
@ -91,7 +91,9 @@ The name should show up there
## Format partitions
Fat 32:
### EFI or BIOS partition
Fat 32:
[shroot]
@ -101,9 +103,9 @@ mkfs.fat -F32 /dev/(partition)
[/shroot]
_For EFI or BOOT partition_
### Root and other partitions
Ext4:
**Ext4**
[shroot]
@ -113,9 +115,7 @@ mkfs.ext4 /dev/(partition)
[/shroot]
_All other partitions_
Btrfs:
**Btrfs**
[shroot]
@ -125,7 +125,15 @@ mkfs.btrfs /dev/(partition)
[/shroot]
_All other partitions_
**Bcachefs**
[shroot]
```
bcachefs format /dev/(partition)
```
[/shroot]
## Mounting partitions
@ -135,7 +143,7 @@ Be careful in choosing you EFI mountpoint when using full disk encryption.
Using `/efi` will lead to much longer boot times in GRUB and be completely unsupported in other bootloaders.
See [this feature comparison](https://wiki.archlinux.org/title/Arch_boot_process#Boot_loader) for details.
For `/efi` size really doesn't matter much and can be 1 or 2 megabytes. 16MB is probably a good size.
If you're using `/boot`, the kernel and initramfs will also be stored on this partition among others. Recommended sizes range from 256MB to 512MB
If you're using `/boot`, the kernel and initramfs will also be stored on this partition among others. Recommended sizes range from 256MB to 512MB
```
Root: /mnt
@ -146,7 +154,7 @@ etc...
### (BTRFS) Btrfs preparation of subvolumes and mounting
Mount root partition
Mount root partition
[shroot]
@ -156,7 +164,7 @@ mount /dev/(partition) /mnt
[/shroot]
Root subvolume
Root subvolume
[shroot]
@ -166,7 +174,7 @@ btrfs subv create /mnt/@
[/shroot]
Home subvolume
Home subvolume
[shroot]
@ -176,7 +184,7 @@ btrfs subv create /mnt/@home
[/shroot]
Snapshots subvolume for snapper
Snapshots subvolume for snapper
[shroot]
@ -186,7 +194,7 @@ btrfs subv create /mnt/@snapshots
[/shroot]
Var subvolume
Var subvolume
[shroot]
@ -196,17 +204,6 @@ btrfs subv create /mnt/@var_log
[/shroot]
_If you want to use a swapfile with Snapper, create a new subvolume now_
Swap subvolume
[shroot]
```
btrfs subv create /mnt/@swap
```
[/shroot]
[shroot]
```
@ -219,9 +216,9 @@ Mount root
`mount -o noatime,compress-force=zstd,subvol=@ /dev/(partition) /mnt`
With /efi
`mkdir -p /mnt/{efi,home,.snapshots,var/log,swap}`
`mkdir -p /mnt/{efi,home,.snapshots,var/log}`
With /boot
`mkdir -p /mnt/{boot,home,.snapshots,var/log,swap}`
`mkdir -p /mnt/{boot,home,.snapshots,var/log}`
Mount home
`mount -o noatime,compress-force=zstd,subvol=@home /dev/(partition) /mnt/home`
@ -229,47 +226,15 @@ Mount home
Mount snapshots for snapper
`mount -o noatime,compress-force=zstd,subvol=@snapshots /dev/(partition) /mnt/.snapshots`
Mount var
Mount var/log
`mount -o noatime,compress-force=zstd,subvol=@var_log /dev/(partition) /mnt/var/log`
Swap subvolume
`mount -o noatime,subvol=@swap /dev/(partition) /mnt/swap`
**Don't forget mounting other partitions!!**
## Swap
### Swapfile
#### Normal way
**NOT FOR BTRFS!**
[shroot]
```
dd if=/dev/zero of=/mnt/swapfile bs=1M count=(size) status=progress
```
[/shroot]
#### (BTRFS) Swapfile in btrfs
_Use a separate subvolume to work with snapper_
[shroot]
```
btrfs fi mkswapfile --size [SIZE]g --uuid clear /mnt/swap/swapfile
swapon /mnt/swap/swapfile
```
[/shroot]
## Essential packages
Install a few essential packages using `pacstrap`.
Additional packages might also be necessary, see the list below.
Additional packages might also be necessary, see the list below.
[shroot]
@ -389,7 +354,7 @@ pacman -S refind
[/shroot]
Use the rEFInd installation script. In most cases no specific configuration is necessary
Use the rEFInd installation script. In most cases no specific configuration is necessary
[shroot]
@ -399,22 +364,43 @@ refind-install
[/shroot]
**Manual editing of the generated configuration file is necessary when installing rEFInd from the Arch boot ISO**
**Manual editing of the generated configuration file is necessary when installing rEFInd from the Arch boot ISO**
_TODO insert config here_
_TODO insert config here_
```
"Boot with standard options" "rw loglevel=3 quiet cryptdevice=LABEL=(label):(name) root=/dev/mapper/(name) rootflags=subvol=@"
```
### mkinitcpio with LUKS
### GRUB
Some additional settings are necessary in `/etc/mkinitcpio.conf` in order to enable booting from LUKS-encrypted disks.
[shroot]
Edit the `HOOKS` section in `/etc/mkinitcpio.conf` by adding `encrypt` after `block` and before `filesystems`
```
pacman -S grub efibootmgr
```
Also ensure `keyboard keymap` are present before `encrypt` in order to allow the loading of the default keyboard language from `/etc/vconsole.conf` to enter the decryption password.
[/shroot]
Regenerate all initramfs presets
Make sure the `/boot` or `/efi` partition is mounted
[shroot]
```
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
```
[/shroot]
### (LUKS) mkinitcpio with LUKS
Some additional settings are necessary in `/etc/mkinitcpio.conf` in order to enable booting from LUKS-encrypted disks.
Edit the `HOOKS` section in `/etc/mkinitcpio.conf` by adding `encrypt` after `block` and before `filesystems`
Also ensure `keyboard keymap` are present before `encrypt` in order to allow the loading of the default keyboard language from `/etc/vconsole.conf` to enter the decryption password.
Regenerate all initramfs presets
[shroot]
@ -519,6 +505,8 @@ pacman -S snap-pac
_WIP_
`paru -S refind-btrfs`
`paru -S refind-btrfs`
`systemctl enable --now refind-btrfs.service`
TODO config