Files
claudetools/docs/forum-posts/arch-linux-ext4-home-from-windows-drive.md
Mike Swanson 7c8488ad14 sync: Auto-sync from acg-guru-5070 at 2026-03-19 19:25:24
Synced files:
- Session log 2026-03-19 updated (autostart, ScreenConnect, Flarum forum, theme, Node.js)
- docs/forum-posts/ recovered from old btrfs home (7 forum post guides)

Machine: acg-guru-5070
Timestamp: 2026-03-19 19:25:24

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 19:26:44 -07:00

2.7 KiB

Guide: Repurpose Old Windows BitLocker Drive as /home on Arch Linux

Environment

  • OS: CachyOS (Arch-based) with btrfs root
  • Existing /home: btrfs subvolume (@home) on OS drive
  • Secondary drive: 954GB NVMe with Windows BitLocker partition

Goal

Wipe the old Windows drive and mount it as /home on ext4, giving a dedicated large partition for user data separate from the OS.

Steps

Step 1: Identify the Drive

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL

Output:

nvme0n1     953.9G disk                      SKHynix_HFS001TEJ9X115N
├─nvme0n1p1     4G part vfat      /boot
└─nvme0n1p2 949.9G part btrfs     /root       <-- OS drive
nvme1n1     953.9G disk                      SKHynix_HFS001TEJ9X115N
├─nvme1n1p1    16M part                       <-- Windows MSR
└─nvme1n1p2 953.9G part BitLocker             <-- Target drive

Step 2: Wipe and Partition

# Wipe all filesystem signatures
sudo wipefs -a /dev/nvme1n1

# Create GPT table with single ext4 partition
sudo parted /dev/nvme1n1 --script mklabel gpt mkpart primary ext4 0% 100%

# Format with label
sudo mkfs.ext4 -L home /dev/nvme1n1p1

Step 3: Copy Existing /home

# Mount new partition temporarily
sudo mount /dev/nvme1n1p1 /mnt

# Copy everything preserving permissions, ACLs, and extended attributes
sudo rsync -aAXv /home/ /mnt/

# Verify
ls -la /mnt/yourusername/
du -sh /mnt/yourusername/

# Unmount
sudo umount /mnt

Step 4: Get UUID

sudo blkid /dev/nvme1n1p1
# UUID="4143f922-455f-4154-8f87-6df123548916" TYPE="ext4"

Step 5: Update /etc/fstab

Replace the existing /home mount entry. If coming from a btrfs subvolume setup:

# BEFORE (btrfs subvolume):
# UUID=8a8b1d34-... /home btrfs subvol=/@home,defaults,noatime,compress=zstd:1 0 0

# AFTER (ext4 on new drive):
UUID=4143f922-455f-4154-8f87-6df123548916 /home ext4 defaults,noatime 0 2

Step 6: Reboot

sudo reboot

Step 7: Verify After Reboot

df -h /home
# Should show /dev/nvme1n1p1 mounted at /home with ~938GB available

mount | grep home
# /dev/nvme1n1p1 on /home type ext4 (rw,noatime)

Notes

  • The old btrfs @home subvolume remains on the OS drive as an automatic backup. You can delete it later with sudo btrfs subvolume delete /path/to/@home if you need the space.
  • ext4 was chosen over btrfs for the /home drive for simplicity and maximum compatibility. If you prefer btrfs features (snapshots, compression), use mkfs.btrfs instead.
  • The noatime mount option reduces unnecessary writes by not updating file access timestamps.
  • Pass 0 2 in fstab (not 0 0) so fsck runs on boot if needed, but after the root filesystem (which is 0 1).