hyperion/10-linux/90-stories/как я переименовывал кривой label.md
2025-12-28 19:00:03 +03:00

5.3 KiB
Raw Blame History

Ок — если хочешь “пересоздать заново и забыть старое”, то план такой: сначала вынести 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_rootby-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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20