Windowsのcygwinを介してLinuxパーティションにアクセスできるようにしたいと思います。私の目的は、LinuxサーバーからWindows 7を実行している自宅のコンピューターにデータをバックアップすることです。現在のところ、無効な文字のファイルがある場合や、同じ文字で大文字と小文字が異なるファイルが複数ある場合を除いて、ほとんど機能します。
私がやっていることはVirtualBoxを使うことです。これは2つの方法で行うことができます。
更新:
自動化に興味がある場合: VBoxManage コマンドラインからVM)を制御できます。
私が理解しているように、ディレクトリツリー全体を別のコンピュータにファイルごとにコピーしてバックアップを作成する必要があります。これは確かにバックアップを作成する1つの方法ですが、特にあなたの場合はうまくいかないように見えるので、別のアプローチをお勧めします。
私が自分でやっていることは(原則として)、Linuxサーバーにローカルでバックアップしたいファイルのtarballを作成し、sshを介して別の場所に保存することです(実際にはsshfsを使用しますが、関係ありません)。これにより、Linuxサーバーのtar実装がファイル名を処理する限り、ファイル名の問題が解消されます。
これを行うには、Linuxサーバーが接続するsshサーバーを使用してcygwinを設定するか、次のようなコマンドを使用します。
ssh $server "tar c -C /var/important ./" > backup.tar
バックアップを保持したいコンピューターでcygwinから実行します。 Linuxサーバーにtarballを保存し、後で転送することもできます。
消費される帯域幅とディスクスペースの量を減らしたい場合は、gnu tarの代わりに star を使用することをお勧めします。これは、前回のバックアップ後に変更されたファイルのみを含めることができるインクリメンタルモードです。それでもrsyncのデルタ転送は行われず、ファイルのいくつかのバージョンはディスクスペースを占有します。一方、tarballは、ディレクトリツリーよりも(xzなどを使用して)効率的に圧縮する方がはるかに簡単です。
Windowsカーネルがファイル名を大文字と小文字を区別しないものとして扱うかどうかを決定するレジストリ設定があります。
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
これを0
に設定し、再起動して、大文字と小文字のみが異なるファイルを許可します。 http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive も参照してください。
Cygwin 1.7は、Windowsファイル名で許可されていない:
などの文字を「Unicode私用領域」に自動的にマップします。これに対する1つの大きな例外はバックスラッシュです。バックスラッシュは、Windowsの相互運用性のためにディレクトリ区切り文字として扱われるため、Linuxファイル名でそれらを回避するか、もちろんまったく別のアプローチを使用するだけです。