English version

CreateEcc & Correct v1.0 Alpha by Claudio Fanelli, Copyright 2004

NESSUNA RESPONSABILITA' VERRA' PRESA PER EVENTUALI DANNI DOVUTI ALL' USO PROPRIO O IMPROPRIO DEI DUE PROGRAMMI

Questa e' una versione Alfa
Per piacere riportate eventuali bug (ma anche successi) all'indirizzo claudio@claudiofanelli.it. Uso:
createecc <input_file>
correct c <input_file> <output_file>

CreateEcc crea un file (di nome <input_file.ecc) con gli error correction codes (ECC) del file
. In questo modo se il file originale viene corrotto in qualche modo,
Correct puo' cercare di ripristinare <input_file> nello stato in cui era quando
CreateEcc e' stato lanciato.

Note

  1. Per adesso creteecc e correct non sono stati testati molto.
  2. Nessuna modifica e' fatta nel file originale da CreateEcc o da Correct,
    in modo che il loro uso non possa creare danni.
  3. Non tutti i tipi di errori possono essere corretti, in particolare se la lunghezza del file originale e' stata cambiata, NESSUN errore puo' essere corretto. Notate inoltre che e' impossibile correggere un numero di bytes piu' grande delle dimensioni del file .ecc
  4. sotto il file-systems fat16 possono esserci problemi con i nomi dei file (fat16 non supporta estensioni multiple o nomi lunghi)
  5. Molti sistemi operativi e dispositiviquando un file e' anche parzialmente danneggiato si rifiutano di leggerlo. Questo e' specialmente vero per i CD-ROMS, in cui alcuni errori possono rendere interi CD . In questa situazione i miei programmi non possono fare molto.
  6. I due programmi sono estrememente lenti

Esempi

Primo esempio

Se volete vedere in azione createecc+correct semplicemente (senza avere un file corrotto), potete fare le seguenti azioni:

  1. Scegliete un file di testo (ad esempio questo file, index_it.html)
  2. lunciate createecc sul file che avete scelto: # createecc index.html
  3. Cambiate qualche lettera del file,SENZA cambiare la lunghezza del file: ad esempio potete cambiare lettere maiuscole in minuscole e viceversa, potete scambiare lettere o potete cambiare lettere con spazi. notate che correct non puo' fare miracoli, percio' il numero totale di errori non deve essere troppo alto
  4. lunciate correct:# correct index.html index.html.original
  5. ora potete controllare se index.html.original e' stato corretto
  6. Secondo esempio

    Se avete un archivio di backup (chiamato ad esempio backup.tgz), e' conveninte creare un file ECC:

    # createecc backup.tgz

    Adesso potete salvare backup.tgz e backup.tgz.ecc su CD-ROM, HD, o dove volete.

    Se backup.tgz e' parzialmente corrotto, potete eseguire:

    # correct backup.tgz backup.corrected.tgz

    e,se gli errori sono gestibili da correct,backup.corrected.tgz conterra' la versione originale e corretta di backup.tgz.

    Notate che e' possibile che backup.tgz sia completamente illegibile, anche se avesse solo pochi errori. Cosi' e' meglio dividerlo in parti piu' piccole con split. Le dimensioni di queste parti dovrebbero essere circa 1/4 o 1/5 delle dimensioni del file .ecc
    Se ad esempio tale file e' di circa 450k, si possono usare delle parti da 100k: #split -b 100k backup.tgz backup.tgz.

    Adesso, se una delle parti e' illegibile, potete ricostruire una copia di backup.tgz copiando uno delle altri parti e usando correct. Ad esempio se backup.tgz.ao e backup.tgz.ba sono illegibili, potete fare cosi': # cp /mnt/cdrom/backup.* /tmp/

    (supponiamo che backup.tgz.ao e backup.tgz.ba non possano essere copiati. Ma notate che backup.tgz.ecc DEVE essere copiato, o non e' possibile fare nulla)

    # cp /mnt/cdrom/backup.aa /tmp/backup.tgz.ao # cp /mnt/cdrom/backup.aa /tmp/backup.tgz.ba # cat /tmp/backup.tgz.* >/tmp/backup.tgz.corrupted # correct backup.tgz.corrupted backup.tgz

    Download

    Qui potete trovare una versione staticamente linkata degli eseguibili per Linux i386 (17 KBytes)