Velocità di copia

E’ normale che copiando da disco esterno USB a disco interno abbia una velocità di appena 980-990 KB/sec?
Dopo aver piallato un disco ed installato Fedora21 sto ricopiando un malloppo di 240 GB e mi dice che ci vorranno 67-68 ore!
Eppure, quando ho copiato da disco interno ad esterno sono bastate poche ore.

EDIT:
La velocità resta costante. Il tempo rimanente è sceso a 61 ore
EDIT2:
Velocità costante. 44 ore rimaste.

Ho fatto una ricerca velocissima…questo bug può essere simile al tuo?
https://bugzilla.redhat.com/show_bug.cgi?id=1155615

Ho visto.
Capisco poco l’inglese, ma sembra molto simile.
Le differenze maggiori sono che si parla di Nautilus, chiavette e di altri file sistem.
Io ho Fedora21 XFC con Thunar ed uso XFS sia su disco esterno che su disco interno.
Riscontro che la velocità di copia resta abbastanza costane fin dall’inizio intorno ai 990 KB/s.
Ora sono rimaste 21 ore per ultimare la copia del contenuto del disco che avevo salvato e spero proprio di non avere anche io i problemi di cattiva copia di cui si parla in quella pagina. Dopo aver atteso pazientemente per quasi 3 giorni che l’operazione finisca sarebbe il colmo non avere nemmeno una copia riuscita bene.

La copia si è conclusa, ma come faccio a sapere se è andato tutto bene?
E, soprattutto, come si fa a capire cos’è successo e come si può risolvere questa lentezza assurda?

In linea teorica la copia è andata bene senza problemi, a meno che non te li abbia segnalati.
Puoi sempre fare un checksum sui tuoi file.

… o un diff (basta aspettare altri 3 giorni :eeek:).

Ma, se hai 6 giorni di tempo :D, e se può servire:

#!/bin/bash #controllo esistenza due parametri if "$1" == "" ] || "$2" == "" ]; then echo "Uso: $0 nome_dir_per_sha1sum nome_file_output"; exit 1; fi; #DIR è il primo parametro DIR=$1; #sostituisco eventuali // con / while "${DIR//\/\//\/}" != "$DIR" ]; do DIR=${DIR//\/\//\/} done; #rimuovo inizio se path relativo if "$DIR" == "." ]; then DIR=""; elif "${DIR:0:2}" == "./" ]; then DIR=${DIR:2} fi #rendo path assoluto if "${DIR:0:1}" != "/" ]; then DIR="`pwd`/$DIR" fi; #aggiungo / finale, se necessario if "${DIR:${#DIR}-1:1}" != "/" ]; then DIR="$DIR/"; fi; #controllo l'esistenza della cartella $DIR if ! -d "$DIR" ]; then echo "$DIR non esiste o non è una cartella"; exit 1; fi; if `expr index "$2" /` != "0" ]; then echo "$2 deve essere il nome del file, non può contenere il carattere /"; exit 1; fi; #il secondo parametro è il nome del file OUTPUT="$DIR$2" #se il file esiste già, esco in errore (non vorrei cancellare per sbaglio dati importanti...) if -e "$OUTPUT" ]; then echo "Il file $OUTPUT esiste"; exit 1; fi; echo "sha1sum files contenuti in $DIR"; echo "#$DIR" >"$OUTPUT"; DIR1="$DIR"; #cerco sottocartelle in $DIR, ordino e attribuisco a SUBDIR, uno alla volta, i nomi find "$DIR" -type d | sort | while read SUBDIR do echo "$SUBDIR"; #cerco files in $SUBDIR (escludendo vuoti e contenuti in sottocartelle), ordino e attribuisco a FILE, uno alla volta, i nomi find "$SUBDIR" -maxdepth 1 -type f -size +0b | sort | while read FILE do if "$FILE" != "$OUTPUT" ]; then #calcolo sha1sum di $FILE SHA1SUM=`sha1sum "$FILE"`; #se sha1sum esce in errore, qualcosa è andato storto; esco in errore if "$?" != "0" ]; then echo "Errore nell'esecuzione di sha1sum $FILE" >>"$OUTPUT"; exit 1; fi; #rimuovo directory base da output di sha1sum e aggiungo al file di output echo "${SHA1SUM/$DIR1/}" >>"$OUTPUT"; fi; done; done;

Salva come sha1sumdir, rendi eseguibile, ed esegui:

$ sha1sumdir nome_dir_per_sha1sum nome_file_output

Crea l’elenco dello sha1sum di tutti i file contenuti in una cartella. Se lo ripeti in entrambi i path, dopo puoi controllare i rispettivi files di output per controllare se coincidono (e, in caso contrario, quali differiscono).

N.B. Rilasciato sotto GPL :)…

Per un controllo dell’integrità del trasferimento dei file ricordo anche lo switch –checksum di rsync. Oltre a un controllo basato sulla dimensione dei file origine e destinazione, aggiunge un controllo checksum a 128 bit per ogni coppia di file di esatta dimensione; se i file differiscono per dimensione è evidente che la mancanza di sincronia viene subito segnalata senza questo oneroso - in termini di risorse di sistema - controllo. Lo switch –delete implicitamente imposta l’origine come “copia master”, cancellando incongruenze sulla parte ricevente. Un preventivo switch –dry-run (e la lettura del manuale) sono raccomandabili.

Per quanto attiene la velocità di trasferimento… ci sono differenze con

# echo "madvise" >/sys/kernel/mm/transparent_hugepage/defrag

o con

# echo "never" >/sys/kernel/mm/transparent_hugepage/defrag

(scollegando e ricollegando il disco esterno per ciascun tentativo)?

Vi ringrazio per la disponibilità, ma su quel PC ho poi deciso di installarci Debian Jessie. Resto con Fedora solo su questo.
Forse è illogico, ma mi sento più sicuro a diversificare. :slight_smile: