linux user group brescia

immagine del castello

Archivio della mailing list

Cambio hard disk

Luca Coianiz luca a coianiz.it
Gio 14 Ago 2003 17:43:44 UTC
On Thu, 14 Aug 2003, andrea gelmini wrote:
>On gio, ago 14, 2003 at 05:11:28 +0200, Luca Coianiz wrote:
>>  Domanda:
>>  cat /dev/hda2 > /dev/hdb2
>>  è equivalente a
>>  dd if=/dev/hda2 of=/dev/hdb2 bs=4k count=0   ?
>non sono equivalenti in quanto cat potrebbe trovarsi nella condizione di
>interpretare delle sequenze di caratteri (quindi alterandole sulla
>destinazione)... banalmente uno puo` pensare allo EOF.

 Infatti è questo che mi aveva incuriosito, solo che non essendo pratico ho
pensato di essere io ad interpretare male: praticamente cat va "meglio" per
file di testo (dato che può operare delle modifiche) mentre dd lavora meglio
sul binario (cioè su tutto dato che il "testo" alla fine lo si può vedere
come un "binario interpretato") ovvero dove non deve esserci alcuna
conversione (a meno di non utilizzare il parametro conv=CONVERSION
ovviamente, e copiando un HD non mi pare il caso ;)).

>dd e` l'unica soluzione applicabile. eventualmente con i dovuti parametri,
>come per ignorare eventuali errori se si volesse migrare un hd con dei
>badblocks (no, non c'e` bisogno di utilizzare il delirante dd_rescue).

 Interessante.

>notasi comunque che count=0 e` errato, nel senso che in questo modo viene
>detto di copiare nessun blocco da 4k.

 Azz... ehm... avevo riportato un esempio da "(p)info dd":

 [...CUT...]

   Use different `dd' invocations to use different block sizes for
skipping and I/O.  For example, the following shell commands copy data
in 512 kB blocks between a disk and a tape, but do not save or restore a
4 kB label at the start of the disk:

     disk=/dev/rdsk/c0t1d0s2
     tape=/dev/rmt/0

     # Copy all but the label from disk to tape.
     (dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape

 [...CUT...]

 devo aver interpretato male le istruzioni:

`count=BLOCKS'
     Copy BLOCKS `ibs'-byte blocks from the input file, instead of
     everything until the end of the file.

 quindi count=0 vuol dire "non copiare nulla" invece che, come avevo capito,
"copia tutto"?

>inoltre non e` necessario specificare la dimensione dei blocchi (che, per
>inciso, non c'entrano nulla con la dimensione dei blocchi del filesystem).
>insomma, quando sopra puo` essere semplicemente scritto cosi`:
>dd if=/dev/hda2 of=/dev/hdb2

 Molto più semplice.

>ad ogni modo, piccola raffinatezza, specificato un bs => a 4kb su macchine
>a 32 bit, o a 8kb su architetture a 64 bit, si puo` tenere un certo
>vantaggio in performance (vantaggio che non cambia all'aumentare della
>dimensione indicata).

 Interessante, in caso i dischi da clonare siano di generose dimensioni.

	Ciao,
		Luca




Maggiori informazioni sulla lista Lug