Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

dump d'une partition --> morceaux < 2GB

5 réponses
Avatar
pehache-tolai
Bonjour,

je veux dumper une partition complète, en découpant le résultat en fichiers
compressés inférieurs à 2Go. Y'a-t'il une "meilleure" commande que celle-ci
:

dd if=/dev/hda1 of=- | gzip -c | split -b 2GB - ddimage.gz

(et donc pour restaurer :
cat ddimage.gz* | gunzip -c | dd if=- of=/dev/hda1
)

Merci,

--
pehache
http://pehache.free.fr/public.html

5 réponses

Avatar
Stephane CHAZELAS
2009-03-30, 19:20(+02), pehache-tolai:
Bonjour,

je veux dumper une partition complète, en découpant le résultat en fichiers
compressés inférieurs à 2Go. Y'a-t'il une "meilleure" commande que celle-ci
:

dd if=/dev/hda1 of=- | gzip -c | split -b 2GB - ddimage.gz

(et donc pour restaurer :
cat ddimage.gz* | gunzip -c | dd if=- of=/dev/hda1
)


[...]

dd < /dev/hda1 conv=sync,noerror | gzip | split -b 2GB - ddimage.gz

Pour restaurer:

gzip -dc ddimage.gz* | dd > /dev/hda1

--
Stéphane
Avatar
pehache-tolai
"Stephane CHAZELAS" a écrit dans le
message de news:

dd < /dev/hda1 conv=sync,noerror | gzip | split -b 2GB - ddimage.gz




A quoi sert le sync, en fait ? Le man dit "pad every input block with NULs
to ibs-size", mais par définition un input block a exactement la taille
ibs-size, non ?

Au fait, est-il utile de forcer le block-size à la taille des secteurs du
disque (bsQ2 en général) ?

Pour restaurer:

gzip -dc ddimage.gz* | dd > /dev/hda1



L'usage des redirections par rapports aux if= of= a-t'elle un avantage ou
bien est-ce juste une question de compacité d'écriture ?

--
pehache
http://pehache.free.fr/public.html
Avatar
talon
pehache-tolai wrote:
"Stephane CHAZELAS" a écrit dans le
message de news:
>
> dd < /dev/hda1 conv=sync,noerror | gzip | split -b 2GB - ddimage.gz
>

A quoi sert le sync, en fait ? Le man dit "pad every input block with NULs
to ibs-size", mais par définition un input block a exactement la taille
ibs-size, non ?

Au fait, est-il utile de forcer le block-size à la taille des secteurs du
disque (bsQ2 en général) ?

> Pour restaurer:
>
> gzip -dc ddimage.gz* | dd > /dev/hda1

L'usage des redirections par rapports aux if= of= a-t'elle un avantage ou
bien est-ce juste une question de compacité d'écriture ?




Je pense que le dd a une utilité pour spécifier des blocksize appropriés
(ou pour faire des conversions). Par exemple dans beaucoup de cas utiliser un
très gros blocksize, par exemple bsk accélère beaucoup l'opération d'entrée
sortie. Utiliser un blocksize de 512 permet d'aller prendre le café
tranquille. Dans l'exemple ci-dessus je ne vois pas à quoi sert le dd, sinon
peut être à avoir deux processus coopératifs, le gzip -d et le dd, ce qui
augmente le nombre de cycles alloués à ton opération.

--

Michel TALON
Avatar
Stephane CHAZELAS
2009-03-30, 21:22(+02), pehache-tolai:
"Stephane CHAZELAS" a écrit dans le
message de news:

dd < /dev/hda1 conv=sync,noerror | gzip | split -b 2GB - ddimage.gz




A quoi sert le sync, en fait ? Le man dit "pad every input block with NULs
to ibs-size", mais par définition un input block a exactement la taille
ibs-size, non ?

Au fait, est-il utile de forcer le block-size à la taille des secteurs du
disque (bsQ2 en général) ?



bsQ2, c'est le default de dd, ca correspond au sector-size.
Mais dd n'est pas l'equivalent de dd bsQ2, car sans bs=,

dd, c'est une interface bas-niveau aux system calls read et
write.

dd < /dev/hda1 fait des read de 512 octets, et des write des
qu'il a accumule 512 octets.

dd bsQ2 fait des read de 512 octets suivi de write de ce qu'il
a lu (ce qui peut etre moins que 512 octets).

dd conv=sync, fait des read de 512 octests, et fait des writes
de 512 octets (avec les octets manquant remplaces par des 0).

conv=noerror et pour continuer (en remplacant par des 0) s'il y
a erreur de lecture.


Pour restaurer:

gzip -dc ddimage.gz* | dd > /dev/hda1



L'usage des redirections par rapports aux if= of= a-t'elle un avantage ou
bien est-ce juste une question de compacité d'écriture ?



Disons que l'usage de if= et of= n'a aucun avantage ici.

Des avantages de < et >:
- si l'ouverture echoue, dd n'est pas lance' et on a des
messages d'erreurs consistants.
- c'est plus court a ecrire.
- ca fait deux options de moins a retenir.

--
Stéphane
Avatar
pehache-tolai
"Stephane CHAZELAS" a écrit dans le
message de news:

bsQ2, c'est le default de dd, ca correspond au sector-size.
Mais dd n'est pas l'equivalent de dd bsQ2, car sans bs=,

dd, c'est une interface bas-niveau aux system calls read et
write.

dd < /dev/hda1 fait des read de 512 octets, et des write des
qu'il a accumule 512 octets.

dd bsQ2 fait des read de 512 octets suivi de write de ce qu'il
a lu (ce qui peut etre moins que 512 octets).

dd conv=sync, fait des read de 512 octests, et fait des writes
de 512 octets (avec les octets manquant remplaces par des 0).

conv=noerror et pour continuer (en remplacant par des 0) s'il y
a erreur de lecture.


Disons que l'usage de if= et of= n'a aucun avantage ici.

Des avantages de < et >:
- si l'ouverture echoue, dd n'est pas lance' et on a des
messages d'erreurs consistants.
- c'est plus court a ecrire.
- ca fait deux options de moins a retenir.



Merci

--
pehache
http://pehache.free.fr/public.html