Compare commits
2 Commits
acf7cef8e4
...
c53b82f0a1
| Author | SHA1 | Date | |
|---|---|---|---|
| c53b82f0a1 | |||
| 556813c3fa |
@@ -1 +0,0 @@
|
|||||||
git ls-files results/generated_home.nix
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
git ls-files results/generated_home.nix
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
git rm --cached results/generated_home.nix
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
nix flake lock
|
|
||||||
git add flake.lock
|
|
||||||
git commit -m "Add flake.lock"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
git ls-files results/generated_home.nix
|
|
||||||
@@ -11,6 +11,8 @@ This guide assumes:
|
|||||||
- Your config repo is a flake with output: `#sam-4screen-desktop`
|
- Your config repo is a flake with output: `#sam-4screen-desktop`
|
||||||
- Integral300 (ext4) is available and will be mounted on NixOS at: /data
|
- Integral300 (ext4) is available and will be mounted on NixOS at: /data
|
||||||
- UUID: 27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
|
- UUID: 27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
|
||||||
|
- Dotfiles will live on the installed system at:
|
||||||
|
- `~/dotfiles` (NOT on /data)
|
||||||
|
|
||||||
Important constraints:
|
Important constraints:
|
||||||
- `hosts/sam-4screen-desktop/hardware-configuration.nix` is currently a placeholder.
|
- `hosts/sam-4screen-desktop/hardware-configuration.nix` is currently a placeholder.
|
||||||
@@ -35,7 +37,7 @@ Important constraints:
|
|||||||
3) Commit your changes:
|
3) Commit your changes:
|
||||||
- `git status`
|
- `git status`
|
||||||
- `git add -A`
|
- `git add -A`
|
||||||
- `git commit -m "chore: prep install guide + dotfiles links"`
|
- `git commit -m "chore: prep install guide + HM config"`
|
||||||
|
|
||||||
4) Push to Gitea:
|
4) Push to Gitea:
|
||||||
- `git push`
|
- `git push`
|
||||||
@@ -149,13 +151,19 @@ or:
|
|||||||
3) Verify SSH works (from another machine):
|
3) Verify SSH works (from another machine):
|
||||||
- `ssh sam@192.168.20.27`
|
- `ssh sam@192.168.20.27`
|
||||||
|
|
||||||
4) Verify /data mounted:
|
4) Verify /data mounted (this is for your storage drive and for accessing the config repo if you keep it there):
|
||||||
- `mount | grep ' /data '`
|
- `mount | grep ' /data '`
|
||||||
- `ls -la /data/home_sam_ubuntu/dotfiles`
|
|
||||||
|
|
||||||
5) Home Manager activation:
|
5) Put dotfiles onto the system at ~/dotfiles
|
||||||
- `home-manager` is integrated via NixOS switch; it should apply on rebuild.
|
|
||||||
- If dotfiles symlinks fail, confirm `/data` is mounted and the dotfiles paths exist.
|
Option A (recommended): clone dotfiles repo:
|
||||||
|
- `git clone <your-dotfiles-repo-url> ~/dotfiles`
|
||||||
|
|
||||||
|
Option B: copy from Integral300 if they currently only live there:
|
||||||
|
- `cp -a /data/home_sam_ubuntu/dotfiles ~/dotfiles`
|
||||||
|
|
||||||
|
6) Verify dotfiles exist:
|
||||||
|
- `ls -la ~/dotfiles`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +1,53 @@
|
|||||||
# NixOS Build Spec (sam-4screen-desktop)
|
# NixOS Build Spec (sam-4screen-desktop)
|
||||||
|
|
||||||
## Disk / Boot (DO NOT BRICK WINDOWS)
|
## Disk / Boot (WIPE ENTIRE NVMe DISK)
|
||||||
|
|
||||||
Target disk: /dev/nvme0n1
|
Target disk: /dev/nvme0n1
|
||||||
- Size: 953.87 GiB (1024209543168 bytes), 2000409264 sectors
|
- Size: 953.87 GiB (1024209543168 bytes), 2000409264 sectors
|
||||||
- Model: PM951 NVMe SAMSUNG 1024GB
|
- Model: PM951 NVMe SAMSUNG 1024GB
|
||||||
- NVMe serial: S2FZNXAH301424
|
- NVMe serial: S2FZNXAH301424
|
||||||
- NVMe WWID: nvme.144d-2020202020205332465a4e584148333031343234-504d393531204e564d652053414d53554e4720313032344742-00000001
|
- NVMe WWID: nvme.144d-2020202020205332465a4e584148333031343234-504d393531204e564d652053414d53554e4720313032344742-00000001
|
||||||
- Sector size (logical/physical): 512 bytes / 512 bytes
|
- Sector size (logical/physical): 512 bytes / 512 bytes
|
||||||
Install target is NVMe only. Do not select /dev/sdX devices in the installer.
|
|
||||||
Device names like /dev/sdb, /dev/sdc can change across boots; always rely on UUID/label.
|
|
||||||
|
|
||||||
NOTE: GPT partition table entries may not be stored/printed in on-disk (Start sector) order.
|
DECISION (CONFIRMED):
|
||||||
- Do NOT rely on the order shown by some tools.
|
- Do NOT keep Windows.
|
||||||
- Always identify partitions by (partition number + type + UUID/label).
|
- Wipe the entire /dev/nvme0n1 (all existing partitions will be deleted/overwritten).
|
||||||
- If you need the physical order, sort by the “Start” sector column (e.g. `fdisk -l` output).
|
|
||||||
|
|
||||||
Verification commands (run before formatting):
|
Installer safety:
|
||||||
|
- Install target is NVMe only. Do not select /dev/sdX devices in the installer.
|
||||||
|
- Device names like /dev/sdb, /dev/sdc can change across boots; always rely on UUID/label when mounting non-target disks.
|
||||||
|
|
||||||
|
Verification commands (run before wiping, if you want one last check):
|
||||||
- `lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,UUID,MOUNTPOINTS`
|
- `lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,UUID,MOUNTPOINTS`
|
||||||
- `sudo fdisk -l /dev/nvme0n1` (interpret physical order by sorting on Start)
|
- `sudo fdisk -l /dev/nvme0n1`
|
||||||
- `sudo blkid /dev/nvme0n1p1 /dev/nvme0n1p3 /dev/nvme0n1p4 /dev/nvme0n1p5`
|
|
||||||
|
|
||||||
KEEP (do not format):
|
Boot method:
|
||||||
- /dev/nvme0n1p1 (EFI vfat) UUID=94CC-9DA4 (~99MiB, FAT32, mounted at /boot/efi)
|
- UEFI
|
||||||
- /dev/nvme0n1p2 (MS reserved) (~15MiB)
|
- Bootloader: systemd-boot
|
||||||
- /dev/nvme0n1p3 (Windows NTFS) UUID=8294CD2994CD2111 (~503GiB)
|
|
||||||
- /dev/nvme0n1p4 (Windows recovery NTFS) UUID=6E1AA32B1AA2EEF1 (~529MiB)
|
|
||||||
|
|
||||||
WIPE + install NixOS here:
|
Filesystem / layout:
|
||||||
- /dev/nvme0n1p5 (currently Ubuntu ext4 /) UUID=4e99904c-ce6f-4c3c-898a-e29cfc373489 (~449GiB)
|
- Root filesystem: Btrfs (with subvolumes)
|
||||||
|
- Encryption: none
|
||||||
|
- Swap: zram
|
||||||
|
- Hibernate: no
|
||||||
|
- /home: Btrfs subvolume
|
||||||
|
|
||||||
|
Partitioning approach:
|
||||||
|
- Manual in the installer (no disko)
|
||||||
|
|
||||||
|
Recommended layout:
|
||||||
|
- New GPT on /dev/nvme0n1
|
||||||
|
- EFI System Partition (vfat), mounted at /boot
|
||||||
|
- Btrfs partition for the rest
|
||||||
|
- Subvolume @ mounted at /
|
||||||
|
- Subvolume @home mounted at /home
|
||||||
|
|
||||||
|
IMPORTANT:
|
||||||
|
- `hosts/sam-4screen-desktop/hardware-configuration.nix` is currently a placeholder.
|
||||||
|
- During install after mounting to /mnt:
|
||||||
|
1) Run: `nixos-generate-config --root /mnt`
|
||||||
|
2) Copy: `/mnt/etc/nixos/hardware-configuration.nix` into:
|
||||||
|
`hosts/sam-4screen-desktop/hardware-configuration.nix`
|
||||||
|
|
||||||
## Other attached disks (DO NOT FORMAT)
|
## Other attached disks (DO NOT FORMAT)
|
||||||
- /dev/sda (240GB) model: Patriot Burst El (KEEP)
|
- /dev/sda (240GB) model: Patriot Burst El (KEEP)
|
||||||
@@ -36,27 +56,38 @@ WIPE + install NixOS here:
|
|||||||
- TempBackup (ext4) UUID=4f9c4bd5-fea5-408f-9370-731fc095da3f (~465GiB/500GB) (KEEP)
|
- TempBackup (ext4) UUID=4f9c4bd5-fea5-408f-9370-731fc095da3f (~465GiB/500GB) (KEEP)
|
||||||
- Model: WD5000BEVT-22ZAT
|
- Model: WD5000BEVT-22ZAT
|
||||||
- Serial: WD-WXNY08ND2684
|
- Serial: WD-WXNY08ND2684
|
||||||
- NOTE: device name may appear as /dev/sdb or /dev/sdc depending on boot/USB order; identify by UUID/label/model.
|
- NOTE: device name may appear as /dev/sdX depending on boot/USB order; identify by UUID/label/model.
|
||||||
- Integral300 (ext4) UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e (~298GiB/320GB) (mount at /data)
|
- Integral300 (ext4) UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e (~298GiB/320GB)
|
||||||
|
- Mount at /data
|
||||||
- NOTE: device name may change; config always uses /dev/disk/by-uuid.
|
- NOTE: device name may change; config always uses /dev/disk/by-uuid.
|
||||||
- XPSystemDrive (ext4) UUID=82c994f1-9adb-49e4-ba1e-5b6e5ccbd49b (~149GiB/160GB) (KEEP)
|
- XPSystemDrive (ext4) UUID=82c994f1-9adb-49e4-ba1e-5b6e5ccbd49b (~149GiB/160GB) (KEEP)
|
||||||
- Model: HTS541616J9SA00 (Hitachi)
|
- Model: HTS541616J9SA00 (Hitachi)
|
||||||
- NOTE: device name may appear as /dev/sdX depending on boot/USB order; identify by UUID/label/model.
|
- NOTE: device name may appear as /dev/sdX depending on boot/USB order; identify by UUID/label/model.
|
||||||
- Observed in hardware scan: `/dev/sde` (do not rely on this).
|
|
||||||
|
|
||||||
Bootloader:
|
|
||||||
- systemd-boot, using the existing EFI partition (/dev/nvme0n1p1)
|
|
||||||
|
|
||||||
## Networking
|
## Networking
|
||||||
- Use NetworkManager
|
- Use NetworkManager
|
||||||
- Static IPv4 for wired: enp0s31f6 = 192.168.20.27/24
|
|
||||||
- Gateway: 192.168.20.1
|
Static IPv4 policy (CONFIRMED):
|
||||||
- DNS: 192.168.20.35, 192.168.20.13
|
- Static IPv4 should be applied to Wi-Fi SSID:
|
||||||
|
- SSID / connection id: "Aussie Broadband 8729"
|
||||||
|
- Interface: wlp4s2
|
||||||
|
- IP: 192.168.20.27/24
|
||||||
|
- Gateway: 192.168.20.1
|
||||||
|
- DNS: 192.168.20.35, 192.168.20.13
|
||||||
|
- Wired enp0s31f6: no static IP required for now
|
||||||
|
|
||||||
|
Secrets policy:
|
||||||
|
- Do not commit Wi-Fi PSKs to git.
|
||||||
|
- Static IP enforcement is implemented via a NetworkManager dispatcher script.
|
||||||
|
|
||||||
## Data drive mount
|
## Data drive mount
|
||||||
- Integral300 ext4 UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
|
- Integral300 ext4 UUID=27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
|
||||||
- Mountpoint on NixOS: /data (preferred)
|
- Mountpoint on NixOS: /data (preferred)
|
||||||
|
|
||||||
|
## Dotfiles policy
|
||||||
|
- Dotfiles live on the installed system at: ~/dotfiles
|
||||||
|
- Do not depend on /data for dotfiles.
|
||||||
|
|
||||||
## Desktop
|
## Desktop
|
||||||
- Primary compositor: Niri
|
- Primary compositor: Niri
|
||||||
- Display/login manager: greetd + tuigreet
|
- Display/login manager: greetd + tuigreet
|
||||||
|
|||||||
@@ -26,9 +26,12 @@ Legend:
|
|||||||
|
|
||||||
### Core system services
|
### Core system services
|
||||||
- **NetworkManager**
|
- **NetworkManager**
|
||||||
- Static IPv4 for wired: `enp0s31f6 = 192.168.20.27/24`
|
- Static IPv4 is enforced on Wi-Fi SSID: **"Aussie Broadband 8729"**
|
||||||
- Gateway: `192.168.20.1`
|
- Interface: **wlp4s2**
|
||||||
- DNS: `192.168.20.35`, `192.168.20.13`
|
- IP: **192.168.20.27/24**
|
||||||
|
- Gateway: **192.168.20.1**
|
||||||
|
- DNS: **192.168.20.35**, **192.168.20.13**
|
||||||
|
- Wired **enp0s31f6**: no static IP required for now (DHCP/unused)
|
||||||
- **OpenSSH server** (sshd)
|
- **OpenSSH server** (sshd)
|
||||||
- **PipeWire audio** (Pulse + ALSA) + **WirePlumber**
|
- **PipeWire audio** (Pulse + ALSA) + **WirePlumber**
|
||||||
- **Firewall** (NixOS default; open SSH port only)
|
- **Firewall** (NixOS default; open SSH port only)
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# After install, Integral300 is mounted at /data (per your NixOS config).
|
# Dotfiles live on the installed system itself at: ~/dotfiles
|
||||||
# These dotfiles are stored on that drive.
|
dotfilesDir = "${config.home.homeDirectory}/dotfiles";
|
||||||
dotfilesDir = "/data/home_sam_ubuntu/dotfiles";
|
|
||||||
|
|
||||||
# Home Manager helper to symlink files/dirs that live outside the Nix store.
|
# Home Manager helper to symlink files/dirs that live outside the Nix store.
|
||||||
# This is the correct mechanism for "dotfiles stored on /data".
|
|
||||||
mkOOS = config.lib.file.mkOutOfStoreSymlink;
|
mkOOS = config.lib.file.mkOutOfStoreSymlink;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -37,11 +35,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Dotfiles integration notes:
|
# Dotfiles integration notes:
|
||||||
# - I am NOT symlinking ~/.zshrc directly because Home Manager manages it.
|
# - Home Manager manages ~/.zshrc; do not symlink ~/.zshrc directly.
|
||||||
# - If you have extra Zsh snippets in your dotfiles repo that you want sourced,
|
# - If you want to source additional Zsh snippets from ~/dotfiles, tell me
|
||||||
# tell me the exact filename(s) and we’ll add them here safely.
|
# the exact filename(s) and we’ll add them safely here.
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
# Optional: source additional Zsh config from /data dotfiles if you want.
|
# Optional: source additional Zsh config from ~/dotfiles if desired.
|
||||||
# Example (uncomment + adjust if you confirm the exact file path):
|
# Example (uncomment + adjust if you confirm the exact file path):
|
||||||
# if [ -f "${dotfilesDir}/zsh/extra.zsh" ]; then
|
# if [ -f "${dotfilesDir}/zsh/extra.zsh" ]; then
|
||||||
# source "${dotfilesDir}/zsh/extra.zsh"
|
# source "${dotfilesDir}/zsh/extra.zsh"
|
||||||
@@ -111,20 +109,18 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Dotfiles (out-of-store symlinks from /data)
|
# Dotfiles (out-of-store symlinks from ~/dotfiles)
|
||||||
# ---
|
# ---
|
||||||
# IMPORTANT:
|
# IMPORTANT:
|
||||||
# - These paths must exist on the machine at activation time.
|
# - These symlinks will point into ~/dotfiles.
|
||||||
# - This assumes your dotfiles are available at:
|
# - Ensure you clone/copy your dotfiles to ~/dotfiles on the new system.
|
||||||
# /data/home_sam_ubuntu/dotfiles/<app>
|
|
||||||
# - If you rename/move the dotfiles directory, update dotfilesDir above.
|
|
||||||
home.file.".config/atuin".source = mkOOS "${dotfilesDir}/atuin";
|
home.file.".config/atuin".source = mkOOS "${dotfilesDir}/atuin";
|
||||||
home.file.".config/kitty".source = mkOOS "${dotfilesDir}/kitty";
|
home.file.".config/kitty".source = mkOOS "${dotfilesDir}/kitty";
|
||||||
home.file.".config/nvim".source = mkOOS "${dotfilesDir}/nvim";
|
home.file.".config/nvim".source = mkOOS "${dotfilesDir}/nvim";
|
||||||
home.file.".config/zellij".source = mkOOS "${dotfilesDir}/zellij";
|
home.file.".config/zellij".source = mkOOS "${dotfilesDir}/zellij";
|
||||||
|
|
||||||
# TODO (needs confirmation from you):
|
# TODO (needs confirmation from you):
|
||||||
# - zsh dotfiles: what exact files do you want sourced/linked?
|
# - zsh dotfiles: what exact files do you want sourced?
|
||||||
# - pk10k: what is the exact filename for your p10k config?
|
# - pk10k: what is the exact filename for your p10k config?
|
||||||
#
|
#
|
||||||
# Once you confirm, we can add e.g.:
|
# Once you confirm, we can add e.g.:
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
# Static IP policy:
|
# Static IP policy:
|
||||||
# - You confirmed the static IP must be on Wi-Fi SSID "Aussie Broadband 8729"
|
# - Static IP must be on Wi-Fi SSID "Aussie Broadband 8729"
|
||||||
# - Do NOT store Wi-Fi secrets (PSK) in git-tracked Nix files
|
# - Do NOT store Wi-Fi secrets (PSK) in git-tracked Nix files
|
||||||
#
|
#
|
||||||
# Approach:
|
# Approach:
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
users.users.sam = {
|
users.users.sam = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Sam";
|
description = "Sam";
|
||||||
extraGroups = [ "wheel" "networkmanager" "docker" "video" "render" ];
|
extraGroups = [ "wheel" "networkmanager" "video" "render" ];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -172,9 +172,9 @@
|
|||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Docker
|
# Docker (DEFER for now)
|
||||||
# ---
|
# ---
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = false;
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Mounts
|
# Mounts
|
||||||
|
|||||||
16
hosts/sam-4screen-desktop/fdisk_output.txt
Normal file
16
hosts/sam-4screen-desktop/fdisk_output.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
|
||||||
|
Disk model: PM951 NVMe SAMSUNG 1024GB
|
||||||
|
Units: sectors of 1 * 512 = 512 bytes
|
||||||
|
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||||
|
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||||
|
Disklabel type: gpt
|
||||||
|
Disk identifier: 3C752166-F3F5-4EE6-B50A-B240D0FD272D
|
||||||
|
|
||||||
|
Device Start End Sectors Size Type
|
||||||
|
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
|
||||||
|
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
|
||||||
|
/dev/nvme0n1p3 239616 1057007615 1056768000 503.9G Microsoft basic data
|
||||||
|
/dev/nvme0n1p4 1999321088 2000406527 1085440 530M Windows recovery environment
|
||||||
|
/dev/nvme0n1p5 1057007616 1999321087 942313472 449.3G Linux filesystem
|
||||||
|
|
||||||
|
Partition table entries are not in disk order.
|
||||||
4
hosts/sam-4screen-desktop/ip_output.txt
Normal file
4
hosts/sam-4screen-desktop/ip_output.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
|
||||||
|
enp0s31f6 UP d8:9e:f3:07:bf:05 <BROADCAST,MULTICAST,UP,LOWER_UP>
|
||||||
|
wlp4s2 UP 80:1f:02:4f:18:ae <BROADCAST,MULTICAST,UP,LOWER_UP>
|
||||||
|
tailscale0 UNKNOWN <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP>
|
||||||
60
hosts/sam-4screen-desktop/lsblk_output.txt
Normal file
60
hosts/sam-4screen-desktop/lsblk_output.txt
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
NAME SIZE TYPE FSTYPE LABEL UUID MOUNTPOINTS
|
||||||
|
loop0 332.2M loop squashfs /snap/code/218
|
||||||
|
loop1 4K loop squashfs /snap/bare/5
|
||||||
|
loop2 332.2M loop squashfs /snap/code/220
|
||||||
|
loop3 63.8M loop squashfs /snap/core20/2682
|
||||||
|
loop4 55.5M loop squashfs /snap/core18/2976
|
||||||
|
loop5 63.8M loop squashfs /snap/core20/2686
|
||||||
|
loop6 55.5M loop squashfs /snap/core18/2979
|
||||||
|
loop7 73.9M loop squashfs /snap/core22/2216
|
||||||
|
loop8 74M loop squashfs /snap/core22/2292
|
||||||
|
loop9 66.8M loop squashfs /snap/core24/1267
|
||||||
|
loop10 66.9M loop squashfs /snap/core24/1349
|
||||||
|
loop12 251.7M loop squashfs /snap/firefox/7720
|
||||||
|
loop13 18.5M loop squashfs /snap/firmware-updater/210
|
||||||
|
loop14 16.4M loop squashfs /snap/firmware-updater/216
|
||||||
|
loop15 164.8M loop squashfs /snap/gnome-3-28-1804/198
|
||||||
|
loop16 349.7M loop squashfs /snap/gnome-3-38-2004/143
|
||||||
|
loop17 516.2M loop squashfs /snap/gnome-42-2204/226
|
||||||
|
loop18 531.4M loop squashfs /snap/gnome-42-2204/247
|
||||||
|
loop19 669.8M loop squashfs /snap/gnome-46-2404/145
|
||||||
|
loop20 606.1M loop squashfs /snap/gnome-46-2404/153
|
||||||
|
loop21 91.7M loop squashfs /snap/gtk-common-themes/1535
|
||||||
|
loop22 395M loop squashfs /snap/mesa-2404/1165
|
||||||
|
loop23 290.8M loop squashfs /snap/mesa-2404/912
|
||||||
|
loop24 92.5M loop squashfs /snap/mqtt-explorer/31
|
||||||
|
loop25 6.9M loop squashfs /snap/notepad-plus-plus/412
|
||||||
|
loop26 56.6M loop squashfs /snap/nushell/1736
|
||||||
|
loop27 54.9M loop squashfs /snap/nushell/1927
|
||||||
|
loop28 10.8M loop squashfs /snap/snap-store/1270
|
||||||
|
loop29 17.5M loop squashfs /snap/snap-store/1300
|
||||||
|
loop30 50.9M loop squashfs /snap/snapd/25577
|
||||||
|
loop31 48.1M loop squashfs /snap/snapd/25935
|
||||||
|
loop32 576K loop squashfs /snap/snapd-desktop-integration/343
|
||||||
|
loop33 576K loop squashfs /snap/snapd-desktop-integration/315
|
||||||
|
loop34 189.6M loop squashfs /snap/spotify/88
|
||||||
|
loop35 196.6M loop squashfs /snap/spotify/89
|
||||||
|
loop36 81.9M loop squashfs /snap/telegram-desktop/6869
|
||||||
|
loop37 82.1M loop squashfs /snap/telegram-desktop/6883
|
||||||
|
loop38 226.6M loop squashfs /snap/thunderbird/933
|
||||||
|
loop39 226.6M loop squashfs /snap/thunderbird/959
|
||||||
|
loop40 460.6M loop squashfs /snap/wine-platform-9-devel-core22/33
|
||||||
|
loop41 579.5M loop squashfs /snap/wine-platform-runtime-core22/110
|
||||||
|
loop42 576.1M loop squashfs /snap/wine-platform-runtime-core22/111
|
||||||
|
loop43 251.7M loop squashfs /snap/firefox/7766
|
||||||
|
sda 223.6G disk
|
||||||
|
├─sda1 16M part
|
||||||
|
└─sda2 223.6G part ntfs Back Up 0806B92006B90FA4 /media/sam/Back Up
|
||||||
|
sdb 149.1G disk
|
||||||
|
└─sdb1 149G part ext4 XPSystemDrive 82c994f1-9adb-49e4-ba1e-5b6e5ccbd49b /media/sam/XPSystemDrive
|
||||||
|
sdc 465.8G disk
|
||||||
|
└─sdc1 465.8G part ext4 TempBackup 4f9c4bd5-fea5-408f-9370-731fc095da3f /media/sam/TempBackup
|
||||||
|
sdd 298.1G disk
|
||||||
|
└─sdd1 298.1G part ext4 Integral300 27febd74-20aa-4a3a-92c1-6fdd1ad7e88e /media/sam/Integral300
|
||||||
|
sr0 1024M rom
|
||||||
|
nvme0n1 953.9G disk
|
||||||
|
├─nvme0n1p1 100M part vfat 94CC-9DA4 /boot/efi
|
||||||
|
├─nvme0n1p2 16M part
|
||||||
|
├─nvme0n1p3 503.9G part ntfs 8294CD2994CD2111 /media/sam/8294CD2994CD2111
|
||||||
|
├─nvme0n1p4 530M part ntfs 6E1AA32B1AA2EEF1
|
||||||
|
└─nvme0n1p5 449.3G part ext4 4e99904c-ce6f-4c3c-898a-e29cfc373489 /
|
||||||
65
plan.md
65
plan.md
@@ -1,56 +1,55 @@
|
|||||||
You are a devops engineer.
|
You are a devops engineer.
|
||||||
You are brief and concise and will help guide me through my plan.
|
You are brief and concise and will help guide me through my plan.
|
||||||
Plan is to migrate my ubuntu system on the main drive with OS installed to NixOS.
|
Plan is to migrate my ubuntu system on the main drive with OS installed to NixOS.
|
||||||
I think I have already backed up the required files from windows dual boot and Ubuntu to Inegral300 mount at /media/sam/Integral300/
|
I have backed up the required files from Windows dual boot and Ubuntu to Integral300 mounted at /media/sam/Integral300/
|
||||||
|
|
||||||
|
DECISION:
|
||||||
|
- We will WIPE the entire NVMe disk (/dev/nvme0n1). We are NOT keeping Windows partitions.
|
||||||
|
|
||||||
We need to check the nvme0n1p5 drive to make sure I have not missed a partition.
|
|
||||||
We need to make a list of software that needs to be installed on the NixOS. There are several files, and some folders to look through.
|
We need to make a list of software that needs to be installed on the NixOS. There are several files, and some folders to look through.
|
||||||
|
|
||||||
We need to create a finalized list of software to ensure we have what we need.
|
We need to create a finalized list of software to ensure we have what we need.
|
||||||
|
|
||||||
We do not need to include everything in the list, just the things I have installed and need that are not generic system utils. The list needs to be consise and withouit duplicate.
|
We do not need to include everything in the list, just the things I have installed and need that are not generic system utils. The list needs to be concise and without duplicates.
|
||||||
|
|
||||||
Then we will be making a configuration.nix and using homemanager and flake.nix for the installtion on the new NixOS that we will store in the Ingrnal300 and push to my a gitea server I have on my home network.
|
Then we will be making a NixOS flake-based configuration using:
|
||||||
|
- hosts/sam-4screen-desktop/configuration.nix
|
||||||
|
- home-manager (home/sam/home.nix)
|
||||||
|
- flake.nix
|
||||||
|
|
||||||
I have dotfiles that will need to be included and we will use homemanger.
|
We will store/push this repo to my Gitea server so the config is available during install.
|
||||||
|
|
||||||
|
Dotfiles:
|
||||||
|
- Dotfiles will be placed on the new NixOS system at: ~/dotfiles
|
||||||
|
- Home Manager will symlink config from ~/dotfiles
|
||||||
|
|
||||||
We will be using Niri as the primary display.
|
We will be using Niri as the primary display.
|
||||||
|
- Display/login manager: greetd + tuigreet
|
||||||
|
- Start method: niri --session (do not use niri-session)
|
||||||
|
|
||||||
|
Networking:
|
||||||
|
- Use NetworkManager
|
||||||
|
- Static IP must be 192.168.20.27/24, applied on Wi-Fi SSID "Aussie Broadband 8729" (wlp4s2)
|
||||||
|
|
||||||
List folders and what they are and how to extract software.
|
|
||||||
Some software is in the ai dev plan. If this is easy to include thats ok. Otherwise I can integrate that once the system is running.
|
Some software is in the ai dev plan. If this is easy to include thats ok. Otherwise I can integrate that once the system is running.
|
||||||
This approach applies to anything else that maybe problematic. We do not have to go all in at once. Get the main things working with niri, display manager, essential bash /zsh utils/, then dotfiles with homemanager, new ai, etc. Keep adding to successful install.
|
This approach applies to anything else that maybe problematic. We do not have to go all in at once. Get the main things working with niri, display manager, essential zsh utils, then dotfiles with homemanager, then AI tooling, etc. Keep adding to successful install.
|
||||||
|
|
||||||
I have a second machine on the desktop that can be used to ssh into this new NixOS if need be.
|
I have a second machine on the desktop that can be used to ssh into this new NixOS if need be.
|
||||||
We need to ensure we set the IP to 192.168.20.27
|
|
||||||
|
|
||||||
ai_dev_plan.md this file contains software and a plan for a complex ai development set up. If these files can be included without major hassle that is fine. Otherwise skip and we I can implement as part of incremental set up.
|
|
||||||
|
|
||||||
niri-4screen.md this has documentation on how I implemented niri on my ubuntu and advice on how to implement it on nixos along with display manager and wayland etc.
|
|
||||||
|
|
||||||
previous_setup.md has info on how I set up my last system, this one is slightly different with more software, niri etc. But the idea and approach particularly with homemanager and dotfiles is important along ssh etc.
|
|
||||||
|
|
||||||
dotfiles are on this system at /media/sam/Integral300/data/home_sam_ubuntu/dotfiles/
|
|
||||||
|
|
||||||
previous_setup_software.md has more information on software than needs to be consolidated.
|
|
||||||
|
|
||||||
setup.md and software_to_add.md are again more files for software consolidation. Aprise and Obisidan can be left out, these wil be installed as docker containers later.
|
|
||||||
|
|
||||||
We need development frameworks for python, php, docker-compose, node.
|
|
||||||
|
|
||||||
Folder /docs has more directions for the PLAN and software list.
|
Folder /docs has more directions for the PLAN and software list.
|
||||||
- docs/nixos_build_spec.md is the source-of-truth for disk/boot/network decisions.
|
- docs/nixos_build_spec.md is the source-of-truth for disk/boot/network decisions.
|
||||||
- docs/software_inventory.md (or equivalent) is the source-of-truth for the final software list.
|
- docs/software_inventory.md (or equivalent) is the source-of-truth for the final software list.
|
||||||
|
|
||||||
|
Folder /logs has some scans and hardware profiles which can be used for planning and software.
|
||||||
|
|
||||||
Folder /logs has some scans and hardware profiles which can be used for planning and software. Including looking at the disks. Please ask for more info on the disks if needed.
|
Folder /results has the original migration configuration.nix results. We will eventually replicate this and create a new more up to date one. This can be used as a reference if needed.
|
||||||
|
|
||||||
Folder /results has the original migration configuration.nix results . We will eventually replicate this and create a new more upto date one. This can be used as a reference if needed.
|
|
||||||
|
|
||||||
Reminder we only formatting and reninstalling on the drive with the ubuntu OS and windows partition.
|
|
||||||
|
|
||||||
Please ask questions, request access to file systems where needed.
|
Please ask questions, request access to file systems where needed.
|
||||||
|
|
||||||
Summary.
|
Summary:
|
||||||
|
- Build software list
|
||||||
Build list. Finalize list in collaboration with me. Build configuration.nix. Store in Integral300 and gitea. Install NixOS, configure nixos with the set up we have created.
|
- Finalize list in collaboration with me
|
||||||
|
- Build NixOS configuration (flake + home-manager)
|
||||||
|
- Push to Gitea
|
||||||
|
- Install NixOS (wipe entire NVMe)
|
||||||
|
- Generate and commit hardware-configuration.nix during install
|
||||||
|
- Boot into NixOS, clone/copy dotfiles to ~/dotfiles, verify Niri + static IP + SSH
|
||||||
|
|||||||
Reference in New Issue
Block a user