パーティションを「サンドボックス」にマウントする


9

これが可能かどうか疑問に思っています。ローカルのマシンに/リモートのLinuxマシンをマウントするLinuxシステムをセットアップしたい/。ただし、ローカルマシン上のすべての変更をramに保存して、リモートマシンに影響が及ばないようにしたいのですが。理想的には、変更が書き込まれることは決してないので、再起動すると/、前のセッション中に行われたすべての変更を無視して、元のパーティションが再びマウントされます。

そのようなことは可能ですか?


私は皆さんの答えをテストするために移動していませんので、ソリューションとして選択するために1を選ぶのは難しいです。だから私はあなたたち全員に
賛成票を入れ

回答:


7

使用 unionfsのAUFS(両方ともカーネル外部パッチである)またはunionfsfuse / funionfs(FUSEを使用)およびRO及び内部ファイルシステムのような外部/マーキングすることにより組合を作成するには、(毎回洗浄さTMPFS / ramfs /追加パーティションとしてマウント)。

あるいは、スナップショットでファイルシステムまたはLVMを使用できます。その後、変更が書き込まれますが、起動ごとにスナップショットを消去できます。


または、btrfsシード機能(< en.wikipedia.org/wiki/Btrfs#cite_ref-16>で指摘)を利用して、読み取り専用のベースで読み取り/書き込みfsをシードできます。ベースfsがbtrfsの場合...
imz-Ivan Zakharyaschev

5

これにはいくつかの方法があります。最も簡単な設定は、すべての変更がBに保存されるように、2つのディレクトリツリーAとBの単一のビューを表示するユニオンファイルシステムを使用することです。この場合、AはNFS / Samba / sshfs /…マウントポイントになります。 Bは、tmpfsファイルシステム上の最初は空のディレクトリです。

Linuxはカーネル内組合のファイルシステムを持っていませんが、いくつかあるFUSEの実装:funionfsunionfsのヒューズが


3

/がローカルマシンのRAMに収まり、アプリケーションを実行するための十分な余地がある場合、基本的なアイデアは、おそらくターゲットマシンで最小のLinuxシステムを起動し、ramfs仮想ディスクを自動的に作成し、リモートから/にコピーして、この新しい/にchrootします。RAMが十分でない場合は、基本的に同じ手順に従うことができますが、ramfsではなく、コピーする前にコンテンツをクリアする必要がある実際のディスクパーティションを使用できます。完全なコピーを消去する代わりに、適切なオプションを指定してrsyncを使用することもできます。


1

あなたが行くことができBtrfs、それはコピーオンライト(CoW)機能です。

あなたが探しているかもしれないものは、シードデバイスとしてBtrfs Wikiで説明されています

基本的な考え方は、別の書き込み可能なパーティションである「その上に追加のレイヤーを追加する」よりも、元のデータで読み取り専用のパーティションを作成することです(たとえば、RAMなどでいつでも作成できます/dev/shm)。

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

その瞬間から、マウントするたびに

mount /dev/RW /mnt/test

変更は/ dev / RWに保存されますが、/ dev / ROは変更されません。

(例はwikiの例に基づいています


0

これは、PXEブートで非常に簡単にアーカイブできます。私はpxe tftp nfs bootでライブxbmcシステムを実行しています。変更は、COWを使用してNFS共有に書き込まれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.