Как можно отменить много жестких ссылок?

1821
BinaryMisfit

Я по глупости использовал Dupemerge, чтобы превратить все мои дубликаты в жесткие ссылки. Теперь Windows XP работает неправильно, например, проводник не запускается.

Существует ли утилита, которая перебирает файловую систему в поисках жестких ссылок, копирует файл, удаляет исходную ссылку и переименовывает копию, сохраняя оригинальные атрибуты и имя?

0
Я не знаю, как их найти, но я полагаю, вам нужно только отменить их для жестких ссылок в папках Windows? Нет ошибок в журнале событий, чтобы указать * почему * Explorer не запускается? Arjan 15 лет назад 1
Ой, может быть, вы не сможете по-настоящему отменить это, особенно если по какой-то причине важна дата файла: * Dupemerge создает криптологическую хэш-сумму для каждого файла, найденного под указанными патчами, и сравнивает эти хэши друг с другом, чтобы найти дубликаты. При обнаружении дубликатов не проводится сравнение дат файлов, что может вызвать проблемы. * - http://schinagl.priv.at/nt/dupemerge/dupemerge.html (Шансы найти один и тот же хэш для разных файлов очень малы, но не совсем ноль ...) Arjan 15 лет назад 0
Как писал @Bender: * выясните, являются ли жесткие ссылки причиной проблем * Если дата файла * не * важна * или если что-то пошло не так при создании жестких ссылок, я не вижу, как жесткие ссылки могут сделать Windows Explorer (или что-нибудь еще в этом отношении) потерпеть неудачу. Arjan 15 лет назад 2
*> Я по глупости использовал Dupemerge, чтобы превратить все мои дубликаты в жесткие ссылки. Теперь Windows XP работает неправильно, например, проводник не запускается. * Вы делали это и для файлов Windows? Внимание всем, кто попадает на эту страницу: ** не ** делают это для системных файлов (например, файлов). в `\ Windows \ *`). Даже если ему удается работать какое-то время, это крайне нежелательно, так как может нарушать обновления и тому подобное. Synetech 12 лет назад 0

8 ответов на вопрос

1
Bender

Я сомневаюсь, что есть утилита для удаления того, что было сделано. Вы можете снова искать дубликаты, проверять их количество ссылок и атрибуты (или, возможно, Dupemerge может помочь идентифицировать жесткие ссылки на одни и те же файлы) и выполнять копирование вручную. Это может по крайней мере помочь вам выяснить, являются ли жесткие ссылки причиной проблем.

1
Redandwhite
  • Поскольку вы преобразовали их в жесткие ссылки, вам может повезти, и они все равно могут отображаться как дубликаты, используя что-то вроде DoubleKiller .

  • В любом случае, я сомневаюсь, что есть полезность для этой конкретной задачи.

Если ничего не помогает, я рекомендую переустановить ...

1

для исправления операционной системы используйте проверку системных файлов:

вставьте установочный компакт-диск windows xp

нажмите CTRL + ALT + DEL, чтобы открыть диспетчер задач, перейдите в Файл> Выполнить (Новая задача) и введите sfc / scannow и нажмите OK.

примечание: это только восстановит системные файлы, но вернет вас к работе. что касается другого затронутого программного обеспечения, вам придется переустанавливать или восстанавливать установку в случае необходимости.

SFC / SCANNOW с ремонтом может действительно испортить установку Windows. Он попытается вернуться к состоянию компакт-диска, независимо от того, какие обновления Windows или пакеты обновлений были применены с тех пор. ОП должен будет пройтись по куче диалогов, чтобы выяснить, какие из них ему действительно нужны, и, возможно, все равно может оказаться не загружаемой системой. harrymc 15 лет назад 0
спасибо, что напомнили мне, что проводник не запускается. и если вы спрашиваете меня, эта установка Windows уже полностью испорчена. Вот почему люди делают резервные копии из своей системы, прежде чем выполнять такие трюки. :) 15 лет назад 0
Совершенно верно. Я даю большие шансы на полную переустановку, если он не может вернуться к точке восстановления. harrymc 15 лет назад 0
серьезно, к тому времени, когда вы все это выясните (и, возможно, вас ждут сюрпризы), у вас будут установлены окна на дюжине или более машин. 15 лет назад 0
1
Tom Wijsman

Обновить.

Вещи, которые не работали:

  1. Я не нашел ни одного приятного инструмента для отмены жестких ссылок (т. Е. Идентификаторов жестких ссылок, скопировать файл, удалить жесткую ссылку, переименовать копию в имя жесткой ссылки).
  2. Запустил chkdsk в консоли восстановления (после распаковки всех файлов)
  3. Мой системный диск Lenovo не позволил бы мне переустановить Windows XP Home, а программа Lenovo Rescue and Recovery не переустановила Windows
  4. копирование (во 2-й раздел) и обратно не помогло

Что я сделал:

  1. скопировал мой диск C: в другой раздел в каталоге "\ c-drive-2009Nov4, используя Richcopy

  2. Возможно, я установил новый больший диск, создав новый раздел на том же диске, что и мой старый раздел C :. Затем я скопировал, используя держатель USB, со своего старого c: на новый раздел C: на новом диске. Затем я переместил данные и установил их в новый большой раздел данных, оставив системный раздел c: 70 ГБ на внешнем быстром кольце жесткого диска. Так что я просто сделал это снова, используя live-загрузку linux GParted, чтобы скопировать мой раздел с мая на мой раздел.

  3. Затем я использовал копию, которую я сделал с моего нынешнего диска C, чтобы вернуть любые простые файлы, которые мне нужны, например, обновленные файлы BAT, и переустановил все более новые программы.

  4. Я использовал FEBE для резервного копирования своего профиля Firefox, поэтому я использовал резервную копию для сброса настроек FF, в Windows и в Ubuntu, которые я установил в другом разделе. Ubuntu - это то, как у меня все еще был веб-доступ и какая-то утилита. Работал довольно хорошо, даже если застрял на медленной части HD.

Потери: некоторые «бесплатные» программы, которые я не могу перерегистрировать, некоторые настройки программы.

1
Mokubai

SameFiles Assistant 3.1 может работать:

Same Files Assistant - утилита для управления жесткими ссылками.

В частности, есть одна особенность:

  • Вы можете откатить жесткие ссылки на обычные файлы в любое время.
0
harrymc

Попробуйте Hard Link Magic, это может помочь.

Также у Microsoft Junction есть возможность рекурсивного обхода каталогов и списка / удаления точек соединения.

Просто будьте осторожны, чтобы создать точку восстановления системы, прежде чем делать эти манипуляции.

Жесткие ссылки не являются точками соединения. Эта программа, кажется, работает и с точками соединения (на самом деле она называется Junction Link Magic). Bender 15 лет назад 0
@ Бендер, ты имеешь в виду, что после установки он называется "Junction Link Magic"? (Кажется, что все загрузки относятся к «Магии жестких ссылок».) Arjan 15 лет назад 0
0
Peter John Acklam

Я написал Perl-скрипт, который идентифицирует все обычные файлы, которые являются жесткими ссылками на одни и те же данные. Скрипт отлично работает на UNIX и Cygwin . Я не тестировал его со Strawberry Perl или любым другим портом Windows для Perl, но я решил поделиться этим в любом случае. На Windows (Cygwin) я бы открыл терминал и сделал ./list-dup-hard-links /cygdrive/c/.

#!/usr/bin/perl # # NAME # # list-dup-hard-links - list regular file names pointing to the same inode # # SYNOPSIS # # list-dup-hard-links DIRECTORY # # DESCRIPTION # # For each inode that is referred to by more than one regular file, print # the inode number and the list of corresponding files. # # AUTHOR # # Peter John Acklam <pjacklam@online.no>  use strict; # restrict unsafe constructs use warnings; # control optional warnings use File::Find; # traverse a file tree  if (@ARGV != 1) { die "Usage: $0 DIRECTORY\n"; }  my $start_dir = shift; # starting directory my $start_dev = (stat $start_dir)[0]; # device number of where we start my %inum2files; # map each inode number to file(s)  sub wanted { return if -l; # skip symlinks my @fileinfo = stat(); # get file info  if (-d _) { # if a directory my $this_dev = $fileinfo[0]; # get device number if ($this_dev != $start_dev) { # if we crossed a device boundary $File::Find::prune = 1; # mark directory for pruning return; # and return } }  return unless -f _; # continue only if a regular file  my $inum = $fileinfo[1]; # get inode number push @{ $inum2files{$inum} }, # append this file to the list of $File::Find::name; # all files with this inode number }  find(\&wanted, $start_dir); # traverse the file tree  while (my ($inum, $files) = each %inum2files) { next if @$files < 2; # skip non-duplicates  print "\nInode number: $inum\n\n" # print header or die "$0: print failed: $!\n";  for my $file (@$files) { print " $file\n" # print file name or die "$0: print failed: $!\n"; } } 
0
Carlos Almiro

В Unix жесткие ссылки на один файл ссылаются на один и тот же «номер инода». Функция "stat" возвращает свойства файла, такие как размер, режим, дата изменения, дата изменения, номер индекса, ..., но возвращает номер индекса "0" для любого файла в Windows. Используйте perl Win32 :: IdentifyFile (CPAN), чтобы получить файл локализации диска. Жесткие ссылки "ссылки" на тот же диск "локализация".

Похожие вопросы