cygwin が Linux (ext3) パーティションにアクセスする方法はありますか?

cygwin が Linux (ext3) パーティションにアクセスする方法はありますか?

Windows 上の cygwin から Linux パーティションにアクセスできるようにしたいです。目的は、Linux サーバーから Windows 7 を実行している自宅のコンピューターにデータをバックアップすることです。現在のところ、無効な文字を含むファイルがある場合や、同じ文字で大文字と小文字が異なるファイルが複数ある場合を除いて、ほとんど正常に動作します。

答え1

私がやっているのはVirtualBoxを使うことです。これには2つの方法があります。

  1. VMDKファイルにデータを保存する
    • これは非常にシンプルで安全です。バックアップ用に異なるサイズのVMDKファイルを保持することもできます。
  2. 作成するRAWディスクHDD上の実際のEXT3パーティションへのアクセス
    • これはトリッキーな方法であり、ext3 パーティションを簡単に壊してしまう可能性があることに注意してください
      (特にマウント中にサスペンドまたは休止状態を使用する場合)
    • また、Windows ブート パーティションを RAW で書き込みモードでマウントしようとしないでください。

更新:
自動化に興味があるなら:VBox管理コマンドラインから VM を制御できます。

答え2

私の理解では、完全なディレクトリ ツリーをファイルごとに別のコンピューターにコピーしてバックアップを作成したいということですね。これは確かにバックアップを作成する 1 つの方法ですが、特にあなたのケースではうまくいかないようなので、別のアプローチをお勧めします。

私が自分でやっていることは(原則として)、Linux サーバー上でローカルにバックアップしたいファイルの tarball を作成し、ssh 経由で(実際には sshfs ですが、関係ありません)どこか別の場所に保存することです。Linux サーバー上の tar 実装がファイル名を処理できる限り、ファイル名に関する問題はなくなるはずです。

Linuxサーバーが接続するためのsshサーバーをcygwinに設定するか、次のようなコマンドでこれを行うことができます。

ssh $server "tar c -C /var/important ./" > backup.tar

バックアップを保存したいコンピュータの cygwin から実行します。また、Linux サーバーに tarball を保存し、後で転送することもできます。

消費される帯域幅とディスク容量を減らしたい場合は、gnu tar の代わりに、増分モードを使用すると、前回のバックアップ後に変更されたファイルのみを含めることができます。ただし、rsync のデルタ転送は実行されず、ファイルの複数のバージョンがディスク領域を占有します。一方、tarball は、ディレクトリ ツリーよりも効率的に圧縮するのがはるかに簡単です (xz などを使用)。

答え3

Windows カーネルがファイル名の大文字と小文字を区別しないかどうかを決定するレジストリ設定があります。

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive

これを に設定し0て再起動すると、大文字と小文字のみが異なるファイルが許可されます。http://cygwin.com/cygwin-ug-net/using-specialnames.html#パス名の大文字と小文字を区別する

Cygwin 1.7 は、Windows ファイル名で許可されていない文字を:「Unicode プライベート使用領域」に自動的にマッピングします。これに対する唯一の大きな例外はバックスラッシュです。これは、Windows の相互運用性のためにディレクトリ区切り文字として扱われるため、これに対して実行できる唯一の方法は、Linux ファイル名でバックスラッシュを避けるか、もちろんまったく別のアプローチを使用することです。

関連情報