[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dd + ntfs



Ciao *,

scusate il messaggio lungo, ma raccontando la storia per intero magari
risulta più chiaro il punto dove ho sbagliato.

Avevo un pc con dual boot (per fortuna non io, ma il solito parente che ti
chiede di provare linux, ma non vuole ancora abbandonare windows). I due
sistemi erano installati freschi (win2k + etch), quindi avevo pensato di
fare un'immagine dell'installazione di windows con dd mettendola su un file
all'interno della partizione linux, in modo da ripristinarla al volo al
primo virus. Il primo virus è arrivato dopo 5 giorni di utilizzo di
windows(!), nonostante IE ed OE fossero stati tolti da tutti i menù
possibili ed immaginabili (Firefox e TB erano i client di default) e il
sistema fosse patchato fino all'ultimo fix disponibile. Tristi digressioni
a parte, il comando che avevo usato per creare l'immagine della partizione
windows era il seguente:

# dd if=/dev/hda1 bs=512 | gzip > ./hda1.1st-install.dd.gz

La prima cosa che non capisco è perché il comando mi terminasse sempre con
errore (IO Error) alla fine della partizione. Pensavo che dd riuscisse a
capire la differenza fra una fine del device ed un errore di IO. Avevo
provato quindi a creare l'immagine con 

# dd if=/dev/hda1 bs=512 conv=noerror | gzip > ./hda1.1st-install.dd.gz

ma faceva esattamente la stessa cosa con lo stesso errore. Mi sono
detto: "pazienza, si vede che è così e basta", ed avevo tenuto l'immagine
creata con conv=noerror. Insomma passano i 5 giorni, mio cognato si becca
il virus ed io allegramente immagino di poter ripristinare windows con

# gunzip -c ./hda1.1st-install.dd.gz | dd of=/dev/hda1 bs=512

Giusto? Sbagliato. Dopo il dd w2k fa il boot, arriva fino ad un certo punto
della progress bar (la seconda, quella già in modalità grafica), e poi mi
mostra un bel blue screen of death che dice: "unaccessible boot device" ed
una sbrodolata di altre frasi sostanzialmente inutili. Ok, capisco che ho
sbagliato qualcosa con dd. Ma cosa? Noto che sui manuali di debian il
comando dd per fare i boot floppies riporta anche un conv=sync seguito da
un sync (dd ... conv=sync; sync). Leggo "man dd" ma mi sembra, per quel che
ne capisco, che nel mio caso conv=sync possa essere al meglio inutile, al
peggio dannoso. Mi spiegate per quale motivo serve (se davvero serve)? E
perché serve anche il sync? L'errore alternativo che potrei aver commesso è
che, in fase di creazione dell'immagine, /dev/hda1 era montato (ma era
montato read-only, essendo una partizione NTFS), quindi non penso che
questo possa aver generato un'immagine corrotta. O sbaglio anche qui?



Reply to: