Migawka Ubuntu btrfs nie może wykonać mv w / home

2

Chcę móc zrobić migawkę i przywrócić ją w czasie rzeczywistym.

Działa to w Fedorze i wykonuje „wycofywanie” na żywo:

btrfs subvolume snapshot /home /home/snapshot
mv /home/snapshot /home

Ale w Ubuntu mówi tylko, że nie może przenieść się w to samo miejsce.
Zgodzi się przenieść folder migawki w inne miejsce /home, ale go nie zastąpi.

Czy istnieje sposób na obejście problemu?

Dan
źródło
Nie obwiniałbym Ubuntu za odmowę wykonania tego polecenia mv. Być może powinieneś umieścić migawkę nie w tym samym folderze, który próbujesz zastąpić.
harrymc
Wiem, że to wygląda dziwnie, ale działało na Fedorze.
Dan
Ubuntu może robić mv w bardziej inteligentny / zoptymalizowany sposób niż Fedora.
harrymc
Proszę edytować swoje pytanie to wyjście btrfs subvolume list | grep /home, mount | grep /home, df | grep /homei uname -a, z obu systemów (wyraźnie oznaczone, więc możemy powiedzieć, który z nich jest który). Pachnie mi to bardzo albo różnicą wersji jądra (możliwości), albo różnicą w hierarchii systemu plików. ( btrfsPolecenie może wymagać dostosowania, ale pomysł polega na uzyskaniu listy pomysłów btrfs na temat tego, jak wygląda twój / home i wszystko poniżej).
CVn
Dlaczego nie podzielisz tego na 2 kroki: (1) cp /home/snapshot /home, (2) rm -r -f /home/snapshot?
harrymc

Odpowiedzi:

1

Najwyraźniej Ubuntu może robić mv w inny sposób niż Fedora, dlatego odrzuca operację, która wymaga usunięcia źródła przeniesienia. Najprawdopodobniej jest to zbyt silne sprawdzenie poprawności w programie mv, ponieważ przenoszenie plik po pliku powinno zakończyć się powodzeniem zarówno w systemie Ubuntu, jak iw Fedorze.

Rozwiązaniem jest wykonanie operacji w dwóch krokach:

  1. Skopiuj / zsynchronizuj folder /home/snapshotdo/home
  2. Usuń folder /home/snapshot(jeśli jest to naprawdę wymagane).
harrymc
źródło