コミット機能(上書き、和集合とも呼ばれる)を持つdiffファイルシステムの使用

コミット機能(上書き、和集合とも呼ばれる)を持つdiffファイルシステムの使用

私は2台のコンピュータで作業し、プライマリコンピュータのすべてのファイルをUSBフラッシュドライブに同期します。 2番目のコンピュータでは、ファイルを操作するためにUSBフラッシュドライブをプライマリコンピュータと同じパスにマウントしました。

これで、パフォーマンスとフラッシュ寿命のためにUSBフラッシュドライブを読み取り専用で使用し、変更を一時ディレクトリに書き込むことができるすべての種類のdiff、別名上書き、別名Union、ファイルシステム(Unionfsやaufsなど)を使用する必要があります。 。ついに変更をUSBフラッシュドライブにすぐに書き換えることができました。

助けが必要ですか?希望はありますか?

修正する:

すべての回答とコメントに感謝します。私はLinuxに興味があり、質問は次のとおりです。上記のファイルシステムのうち、必要に応じてより低いファイルシステムに書き込みをコミットできるものはありますか?それではどうですか?

答え1

「snapshot-merge」という新しいDMターゲットがあります。

USBフラッシュドライブをLVM物理ボリュームとしてフォーマットし、必要なファイルシステムを論理ボリュームに配置すると、次のことができます。

  1. USBフラッシュドライブを含むボリュームグループとローカルディスク上の他のLVM物理ボリュームを有効にします。
  2. ローカルディスク上の論理ボリュームのスナップショットを作成します。
  3. スナップショットをマウントし、目的の操作を実行してからマウントを解除します。
  4. スナップショットを元に戻します。

一時ディレクトリではなく一時ブロックデバイスが必要ですが、これはユーザーが必要とする効果に近いです。


必要に応じて{braces}で囲まれた部品を交換してください。

#USBドライブの初期設定。
PVCCreate /dev/{USB}
vgcreate {リムーバブル} /dev/{USB}
lvcreate -n {基本} -l 100%PVS {リムーバブル} /dev/{USB}
mkfs -t {fs} {...} /dev/mapper/{リムーバブル}-{base}
#デバイスの初期設定を準備します。
pvcreate /dev/{スクラッチ}
#機器を取り付けます。
vgextend {リムーバブル} /dev/{SCRATCH}
lvcreate -s -n {snap} -l 100%ORIGIN /dev/mapper/{removable}-{base} /dev/{SCRATCH}
mount -t {fs} -o {...} /dev/mapper/{removable}-{snap}{マウントポイント}
#デバイスを削除します。
{マウントポイント}を削除
lvconvert --merge /dev/mapper/{移動可能}-{スナップ}
vgreduce {移動可能} /dev/{SCRATCH}
vgchange -an {リムーバブル}

テストされているわけではありませんが、すべてのLVMコマンドにはマニュアルページがあるので、そこから見つけることができます。vgscanUSB ドライブを接続するときにボリュームグループが自動的に検出されない場合は、どこかに電話をかける必要があります。

答え2

これは活用事例のようですねdm - ユーザースペース+小:デフォルトでは、COW(記録中にコピー)ファイルとUSBスティックに対応するブロックデバイスで構成されるDMターゲット(ブロックデバイス)を設定し、それを使用してファイルシステムをホストします。すべての更新はCOWファイルに書き込まれます。 COWファイルにない読み取りはUSBスティックから取得されます。ファイルシステムがマウント解除された後、COWファイルの修正はUSBスティックにマージされます。

残念ながら、それはLinuxに限定されています2007年に開発が中断されたようです。

2台以上のPC間でファイルを同期したい場合は、次のことをお勧めします。ホームディレクトリ(または関連フォルダ)をバージョン管理下に置きますか? 一般的な作業サイクルは次のとおりです。

  1. USBフラッシュドライブを挿入します。
  2. USBスティックから最新の変更を抽出してホームディレクトリストアを更新します。
  3. あなたの仕事をしてください。
  4. バージョン管理システムに変更をコミットし、USBスティックのリポジトリを更新します。

これはUSBスティックに書き込むだけです。 (他の人の言葉に同意しますが、USBスティックが古くなると、より大きなUSBスティックをもう1つ購入することになります。)

答え3

ファイル同期ツールを使用することをお勧めします。問題に対するファイルシステムレベルのソリューションが不可能な場合があります。確認する一貫したそしてカテーテル。私が理解しているように、あなたのメインコンピュータにはすでにファイルのコピーがあります。私が使用するワークフローは次のとおりです。

  1. PC_1で作業し、ファイルを変更します。完了したら、USBスティックに同期してください。

  2. USBスティックをPC_2に接続し、コンテンツをPC_2に同期します。

  3. PC_2で作業し、ファイルを変更します。完了したら、USBスティックに同期してください。

変更されたファイルだけが上書きされるため、同期は非常に高速です。インストールと削除トリガーを作成して同期を自動化することもできます。

ファイルシステムソリューションでは、btrfsなどのCopy On Writeプロパティを持つ一部のFSを見つけることができます。スナップショットを撮って同期する方が高速で効率的です。しかし、まだ実装を見つけることができませんでした。また、ファイルシステムレベルで作業すると、競合を簡単に解決できません。

答え4

私はこれがUnixスタイルのオペレーティングシステム用であると仮定していますが、Windowsベースのソリューションに興味がある場合は、さまざまなネットワークでさまざまなファイルとフォルダを同期するための無料のツールであるMicrosoft Meshを使用しました。コンピュータ。もう1つの素晴らしい機能は、Webインターフェースを介してこの「クラウド」(私の用語ではなく、その用語)にアクセスできる機能です。同期されていないリモートコンピュータにありますが、一部のファイルにアクセス/ダウンロードしたい場合に便利です。

関連情報