web-dev-qa-db-ja.com

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

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

3
Mike Weir

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

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

更新:
自動化に興味がある場合: VBoxManage コマンドラインからVM)を制御できます。

1
nik

私が理解しているように、ディレクトリツリー全体を別のコンピュータにファイルごとにコピーしてバックアップを作成する必要があります。これは確かにバックアップを作成する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などを使用して)効率的に圧縮する方がはるかに簡単です。

1
Eroen

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ファイル名でそれらを回避するか、もちろんまったく別のアプローチを使用するだけです。

0
ak2