cygwin 有沒有辦法存取 Linux (ext3) 分割區?

cygwin 有沒有辦法存取 Linux (ext3) 分割區?

我希望能夠在 Windows 上透過 cygwin 存取 Linux 分割區。我的目的是將資料從 Linux 伺服器備份到運行 Windows 7 的家用電腦。

答案1

我所做的就是使用 VirtualBox。這可以透過兩種方式完成,

  1. 將資料儲存在 VMDK 檔案中
    • 這非常簡單且安全;您也可以保留不同大小的 VMDK 檔案用於備份
  2. 創建一個原始磁碟存取 HDD 上的實際 EXT3 分區
    • 請注意,這是一種棘手的方法,您可以輕鬆破壞 ext3 分割區
      (特別是如果您在安裝時使用掛起或休眠)
    • 並且,永遠不要嘗試以寫入模式掛載 Windows 啟動分割區 RAW。

更新:
如果您對自動化感興趣:VBox管理允許您從命令列控制虛擬機器。

答案2

據我了解,您希望透過將完整的目錄樹逐個檔案複製到另一台電腦來進行備份。誠然,這是進行備份的一種方法,但我建議採用不同的方法,特別是因為它在您的情況下似乎效果不佳。

我自己所做的(原則上)是在 Linux 伺服器上創建我想要本地備份的檔案的 tarball,並透過 ssh 將它們保存在其他地方(實際上是透過 sshfs,但沒關係)。只要 Linux 伺服器上的 tar 實作能夠處理檔名,這應該可以消除檔名問題。

您可以透過使用 ssh 伺服器設定 cygwin 以供 Linux 伺服器連線來完成此操作,或使用下列命令

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

在要保留備份的電腦上從 cygwin 執行。您也可以將 tarball 保存在 Linux 伺服器上,然後再傳輸。

如果您想減少佔用的頻寬和磁碟空間量,我建議使用星星而不是 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#pathnames-casesensitive

Cygwin 1.7 會自動將 Windows 檔案名稱中不允許的字元對應:到「Unicode 專用區域」。一個很大的例外是反斜杠,為了 Windows 互通性,它將其視為目錄分隔符,因此您唯一能做的就是在 Linux 檔案名稱中避免使用它們,或者當然完全使用不同的方法。

相關內容