Zastanawiam się, czy to jest możliwe. Chcę skonfigurować system Linux, który montuje /
zdalną maszynę linux na komputerze /
lokalnym. Chcę jednak, aby wszystkie zmiany na komputerze lokalnym zostały zapisane w pamięci RAM, aby nie wpływały na maszynę zdalną. Idealnie byłoby, aby NIGDY nie zostały zapisane, aby po ponownym uruchomieniu zamontował oryginalną /
partycję, ignorując wszystkie zmiany dokonane podczas poprzedniej sesji.
Czy coś takiego jest możliwe?
Odpowiedzi:
Użyj unionfs , aufs (oba są zewnętrznymi łatami dla jądra) lub unionfsfuse / funionfs (używa FUSE) i utwórz związek, oznaczając zewnętrzny / jako RO i wewnętrzny system plików (zamontowany jako tmpfs / ramfs / dodatkowa partycja, która jest czyszczona za każdym razem).
Alternatywnie możesz używać systemu plików lub LVM z migawkami. Następnie zapisywane są zmiany, ale możesz wyczyścić migawki przy każdym uruchomieniu.
źródło
Jest na to kilka sposobów. Najłatwiejsza konfiguracja użyłaby systemu plików unii, który przedstawia pojedynczy widok dwóch drzew katalogów A i B, tak że wszystkie zmiany są zapisywane w B. W twoim przypadku A byłby punktem montowania NFS / Samba / sshfs /…, a B byłby początkowo pustym katalogiem w systemie plików tmpfs.
Linux nie ma wewnętrznego systemu plików jądra, ale istnieje kilka implementacji FUSE : funionfs , Unionfs-fuse .
źródło
Jeśli / zmieści się w pamięci RAM komputera lokalnego i pozostawi wystarczającą ilość miejsca do uruchamiania aplikacji, podstawową ideą byłoby prawdopodobnie uruchomienie minimalnego systemu Linux na maszynie docelowej, a następnie automatyczne utworzenie dysku wirtualnego ramfs, skopiowanie / z niego zdalnego i chroot do tego nowego /. Jeśli pamięć RAM jest niewystarczająca, możesz zasadniczo wykonać tę samą procedurę, ale nie używając ramfs, ale prawdziwą partycję dysku, której zawartość musisz wyczyścić przed skopiowaniem. Zamiast czyszczenia i pełnej kopii można również użyć rsync z odpowiednimi opcjami.
źródło
Możesz iść
Btrfs
i jest to funkcja Copy-on-Write (CoW).Ten, którego możesz szukać, jest opisany na Btrfs Wiki jako Seed-device :
Podstawową ideą jest utworzenie partycji z oryginalnymi danymi tylko do odczytu, niż „dodanie dodatkowej warstwy na wierzchu”, która jest kolejną partycją do zapisu (zawsze można to zrobić w pamięci RAM, np. Na
/dev/shm
) i zamontować:i od tej chwili, za każdym razem, gdy montujesz
zmiany są zapisywane w / dev / RW, podczas gdy / dev / RO pozostaje nietknięty.
(przykłady oparte są na tych w wiki )
źródło
To może być bardzo proste dzięki bootowi PXE. Korzystam z systemu XBMC na żywo z bootem pxe tftp nfs. zmiany są zapisywane z udziałem COW w NFS.
źródło