Come si possono annullare molti collegamenti fisici?


0

Ho usato stupidamente Dupemerge per cambiare tutti i miei file duplicati in collegamenti reali . Ora Windows XP non funziona correttamente, ad esempio Explorer non si avvia.

Esiste un programma di utilità che attraversa il filesystem alla ricerca di collegamenti reali, copia il file, elimina il collegamento originale e rinomina la copia, mantenendo gli attributi e il nome originali?


1
Non so come trovarli, ma suppongo che dovresti solo annullarli per i collegamenti fisici nelle cartelle di Windows? Nessun errore nel registro eventi, per indicare perché Explorer non si avvia?
Arjan,

Oops, forse non puoi davvero annullarlo, specialmente se per qualche motivo la data del file è importante: Dupemerge crea un hashsum crittografico per ogni file che si trova sotto i percorsi indicati e confronta questi hash tra loro per trovare i duplicati. Non esiste un confronto tra le date dei file coinvolto nel rilevamento dei duplicati, che potrebbe causare problemi. - schinagl.priv.at/nt/dupemerge/dupemerge.html (Le probabilità di trovare lo stesso hash per file diversi sono molto basse, ma non esattamente zero ...)
Arjan

2
Come ha scritto @Bender: scopri se i collegamenti fisici sono la causa dei problemi A meno che la data del file non sia importante, o se qualcos'altro è andato storto durante la creazione dei collegamenti fisici, non vedo come i collegamenti fisici renderebbero Windows Explorer (o qualsiasi altra cosa del resto) falliscono.
Arjan,

> Ho usato stupidamente Dupemerge per cambiare tutti i miei file duplicati in collegamenti reali. Ora Windows XP non funziona correttamente, ad esempio Explorer non si avvia. Lo hai fatto anche per i file Windows? Attenzione a tutti quelli che arrivano su questa pagina: non farlo per i file di sistema (es. File in \Windows\*). Anche se riesce a funzionare per un po ', è sconsigliabile in quanto potrebbe interrompere gli aggiornamenti e così via.
Synetech,

Risposte:


2

SameFiles Assistant 3.1 potrebbe funzionare:

Same Files Assistant è l'utilità di gestione dei collegamenti reali.

In particolare una caratteristica ha:

  • Puoi ripristinare i collegamenti reali ai file normali in qualsiasi momento.

1

Dubito che ci sia un'utilità per annullare ciò che è stato fatto. È possibile cercare nuovamente i duplicati, controllare il numero e gli attributi dei collegamenti (o forse Dupemerge può aiutare a identificare i collegamenti reali agli stessi file) ed eseguire la copia a mano. Questo può almeno aiutarti a scoprire se i collegamenti fisici sono la causa dei problemi.


1
  • Dal momento che li hai convertiti in collegamenti reali , potresti essere fortunato e potrebbero comunque apparire come duplicati usando qualcosa come DoubleKiller .

  • Ad ogni modo, dubito che ci sia un'utilità per questo compito esatto .

Se tutto il resto fallisce, raccomando una reinstallazione ...


1

per correggere il sistema operativo utilizzare il controllo file di sistema:

inserire il CD di installazione di Windows XP

premi CTRL + ALT + CANC per visualizzare il task manager, vai su File> Esegui (nuova attività) e digita sfc / scannow e fai clic su OK.

nota: questo ripristinerà solo i file di sistema, ma ti farà ripartire. come per gli altri software interessati, dovrai reinstallare o riparare l'installazione dove necessario.


sfc / scannow con le riparazioni può davvero rovinare un'installazione di Windows. Tenterà di tornare allo stato del CD, indipendentemente da Windows Update o service pack applicati da allora. L'OP dovrà guadare un sacco di dialoghi per scoprire di quali ha davvero bisogno e potrebbe ancora finire con un sistema non avviabile.
harrymc,

grazie per avermelo ricordato, quell'esploratore non si avvia. e se mi stai chiedendo, questa installazione di Windows è già completamente rovinata. ecco perché le persone eseguono backup dal proprio sistema prima di eseguire acrobazie del genere. :)

Giusto. Do una grande possibilità per una reinstallazione totale se non può tornare a un punto di ripristino.
harrymc,

seriamente, quando avrai capito tutto (e potrebbero esserci ancora alcune sorprese in serbo per te), avrai installato Windows su una dozzina o più macchine.

1

Aggiornare.

Cose che non hanno funzionato:

  1. Non ho trovato nessuno strumento utile per annullare i collegamenti fissi (ad esempio, i collegamenti ipertestuali, copiare il file, eliminare il collegamento fisico, rinominare la copia con il nome del collegamento).
  2. Ho eseguito chkdsk nella console di ripristino (dopo aver decompresso tutti i file)
  3. Il mio disco di sistema Lenovo non mi consente di reinstallare Windows XP Home e il programma Lenovo Rescue and Recovery non reinstalla Windows
  4. copiare (in una seconda partizione) e viceversa non ha aiutato

Cosa ho fatto:

  1. copiato il mio C: drive in un'altra partizione in una directory "\ c-drive-2009Nov4 usando Richcopy

  2. A maggio ho installato un nuovo disco più grande, creando una partizione sul nuovo disco uguale alla mia vecchia partizione C :. Quindi ho copiato, usando un supporto USB, dal mio vecchio c: alla nuova partizione C: sul nuovo disco. Quindi ho spostato i dati e li ho installati su una nuova grande partizione dati, lasciando una partizione di sistema c: 70GB sull'anello esterno più veloce dell'HD. Quindi l'ho fatto di nuovo, usando un avvio live linux GParted per copiare la mia partizione da maggio nella mia partizione cestinata.

  3. Quindi ho usato la copia che ho fatto del mio attuale C-drive per riportare tutti i file di cui avevo bisogno, ad esempio, i file BAT aggiornati e reinstallato tutti i programmi più recenti.

  4. Stavo usando FEBE per eseguire il backup del mio profilo Firefox, quindi ho usato il backup per ripristinare le mie impostazioni FF, in Windows e in Ubuntu, che ho installato su un'altra partizione. Ubuntu è come avevo ancora accesso al web e qualche utilità. Ha funzionato abbastanza bene, anche se bloccato sulla parte lenta dell'HD.

Perdite: alcuni programmi "giveawayoftheday" che non posso registrare nuovamente, alcune impostazioni del programma.


0

Prova Hard Link Magic , potrebbe essere d'aiuto.

Anche Junction di Microsoft ha la capacità di attraversare ricorsivamente directory e elencare / eliminare i punti di giunzione.

Fai solo attenzione a creare un punto di ripristino del sistema prima di eseguire queste manipolazioni.


1
I collegamenti fissi non sono punti di giunzione. Questo programma sembra funzionare anche con i punti di giunzione (in realtà si chiama Junction Link Magic).
Bender,

@Bender, vuoi dire che dopo l'installazione si chiama "Junction Link Magic"? (Tutti i download sembrano riferirsi a "Hard Link Magic".)
Arjan

0

Ho scritto uno script Perl che identifica tutti i file regolari che sono collegamenti reali agli stessi dati. Lo script funziona bene su UNIX e Cygwin . Non l'ho testato con Strawberry Perl o qualsiasi altra porta Windows di Perl, ma ho pensato di condividerlo comunque. Su Windows (Cygwin) vorrei aprire un terminale e farlo ./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

In Unix, i collegamenti reali a un file collegano lo stesso "numero di inode". La funzione "stat" restituisce proprietà del file come dimensione, modalità, data di modifica, data di modifica, numero di inode, ..., ma restituisce il numero di inode "0" per qualsiasi file in Windows. Utilizzare perl Win32 :: IdentifyFile (CPAN) per ottenere una "localizzazione" del disco file. Hard link "link" allo stesso disco "localizzazione".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.