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>
101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
sudo reboot
|
|
```
|
|
|
|
### Step 7: Verify After Reboot
|
|
|
|
```bash
|
|
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`).
|