Скопіюйте на інший диск NTFS та збережіть жорсткі посилання


10

Я повинен скопіювати структуру каталогів з одного локального диска NTFS на інший (Windows 7+) та зберегти жорсткі посилання, які існують у цій структурі каталогу.

Прийнятним рішенням буде замінити жорсткі посилання на (відносні) символічні посилання перед копіюванням, але я не впевнений, чи це також можливо.

Які тут варіанти?


За інформацією superuser.com/questions/624811/… , програмне забезпечення під назвою "Shadow Copy Cloner" може це зробити.
Войтех

1
@Vojtech Це не безкоштовно і, здається, недоступне. Але ln.exe відповідає моїм потребам, з іншого боку. Однак я вважаю за краще альтернативу GUI.
колба Естуса

1
@PJMahoney Так, це жорсткі посилання, не було б проблем із копіюванням переходів та символіки, останні можна було просто скопіювати та виправити пізніше. Я не збираюсь його клонувати, просто скопіювати структуру каталогів (яка є частиною всього диска) на інший не порожній диск.
колба Естуса

Відповіді:


9

Інструмент для копіювання жорстких посилань на окремі розділи диска

LN - жорсткі посилання командного рядка

Команда: ln --copy x:\dir\dir2 y:\dir\newdir

У наведеному вище прикладі каталоги та файли нижче x: \ dir \ dir2 копіюються в y: \ dir \ newdir, а всі жорсткі посилання / переходи / символічні посилання в межах x: \ dir \ dir2 копіюються / прив'язуються до їхніх нових місць під y : \ dir \ newdir.

Ресурс: http://schinagl.priv.at/nt/ln/ln.html

Завантажте: http://schinagl.priv.at/nt/ln/ln.html#contact

Примітка. Здається, ви просто завантажуєте це програмне забезпечення для вашої архітектури процесора з ZIP-файлу, а також vcredist (Visual C ++ Redistributable) і встановлюєте його. Потім просто витягніть файли та папки з ZIP-файлу в нову папку десь (.eg C:\Temp). У командному рядку просто перейдіть до цієї папки [каталог] та виконайте необхідні команди для розташування вашого диска, як показано у наведеному вище прикладі. Запуск ln --helpпоказує довідкову інформацію, але наведений вище приклад команди повинен скопіювати hard linksдокументацію.


Розширення оболонки посилання

Ресурс: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Завантажте: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact

Розділи або функції, що цікавлять це програмне забезпечення

  • Smart Mirror
  • Clone
  • Smart Copy

ln - Командний рядок Жорсткі посилання - Завантажити знімок екрана введіть тут опис зображення

Розширення оболонки посилання - Завантажте знімок екрана введіть тут опис зображення


ІНТЕРЕСОВІ ПРИМІТКИ

Здається, hard linksвони заблоковані на одному дисковому розділі для їхніх покажчиків файлів тощо, і їх не можна використовувати у кількох розділах. Крім того, hard linksна NTFS розділи є частиною Master File Tableзаписів (або атрибутів для підрахунків щонайменше), тому їх копіювання на існуючий диск, у якого є його власне, MFTможе здатися проблемою, якщо ви не клонуєте байт-байт на рівні розділу. принаймні.


4

Утиліта командного рядка rsyncвиконує те, що ви просите.

Якщо припустити, що ваші старі дані знаходяться в розташуванні A, а ваші нові дані - на B, виконайте наступне:

rsync -ahPruvz --hard-links A B

Цитування з посібника rsync:

Це спонукає rsync шукати жорсткі файли у джерелі та з'єднати разом відповідні файли у пункті призначення.

Як його отримати rsyncта використовувати? Є дві прості альтернативи для Windows:

Перша альтернатива: використання cygwin. Це програмне забезпечення для Windows. Встановіть його, додайте rsyncна кроці вибору пакетів. Залиште все інше за замовчуванням. Після встановлення використовуйте його оболонку для введення команди. Якщо хочете, ви можете використовувати повний шлях, /usr/bin/rsyncа не просто rsync. Якщо ви хочете отримати доступ до накопичувачів Windows, використовуйте такі шляхи, як "/ cygwin / диски" і завжди намагайтеся автозавершити за допомогою TAB.

Друга альтернатива: якщо це настільний комп'ютер, використовуйте прямий дистрибутив GNU / Linux. Підготуйте живий USB-образ, завантажте з нього, встановіть потрібні диски та викликуйте rsync. Якщо живого зображення немає rsync, встановіть його. ( apt-get install rsyncу Debian та його похідних.) Якщо ви ще не маєте досвіду роботи з екосистемою Linux, cygwin може бути простішим.


Дякую за роз’яснення цього. Я перевірив rsync, і він справді виконує роботу на жорстких посиланнях (/ cygwin / driveletter і косої риски викликають певний дискомфорт, але це працює).
колба Естуса

зауважте: якщо Aце каталог, то Bмає бути ім'я, яке буде приймати каталог для цілі (на відміну від, cpнаприклад, де останній аргумент є батьківським каталогом)
MM

@estus - Які методи ви спробували, як це працювало? і які результати ви побачили і найбільше сподобалися?
Alex S

@ Алекс Я не пам'ятаю, але, ймовірно, закінчився тим, lnяк показано в іншій відповіді. Цигвін rsyncз цієї відповіді може також працювати, як я вже згадував.
колба

1
@AlexS я використовував CLI утиліти ln --copy. Що стосується GUI, я припускаю, що "Smart Copy" - це те, що ви шукаєте.
колба

3

Спробуйте заглянути в rsync для Windows. Оскільки у rsync є можливість збереження жорстких посилань (прапор -H, --hard-links), вона повинна виконати цю роботу (джерело: https://download.samba.org/pub/rsync/rsync.html ).

Ви можете спробувати вивчити щось на зразок cwRsync: https://www.itefix.net/cwrsync# у цього GUI.

cwRsync - це упаковка Rsync для Windows з графічним інтерфейсом клієнта. Ви можете використовувати cwRsync для швидкого віддаленого резервного копіювання та синхронізації.


1
Будьте обережні, рекомендуючи програмне забезпечення. Як написано, ваша відповідь може розглядатися як спам. Ваша відповідь повинна містити опис програмного забезпечення та спосіб вирішення цього питання. Додаткова інформація: Як я рекомендую програмне забезпечення у своїх відповідях?
bwDraco

1
Раніше мені не вдалося досягти цього за допомогою rsync (я вважаю, що я використовував DeltaCopy для GUI). Це може бути доречно для впровадження жорстких посилань NTFS і того факту, що rsync - це насамперед інструмент * nix. Деякі роз'яснення були б вдячні.
колба Естуса

1

Тут дуже пізно на вечірку.

Боротьба з вогнем. Оскільки роботопія дозволила безлад, то ми будемо використовувати і для очищення її.

Створіть порожній каталог, а потім скопіюйте порожню dir до цілі (у якої є дуже довгі шляхи) за допомогою опції чистки.

md %temp%\foo
robocopy %temp%\foo target /purge
rd target
rd %temp%\foo

Це має спрацювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.