題 複製到另一個NTFS磁盤並保留硬鏈接


我必須將目錄結構從一個本地NTFS磁盤複製到另一個(Windows 7+)並保留此目錄結構中存在的硬鏈接。

一個可接受的解決方案是在復制之前用(相對)符號鏈接替換硬鏈接,但我不確定它是否也是可行的。

這裡有什麼選擇?


8
2017-11-07 02:39


起源


根據 superuser.com/questions/624811/...,一個名為“Shadow Copy Cloner”的軟件可以做到這一點。 - Vojtech
@Vojtech它不是免費軟件,似乎不可用。但另一方面,ln.exe符合我的需求。但是,我更願意選擇GUI。 - estus
@PJMahoney是的,這些是硬鏈接,複製結點和符號沒有問題,後者可以稍後復制和修復。我不打算克隆它,只是將目錄結構(這是整個磁盤的一部分)複製到另一個非空磁盤。 - estus


答案:


用於復制跨單獨磁盤分區的硬鏈接的工具

LN - 命令行硬鏈接

命令:  ln --copy x:\dir\dir2 y:\dir\newdir

在上面的例子中,x:\ dir \ dir2下面的目錄和文件是   複製到y:\ dir \ newdir,以及所有硬鏈接/聯結/符號鏈接   在x:\ dir \ dir2中復制/綁定到其新位置下   Y:\目錄\ NEWDIR。

資源:  http://schinagl.priv.at/nt/ln/ln.html

下載:  http://schinagl.priv.at/nt/ln/ln.html#contact

注意:  您似乎只是從ZIP文件以及vcredist(Visual C ++ Redistributable)下載用於CPU體系結構的此軟件並進行安裝。然後只需將ZIP文件中的文件和文件夾解壓縮到某個新文件夾(.e.g C:\Temp)。在命令行中,只需轉到該[directory]文件夾,然後像上面的示例所示,為您的驅動器位置運行所需的命令。運行 ln --help 顯示幫助詳細信息,但上面的命令示例應該複製 hard links 根據文件。


鏈接Shell擴展

資源:  http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

下載:  http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact

本軟件涉及的部分或功能

  • Smart Mirror
  • Clone
  • Smart Copy

ln - 命令行硬鏈接 - 下載屏幕截圖 enter image description here

Link Shell Extension - 下載屏幕截圖 enter image description here


有趣的注意事項

它出現 hard links 鎖定到其文件指針等的相同磁盤分區,並且不能跨多個分區使用。也, hard links 在NTFS分區上是其中的一部分 Master File Table 記錄(或至少計數的屬性),以便將這些記錄複製到具有它自己的現有磁盤 MFT 如果你不至少在分區級別克隆逐字節,這似乎是一個問題。 


7
2017-11-12 02:10





命令行實用程序 rsync 做你問的。

假設您的舊數據位於位置A,並且您的新數據位於B上,請執行以下操作:

rsync -ahPruvz --hard-links A B

從rsync手冊引用:

這告訴rsync在源中查找硬鏈接文件並將目標上的相應文件鏈接在一起。

如何獲得 rsync 並使用它? Windows有兩種簡單的替代方案:

第一種選擇:使用 cygwin。這是一個Windows軟件。安裝它,並在選擇包添加步驟 rsync 包。其他一切都是默認的。安裝後,使用其shell鍵入命令。如果你願意,你可以使用完整路徑, /usr/bin/rsync 而不僅僅是 rsync。如果要訪問Windows驅動器,請使用“/ cygwin / drives”之類的路徑,並始終嘗試使用TAB自動完成。

第二種選擇:如果它是台式計算機,請使用實時GNU / Linux發行版。準備一個實時USB映像,從中啟動,掛載所需磁盤並調用rsync。如果實時圖像沒有 rsync,安裝它。 (apt-get install rsync 在Debian及其衍生產品中。)我在最近5年使用Linux,對不起,這是我想到的第一個替代方案。對於任何堅持Windows的人來說,cygwin應該更容易。


3
2017-11-16 03:33



謝謝你澄清一下。我已經檢查了rsync,它確實在硬鏈接上完成了工作(/ cygwin / driveletter和斜線導致一些不適但它的工作原理)。 - estus
注意:如果 A 是一個目錄,然後 B 應該是目錄在目標上的名稱(不像 cp 例如,最後一個參數是父目錄) - M.M


嘗試查看windows的rsync。由於rsync有一個保留硬鏈接的選項(flag -H, - hard-links),它應該完成這項工作(來源: https://download.samba.org/pub/rsync/rsync.html)。

您可以嘗試查看類似cwRsync的內容: https://www.itefix.net/cwrsync# 這個有GUI。

cwRsync是帶有客戶端GUI的Rsync for Windows的打包。您可以使用cwRsync進行快速遠程文件備份和同步。


2
2017-11-10 16:48



推薦軟件時請務必謹慎。如上所述,您的答案可能被視為垃圾郵件。您的答案應該包括軟件的描述以及它如何解決問題。更多信息: 我如何在答案中推薦軟件? - bwDraco
我之前無法用rsync實現這一點(我相信我已經使用DeltaCopy進行GUI)。它可能與NTFS硬鏈接實現以及rsync主要是* nix工具的事實有關。一些澄清將不勝感激。 - estus