Wie kann man viele Hardlinks aufheben?

1883
BinaryMisfit

Ich habe Dupemerge dumm benutzt, um alle meine doppelten Dateien in feste Links umzuwandeln . Jetzt läuft Windows XP nicht mehr richtig, zB startet der Explorer nicht.

Gibt es ein Dienstprogramm, das das Dateisystem durchsucht und nach festen Links sucht, die Datei kopiert, den ursprünglichen Link löscht und die Kopie umbenennt, wobei die ursprünglichen Attribute und der Name erhalten bleiben?

0
Ich weiß nicht, wie ich sie finden kann, aber ich nehme an, Sie müssen sie nur für feste Links in den Windows-Ordnern rückgängig machen. Keine Fehler im Ereignisprotokoll, um anzuzeigen, * warum * Explorer nicht gestartet wird? Arjan vor 14 Jahren 1
Ups, vielleicht können Sie es nicht wirklich rückgängig machen, vor allem, wenn aus irgendeinem Grund das Dateidatum wichtig ist: * Dupemerge erstellt für jede unter den angegebenen Pfaden gefundene Datei eine kryptologische Hashsumme und vergleicht diese Hashes miteinander. Es gibt keinen Date-Date-Vergleich, der zur Ermittlung von Dupes führt, was zu Problemen führen kann. * - http://schinagl.priv.at/nt/dupemerge/dupemerge.html (Die Wahrscheinlichkeit, für verschiedene Dateien denselben Hash zu finden, ist sehr gering.) aber nicht genau null ...) Arjan vor 14 Jahren 0
Wie @Bender schrieb: * Herausfinden, ob Hardlinks die Ursache von Problemen sind * Wenn das Dateidatum * nicht wichtig * ist oder etwas anderes beim Erstellen der Hardlinks fehlgeschlagen ist, sehe ich nicht, wie Hardlinks zu Windows Explorer führen würden (oder irgendetwas anderes für diese Angelegenheit) scheitern. Arjan vor 14 Jahren 2
*> Ich habe Dupemerge dumm benutzt, um alle meine doppelten Dateien in feste Links umzuwandeln. Jetzt läuft Windows XP nicht mehr richtig, zB startet der Explorer nicht. * Haben Sie das auch für Windows-Dateien gemacht? Achtung Alle, die auf dieser Seite landen: ** Tun Sie das nicht ** für Systemdateien (zB Dateien) in `\ Windows \ *`). Selbst wenn es für eine Weile funktioniert, ist es absolut nicht ratsam, da Updates und ähnliches beschädigt werden können. Synetech vor 11 Jahren 0

8 Antworten auf die Frage

1
Bender

Ich bezweifle, dass es einen Nutzen gibt, um das, was getan wurde, rückgängig zu machen. Sie können erneut nach Duplikaten suchen, deren Verknüpfungsanzahl und -attribute überprüfen (oder Dupemerge kann dazu beitragen, feste Verknüpfungen zu denselben Dateien zu ermitteln) und das Kopieren von Hand durchführen. Dies kann zumindest helfen, herauszufinden, ob Hardlinks die Ursache von Problemen sind.

1
Redandwhite
  • Da Sie sie in feste Links konvertiert haben, könnten Sie Glück haben und sie werden immer noch als Duplikate angezeigt, wenn Sie so etwas wie DoubleKiller verwenden .

  • Auf jeden Fall bezweifle ich, dass es für diese genaue Aufgabe einen Nutzen gibt .

Wenn alles andere fehlschlägt, empfehle ich eine Neuinstallation ...

1

Um das Betriebssystem zu reparieren, verwenden Sie die Systemdatei-Überprüfung:

Legen Sie die Windows XP-Installations-CD ein

Drücken Sie STRG + ALT + ENTF, um den Task-Manager aufzurufen. Gehen Sie zu Datei> Ausführen (Neuer Task), geben Sie sfc / scannow ein und klicken Sie auf OK.

Hinweis: Dadurch werden nur die Systemdateien wiederhergestellt, aber Sie werden wieder gestartet. Für andere betroffene Software müssen Sie die Installation ggf. erneut installieren oder reparieren.

sfc / scannow mit Reparaturen kann eine Windows-Installation wirklich vermasseln. Es wird versucht, in den Status der CD zurückzukehren, unabhängig davon, ob Windows Update oder Service Packs seitdem angewendet wurden. Das OP muss eine Menge Dialoge durchlaufen, um herauszufinden, welche er wirklich benötigt, und es könnte sein, dass es noch ein nicht bootfähiges System gibt. harrymc vor 14 Jahren 0
Danke, dass Sie mich daran erinnert haben, dass der Explorer nicht startet. Und wenn Sie mich fragen, ist diese Windows-Installation bereits gründlich vermasselt. Deshalb machen die Leute Backups von ihrem System, bevor sie solche Stunts machen. :) vor 14 Jahren 0
Ganz richtig. Ich habe hohe Chancen für eine vollständige Neuinstallation, wenn er nicht zu einem Wiederherstellungspunkt zurückkehren kann. harrymc vor 14 Jahren 0
Im Ernst, wenn Sie alles verstanden haben (und es könnten noch einige Überraschungen auf Sie warten), haben Sie Fenster auf einem Dutzend oder mehr Maschinen installiert. vor 14 Jahren 0
1
Tom Wijsman

Aktualisieren.

Dinge, die nicht funktionierten:

  1. Ich habe kein nettes Werkzeug gefunden, um Hardlinks rückgängig zu machen (dh id hardlinks, kopiere die Datei, lösche hardlink, benenne die Kopie in den Hardlink-Namen um).
  2. Ran chkdsk in der Wiederherstellungskonsole (nachdem alle Dateien dekomprimiert wurden)
  3. Auf meiner Lenovo-Systemdiskette konnte ich Windows XP Home nicht neu installieren, und das Rescue and Recovery-Programm von Lenovo würde Windows nicht neu installieren
  4. Das Kopieren (auf eine zweite Partition) und zurück half nicht

Was ich getan habe:

  1. kopierte mein Laufwerk C: in eine andere Partition in einem Verzeichnis "\ c-drive-2009Nov4 mit Richcopy"

  2. Im Mai habe ich eine neue, größere Festplatte installiert und auf der neuen Festplatte eine Partition erstellt, die meiner alten C: -Partition entspricht. Dann kopierte ich mit einem USB-Halter von meinem alten c: zur neuen C: -Partition auf der neuen Festplatte. Dann habe ich die Daten verschoben und auf eine neue große Datenpartition installiert, wobei eine c: -Systempartition von 70 GB im äußeren, schnelleren Ring der HD verbleibt. Also habe ich es einfach nochmal getan, indem ich eine Live-Boot-Linux-GParted verwendete, um meine Partition von Mai auf meine verworfene Partition zu kopieren.

  3. Dann benutzte ich die Kopie meines aktuellen C-Laufwerks, um alle einfachen Dateien wiederzugeben, die ich brauchte, z. B. aktualisierte BAT-Dateien, und neuere Programme neu zu installieren.

  4. Ich habe FEBE verwendet, um mein Firefox-Profil zu sichern. Daher habe ich die FF-Einstellungen in Windows und Ubuntu, das ich auf einer anderen Partition installiert habe, mit dem Backup zurückgesetzt. Unter Ubuntu hatte ich noch einen Webzugang und ein Hilfsprogramm. Hat ziemlich gut funktioniert, auch wenn auf dem langsamen Teil der HD hängen geblieben ist.

Verluste: einige "Give-a-way-of-day" -Programme, die ich nicht erneut registrieren kann, einige Programmeinstellungen.

1
Mokubai

SameFiles Assistant 3.1 könnte funktionieren:

Same Files Assistant ist das Dienstprogramm zum Verwalten von festen Links.

Speziell eine Funktion hat:

  • Sie können feste Links jederzeit auf die regulären Dateien zurücksetzen.
0
harrymc

Versuchen Sie es mit Hard Link Magic, es könnte helfen.

Auch Junction von Microsoft kann rekursiv Verzeichnisse durchsuchen und Knotenpunkte auflisten / löschen.

Erstellen Sie einfach einen Systemwiederherstellungspunkt, bevor Sie diese Manipulationen durchführen.

Hardlinks sind keine Knotenpunkte. Dieses Programm scheint auch mit Knotenpunkten zu arbeiten (es heißt eigentlich Junction Link Magic). Bender vor 14 Jahren 0
@ Bender, du meinst, dass es nach der Installation "Junction Link Magic" heißt? (Alle Downloads scheinen sich auf "Hard Link Magic" zu beziehen.) Arjan vor 14 Jahren 0
0
Peter John Acklam

Ich habe ein Perl-Skript geschrieben, das alle regulären Dateien identifiziert, die feste Verknüpfungen zu denselben Daten sind. Das Skript funktioniert gut unter UNIX und Cygwin . Ich habe es nicht mit Strawberry Perl oder einem anderen Windows-Port von Perl getestet, aber ich dachte, ich würde es trotzdem teilen. Unter Windows (Cygwin) würde ich ein Terminal öffnen und machen ./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

Bei Unix verbinden feste Links zu einer Datei dieselbe "Inode-Nummer". Die Funktion "stat" gibt Dateieigenschaften wie Größe, Modus, Änderungsdatum, Änderungsdatum, Inode-Nummer, ... zurück, gibt jedoch die Inode-Nummer "0" für eine beliebige Datei in Windows zurück. Verwenden Sie perl Win32 :: IdentifyFile (CPAN), um eine Lokalisierung der Dateifestplatte zu erhalten. Hard Links "Links" auf die gleiche Festplatte "Lokalisierung".