/home onto itGoal: Free the ~352G of unused Windows partitions (sda1–sda4) and turn it into usable storage by creating a new partition and migrating
/homeonto it.
NAME FSTYPE FSVER LABEL SIZE MOUNTPOINT
sda 476.9G
├─sda1 vfat 100M ← stray Windows EFI (unused)
├─sda2 16M ← Microsoft reserved (unused)
├─sda3 350.9G ← Windows data / NTFS (unused)
├─sda4 ntfs 916M ← Windows recovery (unused)
├─sda5 vfat 1G /boot ← ACTIVE Linux boot/ESP — DO NOT TOUCH
└─sda6 ext4 124G / ← root (83G used, 33G free)
sdb 931.5G
└─sdb1 ext4 1.0 backup 931.5G ← BACKUP TARGET (not mounted)
/boot): your Arch boot/ESP — do not touch./): root, currently 83G used (33G free).backup, UUID dacd38ae-88ed-42b8-b8ed-a597aa30ae3a): backup target, currently not mounted. Room for both /home (45G) and a full sda6 image (124G)./home = 45G (users: config, kyle, var).sda1–sda4 sit physically before sda5 and sda6 on the disk. A partition can
only grow into free space immediately after it, and sda5 sits in the way.
So the clean path is a new partition + migrate /home onto it. This gains
~352G for home data and frees ~45G back on root.
sudo mkdir -p /mnt/insp && sudo mount -o ro /dev/sdb1 /mnt/insp
ls -la /mnt/insp
du -sh /mnt/insp/* 2>/dev/null
sudo dumpe2fs -h /dev/sdb1 | grep -Ei "free blocks|mount count|last mounted"
sudo umount /mnt/insp
This only reads — it won't change anything on sdb1. Confirm the existing content is OK to keep alongside the backup before proceeding.
/home + a full image of sda6sudo mkdir -p /mnt/backup
sudo mount /dev/sdb1 /mnt/backup # ext4, label "backup"
# Full sda6 root image (stays on the root filesystem only — skips /boot, /tmp,
# virtual filesystems). Lets you restore the whole system if repartitioning fails.
sudo rsync -aHAX --info=progress2 --one-file-system / /mnt/backup/sda6-root/
# /home explicitly (captured above via --one-file-system too, but kept separate
# so it's easy to find/restore on its own)
sudo rsync -aHAX --info=progress2 /home/ /mnt/backup/home/
sync # flush all writes before unmounting
--one-file-system keeps the sda6 image to the root filesystem only (no
/boot, /run, /dev, etc.).-aHAX preserves ownership, permissions, symlinks, hardlinks, ACLs, xattrs.sudo umount /mnt/backup when done.sudo du -sh /mnt/backup/sda6-root /mnt/backup/home
ls -la /mnt/backup/home # spot-check users/owners/perms
Do not proceed to Phase 2 until this backup checks out.
/homeis in use while you're logged in, so the migration (rsync + rename + fstab) must be done offline. Boot the Arch ISO — it matches your installed system and hasparted,rsync, andmkfs.ext4. (You could also repartition sda1–sda4 live since they're unmounted, but doing it from the USB is safer.)
Boot the live USB, open a terminal, and confirm the disk is still /dev/sda:
lsblk # match by 476.9G size
sudo parted /dev/sda print
Easiest with gparted (GUI). Or via CLI:
sudo parted /dev/sda print # note start sector of sda5 (call it S5)
sudo parted /dev/sda rm 4
sudo parted /dev/sda rm 3
sudo parted /dev/sda rm 2
sudo parted /dev/sda rm 1
# Create one partition filling the gap (from 2048s up to just before sda5)
sudo parted /dev/sda mkpart home ext4 2048s $((S5-1))s
sudo mkfs.ext4 -L home /dev/sda1 # verify the new partition's letter!
sudo blkid /dev/sda1 # record UUID for fstab
lsblk and use
the UUID, not /dev/sdaX, in fstab./home onto the new partitionsudo mkdir /mnt/root /mnt/newhome
sudo mount /dev/sda6 /mnt/root
sudo mount /dev/sda1 /mnt/newhome # use the real new device
sudo rsync -aHAX --info=progress2 /mnt/root/home/ /mnt/newhome/
# Verify: compare sizes and spot-check permissions/owners
sudo du -sh /mnt/root/home /mnt/newhome
-aHAX preserves ownership, permissions, symlinks, hardlinks, ACLs, and
xattrs — essential for /home.
sudo mv /mnt/root/home /mnt/root/home.old
sudo mkdir /mnt/root/home # empty mountpoint
Edit /mnt/root/etc/fstab and add:
UUID=<new-uuid> /home ext4 rw,relatime 0 2
df -hT /home # should show the new ~352G ext4
mount | grep /home
ls -la /home # confirm users/files/perms
sudo rm -rf /home.old # frees ~45G back on sda6 (root)
bootctl), its entries
reference sda5/sda6 by PARTUUID. Deleting sda1–sda4 won't change those
GUIDs, so boot is unaffected. Verify with efibootmgr -v after reboot./boot is a stray Windows artifact —
unrelated, can be cleaned separately later.