Montowanie partycji w „piaskownicy”


9

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?


Nie udało mi się przetestować odpowiedzi twoich facetów, więc trudno wybrać 1, aby wybrać rozwiązanie. Więc poproszę was wszystkich
Falmarri,

Odpowiedzi:


7

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.


lub można skorzystać z funkcji inicjowania btrfs (wskazanej na stronie < en.wikipedia.org/wiki/Btrfs#cite_ref-16> ) - do zaszczepienia pliku fs do odczytu z bazą tylko do odczytu. Jeśli podstawą fs jest btrfs ...
imz - Ivan Zachharyaschev

5

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 .


3

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.


1

Możesz iść Btrfsi 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ć:

btrfstune -S 1 /dev/RO #make it read-only
mount /dev/RO /mnt/temp
btrfs device add /dev/RW /mnt/temp
umount /mnt/temp

i od tej chwili, za każdym razem, gdy montujesz

mount /dev/RW /mnt/test

zmiany są zapisywane w / dev / RW, podczas gdy / dev / RO pozostaje nietknięty.

(przykłady oparte są na tych w wiki )


0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.