78 lines
2.8 KiB
Markdown
78 lines
2.8 KiB
Markdown
|
What is it? null linux is a rebuild of [splitlinux](https://splitlinux.org) with modern features
|
||
|
*"Split Linux is a general operating system optimized for safely navigating hostile environments like the Internet and physical check points."*
|
||
|
![[Pasted image 20230714181622.png]]
|
||
|
Instead of logical volumes we use BTRFS
|
||
|
![[Pasted image 20230714182112.png]]
|
||
|
Instead of Xorg we will be using Wayland
|
||
|
as instead of DWM we will be using Hyprland
|
||
|
|
||
|
we will also be using musl only
|
||
|
|
||
|
first we will wipe the nvme namespaces with 0xffffffff
|
||
|
```
|
||
|
nvme format -s1 /dev/nvme0n1
|
||
|
```
|
||
|
then create the UEFI boot partion:
|
||
|
```bash
|
||
|
parted /dev/nvme0n1 mklabel gpt
|
||
|
parted /dev/nvme0n1 mkpart ESP fat32 1MiB 513MiB name boot
|
||
|
parted /dev/nvme0n1 set 1 esp on
|
||
|
parted /dev/nvme0n1 set 1 boot on
|
||
|
mkfs.fat -F32 /dev/nvme0n1p1
|
||
|
```
|
||
|
This creates a 512 MiB EFI System Partition (ESP) named `boot` at the beginning of the NVMe drive and formats it with the FAT32 filesystem.
|
||
|
*Note: its best to keep boot on a seperate drive but for this alpha instructions we will be containing it on a separate partition*
|
||
|
next create a the luks partition:
|
||
|
```bash
|
||
|
parted /dev/nvme0n1 mkpart primary 513MiB 100%
|
||
|
parted /dev/nvme0n1 name 2 root
|
||
|
```
|
||
|
This creates a partition for the filesystem named `root`
|
||
|
now lets encrypt it:
|
||
|
```bash
|
||
|
cryptsetup luksFormat --iter-time=5000 --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 /dev/nvme0n1p2
|
||
|
cryptsetup open /dev/nvme0n1p2 luks
|
||
|
```
|
||
|
*Note: make sure to backup your luksheader to an encrypted usb drive aswell: *
|
||
|
|
||
|
*Note: I suggest a password with at least 16 characters, preferably more*
|
||
|
|
||
|
```bash
|
||
|
cryptsetup luksOpen /dev/sda4 usb
|
||
|
mount /dev/mapper/usb /media/usb
|
||
|
cryptsetup luksHeaderBackup /dev/nvme0n1p2 --header-backup-file /media/usb/luksheader.bak
|
||
|
sync
|
||
|
umount /media/usb
|
||
|
```
|
||
|
*note to self: add gpg encryption aswell and check if --allow-discards for trim is good on nvme0n1p1*
|
||
|
|
||
|
create the btrfs filesystem:
|
||
|
```bash
|
||
|
mkfs.btrfs /dev/mapper/luks
|
||
|
```
|
||
|
this creates a btrfs filesystem on the encrypted patrition
|
||
|
|
||
|
Mount the Btrfs filesystem and set up subvolumes:
|
||
|
```bash
|
||
|
mkdir /mnt/null
|
||
|
mount /dev/mapper/luks /mnt/null
|
||
|
btrfs subvolume create /mnt/null/@
|
||
|
btrfs subvolume create /mnt/null/@home
|
||
|
btrfs subvolume create /mnt/null/@snapshots
|
||
|
umount /mnt/null
|
||
|
```
|
||
|
*Note: setup so /var/log and /var/log/audit are on seperate partitions aswell as /tmp and /var/tmp*
|
||
|
|
||
|
This creates three Btrfs subvolumes for the root filesystem, home directory, and snapshots.
|
||
|
```bash
|
||
|
mount -t btrfs -o noatime,relatime,compress=lzo,ssd,space_cache=v2,subvol=@ /dev/mapper/luks /mnt/null
|
||
|
```
|
||
|
*Note: we unmount /mnt/null so we can use the btrfs subvolume `@`*
|
||
|
|
||
|
|
||
|
```bash
|
||
|
cd /mnt/null
|
||
|
wget https://repo-default.voidlinux.org/live/current/void-x86_64-musl-ROOTFS-20230628.tar.xz
|
||
|
tar xvf void-<...>-ROOTFS.tar.xz -C /mnt/null
|
||
|
```
|
||
|
https://gist.github.com/gbrlsnchs/9c9dc55cd0beb26e141ee3ea59f26e21
|