Btrfs tworzenie subvoluminów i przenoszenie danych do nich

Źle się zabrałem za kopiowanie danych na nowy (systemowy) fs ze starego. Nie potworzyłem subwoluminów i dałem cp -r --preserve=all [^ … ] … -t /mnt, gdzie nowy fs jest podpięty pod /mnt, a kropki oznaczają, że nie chciało mi się zaglądać, co wpisałem.

Mam teraz rozumieć, że tworzę, np.:

btrfs-subvolume create /@/tmp

a następnie:

cp -r  --preserve=all /tmp/*  /@/tmp

Czy przed skpiowaniem (komenda cp …) muszę podmontować subwolumin.

EDIT: Kolejna gafa. Zamiast cp do subwoluminu. to mv .

Ostatecznie się poddałem. Zapomniałem chyba dodać, że moje distro to OpenSUSE. Wyeksportowałem listę paczek i zainstalowałem system na nowo. System instalował się parę godzin. Przeniosę część ustawień ze starego systemu;.

Kilka godzin?? Weź następnym razem użyj Clonezilla.:slight_smile: Kilka kliknięć i się robi.

Dzięki. Clonzezilla klonuje partycję bit po bicie czy plik po pliku? Jeśli to drugie, to można wybrać katalogi do wykluczenia? Moja partycja na poprzednim systemie miała ponad 200 GB, a na tym 120 GB. Dlatego maszyny wirtualne zostawiłem na poprzednim systemie.

https://www.thomas-krenn.com/pl/wiki/Klonowanie_dysku_na_mniejszy_nośnik_z_Clonezillą

@nintyfan

Clonezilla tworzy kopie posektorowe (program partclone + zależności).

Tu masz niby jakiś nieradnik:
https://www.aligrant.com/web/blog/2019-02-27_copying_a_btrfs_volume_to_another_disk_the_easy_way .

Jakbym zrobił w domowych warunkach? Uruchamiasz livecd. Na nowym dysku tworzysz tablicę partycji, partycje i całą strukturę btrfs. Potem podmontować starą zawartość w jednym miejscu, nową w innym miejscu. Na koniec użyć rsync, w którym możesz wykluczyć co chcesz.