5.3 KiB
Ок — если хочешь “пересоздать заново и забыть старое”, то план такой: сначала вынести home/qemu, потом размонтировать, сделать mkfs.btrfs -f с новым label, заново создать subvol’ы и обновить NixOS-конфиг под новый label+пути. mkfs.btrfs -f реально уничтожит старую ФС и всё на ней.[1]
1) Скопировать данные в безопасное место
Команда, которую ты написал, ок если ты реально находишься в /mnt/gentoo-root (как в примере), и ~/temp существует:
mkdir -p ~/temp
cp -a /mnt/gentoo-root/home/qemu ~/temp/
Рекомендую cp -a вместо cp -r, чтобы сохранить права/времена/симлинки.
Проверь, что копия на месте: ls -la ~/temp/qemu.
2) Размонтировать старые точки
Нужно отмонтировать все subvol-ы с этого диска (иначе mkfs не даст, или ты рискуешь).
В NixOS:
sudo umount /mnt/gentoo-root/images
sudo umount /mnt/gentoo-root/distfiles
sudo umount /mnt/gentoo-root/home
sudo umount /mnt/gentoo-root
Если где-то “busy”, покажет кто держит: sudo lsof +f -- /mnt/gentoo-root (или fuser -mv).
3) Пересоздать btrfs с новым label
Теперь форматируем раздел (у тебя это /dev/nvme0n1p2 по lsblk), и задаём новый label, например nvme-950. Опция -L/--label задаёт label файловой системы.[1]
sudo mkfs.btrfs -f -L nvme-950 /dev/nvme0n1p2
4) Создать subvol’ы заново (правильно — на top-level id=5)
Чтобы создать subvol на “корне” btrfs, монтируем top-level (subvolid=5), создаём subvol, и размонтируем.[2][3]
sudo mkdir -p /mnt/tmp_nvme950
sudo mount -o subvolid=5 /dev/disk/by-label/nvme-950 /mnt/tmp_nvme950
sudo btrfs subvolume create /mnt/tmp_nvme950/@
sudo btrfs subvolume create /mnt/tmp_nvme950/@home
sudo btrfs subvolume create /mnt/tmp_nvme950/@distfiles
sudo btrfs subvolume create /mnt/tmp_nvme950/@images
sudo umount /mnt/tmp_nvme950
5) Обновить NixOS-конфиг
Теперь можно:
- переименовать mountpoint’ы на
/mnt/nvme-950/... - и device сменить на
/dev/disk/by-label/nvme-950
То есть в твоём файле:
- все
"/mnt/gentoo-root"→"/mnt/nvme-950" - все
by-label/gentoo_root→by-label/nvme-950 - в
tmpfiles.rulesтоже заменить пути.
После этого:
sudo nixos-rebuild switch
6) Вернуть qemu обратно
Когда новый диск смонтировался:
sudo mkdir -p /mnt/nvme-950/home
sudo cp -a ~/temp/qemu /mnt/nvme-950/home/
sudo chown -R wave:users /mnt/nvme-950/home/qemu
Если это btrfs и ты хочешь отключить CoW для qcow2 (как раньше делал), делай chattr +C на каталог до создания/копирования новых qcow2. (На уже существующие файлы это не всегда помогает.)
Перед тем как форматировать: подтверди, что правильный раздел — это точно /dev/nvme0n1p2 (953.9G диск → 952.9G partition), а не второй NVMe на 1.8T. Самый надёжный чек: ls -l /dev/disk/by-id/ | rg nvme0n1p2 и/или blkid /dev/nvme0n1p2.