--- created: 2026-05-28 modified: 2026-05-28 type: note tags: [dev-ops, filesystem, consolidation, planning] aliases: [consolidation-plan, file-system-redesign] --- # Filesystem Consolidation Plan > DRAFT — Planning document for reorganising files across all machines. --- ## Principles 1. **One source of truth** — no duplicate data on multiple drives 2. **Always-on drives for active data** — rarely-used data goes on removable/archive drives 3. **NTFS for cross-platform** — anything that needs Samba/NFS access from Windows/Mac 4. **Backup repos stay where they are** — changing backup infrastructure is risky 5. **Consolidate by access frequency** — hot/warm/cold tiers --- ## Current Inventory — What Needs Homes ### Always-On Services (need drives mounted 24/7) | Service | Machine | Current Mount | Size | Notes | |---------|---------|--------------|------|-------| | **Immich photos** | .35 | `/mnt/hd/immich/` | ~? | 40K photos, need fast reliable access | | **Jellyfin media** | .35 | `/mnt/hd/...` | ? | Movies, TV shows, music | | **Docker containers** | .35 | `/Docker/Containers/` | 23.7G | Already on system drive | | **Docker data** | .35 | `/mnt/hd/*/` | ? | Lidarr, Radarr, Sonarr, etc. data | | **Websites** | .13 | `/var/www/` | ? | Active web projects | | **Docker on .13** | .13 | `/home/sam/Docker/` | ? | | ### Personal Data (frequent access) | Data | Current Location(s) | Size | Notes | |------|-------------------|------|-------| | **Dev projects** | .27 `~/...` | ? | NixOS, coding projects | | **Old web work** | .13 `ALL_TRANFERS/` + .27 `/mnt/backup/` | ? | htdocs, PHP, etc. — **DUPLICATED** | | **Arduino / IoT** | .13 `ALL_TRANFERS` + SmartDrive | ? | **DUPLICATED** | | **Flash AS3.0** | .13 `ALL_TRANFERS` | ? | Rarely accessed | | **Music** | .13 + .27 | ? | **DUPLICATED** | | **Sheet music** | ? | ? | Could move to Obsidian | | **Family notes** | ? | ? | Could move to Obsidian | | **TODO lists** | Obsidian + ? | — | Already in Obsidian | | **Movies/TV** | .35 `/mnt/hd/` + .13 | ? | Jellyfin media | | **Display screen + website builder** | ? | ? | Large project? | ### Archive / Rarely Accessed (cold storage) | Data | Current Location(s) | Size | Notes | |------|-------------------|------|-------| | **Sorted photos (2003–2023)** | .13 `sorted_pictures_holder/` | ~? | 31K photos, already organized | | **Old subject-organized photos** | .27 `/mnt/backup/` + .13 | ~? | **DUPLICATED** | | **Integral300 recovery .img** | .27 `/mnt/tempbackup/` | 298G | Keep or delete? | | **Integral300 backup** | .27 SmartDrive `integral300_backup_...` | 105G | Already extracted — delete? | | **Windows old drives** | .13 `/mnt/storage/` | 271G used | Old Windows files | | **Old Windows data drive** | .13 `/mnt/data/` | 1.5T used | ALL_TRANFERS, etc. — **DUPLICATED** | ### Backup Repos (stay where they are) | Repo | Machine | Path | Size | |------|---------|------|------| | Borg .27 repo | .13 | `/mnt/ubuntu_storage_3TB/backup/borg/.27` | ~? | | Borg .13 repo | .13 | `/mnt/ubuntu_storage_3TB/backup/borg/.13` | ~? | | Kopia repo | .23 (via .35) | `/mnt/nfs_usb_3tb/kopia/` | 46G | | Restic repo | .23 (via .35) | `/mnt/nfs_usb_3tb/backups/restic/` | 13G | --- ## Drive Role Assignment ### Always-On Drives (mounted 24/7) | Machine | Drive | Mount | Role | Filesystem | |---------|-------|-------|------|------------| | **.35** | `vda1` (My Passport) | `/mnt/hd` | **Active data** — Immich, Jellyfin, Docker service data, current projects | NTFS (cross-platform) | | **.13** | `sdd1` (ubuntu_storage_3TB) | `/mnt/ubuntu_storage_3TB` | **Backup target** — Borg repos only | ext4 | | **.13** | `sdb2` (Data) | `/mnt/data` | **Archive** — old photos, old web work, ALL_TRANFERS | NTFS (cross-platform) | | **.13** | `sda2` (Storage) | `/mnt/storage` | **Windows legacy** — old Windows files | NTFS (cross-platform) | ### Warm-Swap Drives (plug in when needed) | Drive | Size | Free | Role | Label | |-------|------|------|------|-------| | **SmartDrive** | 687G | 548G | **Transfer / temporary** — moving data between machines | `SmartDrive` | | **TempBackup** | 458G | 136G | **Offline backup** — secondary copy of critical data | `TempBackup` | | **Back Up** | 224G | 158G | **Legacy** — old photos (read-only NTFS) | `Back Up` (NTFS) | | **MaxtorBackup** | 1.4T | 1.3T | **Archive target** — empty, ready for use | `MaxtorBackup` | --- ## Proposed Folder Hierarchy ### On `.35` — `/mnt/hd/` (My Passport — NTFS) — Active Data This is the hot data tier — always accessible via Docker, Samba, etc. ``` /mnt/hd/ ├── services/ ← Docker service data (bind-mounted) │ ├── immich/ ── Already here │ ├── audiobookshelf/ │ ├── lidarr/ │ ├── radarr/ │ ├── sonarr/ │ ├── qbittorrent/ │ ├── readarr/ │ ├── headphones/ │ ├── spotweb/ │ ├── nextcloud/ ── Future? │ └── paperless/ ── Already on NFS ├── media/ ← Jellyfin media library │ ├── movies/ │ ├── tv/ │ ├── music/ │ ├── audiobooks/ │ ├── podcasts/ │ └── books/ └── projects/ ← Current active projects ├── web/ ├── arduino/ ├── nixos/ └── ... ``` ### On `.13` — `/mnt/data/` (NTFS) — Archive & Warm Data This is the archive tier — old projects, old photos, everything rarely accessed but worth keeping. ``` /mnt/data/ ├── archive/ │ ├── photos/ ← Consolidated photo archive │ │ ├── sorted_pictures_holder/ ── From ALL_TRANFERS │ │ └── old_subject_organized/ ── From Back Up drive + PICTURES_GROUPED_SUBJECT_OLD │ ├── web_work/ ← Old htdocs, PHP, Flash AS3.0 projects │ ├── arduino_iot/ │ ├── music/ │ ├── sheet_music/ │ ├── family_notes/ │ └── integral300/ ← Recovery .img moved here from .27 └── transfer/ ← Staging area for moving data between machines ``` ### On `.13` — `/mnt/ubuntu_storage_3TB/` (ext4) — Backup Repository ``` /mnt/ubuntu_storage_3TB/ └── backup/ ├── borg/ │ ├── .13/ ← .13 local backups │ └── .27/ ← .27 backups via SSH └── restic/ ← Future: secondary restic target? ``` --- ## Consolidation Actions ### Phase 1 — Eliminate Duplicates | What | Duplicated Where | Action | |------|-----------------|--------| | Old subject-organized photos | .27 `/mnt/backup/` + .13 `PICTURES_GROUPED_SUBJECT_OLD` | Delete from .27 (keep .13 copy) | | Integral300 extracted backup | .27 SmartDrive `integral300_backup_...` | Delete — recovery .img is the source of truth | | Arduino / IoT files | .13 ALL_TRANFERS + SmartDrive | Consolidate to .13 archive | | Old web work (htdocs) | Multiple places | Consolidate to .13 `/mnt/data/archive/web_work/` | ### Phase 2 — Consolidate to Right Drives | What | Move From | Move To | When | |------|----------|---------|------| | Integral300 recovery .img | .27 `/mnt/tempbackup/` | .13 `/mnt/data/archive/integral300/` | Phase 2 | | Sorted photos | .13 `ALL_TRANFERS/Pictures/sorted_pictures_holder/` | .13 `/mnt/data/archive/photos/` | Phase 2 | | Old web work | .13 `ALL_TRANFERS/` | .13 `/mnt/data/archive/web_work/` | Phase 2 | ### Phase 3 — System Rebalancing | Action | Reason | |--------|--------| | Mount MaxtorBackup as **offline backup** repository | Provides a second physical copy of backup repos | | Configure periodic rsync from .23 backup repos → MaxtorBackup | .23 has no backup — this covers it | | Clean up old empty stub directories on .35 `/mnt/hd/` | Remove Western Digital installer files, System Volume Information | --- ## Always-Connected vs Hot-Swap | Drive | Connection | Why | |-------|-----------|-----| | **.35** My Passport (vda, /mnt/hd) | **Always on** | Immich, Jellyfin, Docker services need this | | **.13** ubuntu_storage_3TB | **Always on** | Backup target — Borg runs daily | | **.13** Data (sdb) | **Always on** | Archive data, accessible to network | | **.13** Storage (sda) | **Always on** | Old Windows files | | **.27** SmartDrive | **Hot-swap** | Only needed during data transfers | | **.27** TempBackup | **Hot-swap** | Temporary storage / cache | | **.27** Back Up | **Hot-swap** | Legacy — eventually retire | | **MaxtorBackup** | **Hot-swap** | Offline backup — plug in monthly | --- ## Decisions (2026-05-28) 1. ✅ **Keep Immich and Jellyfin on same drive (.35 My Passport)** — different purposes (home photos vs movies) 2. ❓ **Photos need careful plan** — keep one master copy + backup. `temp_transfer` and other photo collections also need consolidation into the archive 3. ✅ **Do not back up .13** — `.27`'s data is already backed up via Borg, `.13`'s websites are in Gitea (git), no local backup needed 4. ✅ **.27 drives can be renamed** — SmartDrive, TempBackup, Back Up, XPSystemDrive. Other machines' drives stay as-is ## Open Questions - [ ] Is the Integral300 recovery .img still needed (298G)? It matches the extracted files. - [ ] Should `.23` (file-server) get its own backup? - [ ] Should we move old photo archive to MaxtorBackup and rotate it offsite? - [ ] What naming convention for .27 drives?