Πολλές φορές είναι χρήσιμη η δημιουργία ενός image από κάποιον σκληρό μας δίσκο. Μπορεί πχ να έχουμε ένα image του συστήματος και να το εγκαταστήσουμε εύκολα σε πολλά PC, να πάρουμε κάποιο backup ολόκληρου του σκληρού ή -όπως συνέβη στην δική μου περίπτωση- να χρειαστεί να φτιάξουμε ένα image ενός σκληρού για να το χρησιμοποιήσουμε σε κάποιο πρόγραμμα (εγώ ήθελα να βρω κάποια διεγραμένα αρχεία μου και το foremost που είναι από τα καλύτερα προγράμματα στο είδος, διαβάζει image files και ψάχνει εκεί για διάφορα αρχεία).
Η διαδικασία είναι τόσο απλή που εμένα... με μπέρδεψε

Για την δημιουργία image η εντολή συντάσσεται ως εξής:
- Κώδικας: Επιλογή όλων
sudo dd if=/dev/DISK of=/IMAGE_FILE.dd
Στο όρισμα του "if=" βάζουμε το id του δίσκου / partition από τον οποίο θέλουμε να φτιάξουμε το image. To id μπορούμε να το βρούμε είτε από τον partition editor, είτε με την εντολή "sudo fdisk -l" (χωρίς εισαγωγικά εννοείται!) είτε με όποιον άλλο τρόπο μας βολεύει. Για παράδειγμα, στον Partition Editor επιλέγουμε τον δίσκο που μας ενδιαφέρει στην πάνω δεξιά λίστα και βλέπουμε αυτομάτως το id του. Στην δικιά μου περίπτωση με ενδιέφερε ο δίσκος /dev/sdb1 |(για την ακρίβεια το partition sdb1)

Από τερματικό η εντολή "sudo fdisk -l" επιστρέφει αποτέλεσμα σαν αυτό, με όλους τους δίσκους του συστήματος:
- Κώδικας: Επιλογή όλων
vasilis@vasilis-desktop:~$ sudo fdisk -l
[sudo] password for vasilis:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003fead
Device Boot Start End Blocks Id System
/dev/sda1 1 60801 488384001 83 Linux
Disk /dev/sdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x9a8e9a8e
Device Boot Start End Blocks Id System
/dev/sdb1 1 4865 39078081 7 HPFS/NTFS
Disk /dev/sdc: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xf66f2795
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 9327 74919096 83 Linux
/dev/sdc2 9328 9729 3229065 5 Extended
/dev/sdc5 9328 9729 3229033+ 82 Linux swap / Solaris
Disk /dev/sdd: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x238ab7ec
Device Boot Start End Blocks Id System
/dev/sdd1 1 30401 244196001 83 Linux
Disk /dev/sde: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe8d91010
Device Boot Start End Blocks Id System
/dev/sde1 1 60801 488384001 7 HPFS/NTFS
vasilis@vasilis-desktop:~$
Και πάλι, επιλέγουμε αυτόν που μας ενδιαφέρει και σημειώνουμε το id του.
Το όρισμα μετά το "of=" είναι η τοποθεσία που θα σωθεί το image. Εννοείται ότι θα πρέπει να δώσετε μια τοποθεσία σε κάποιον άλλο σκληρό από αυτόν του οποίου δημιουργείτε το image, έτσι!


Η δημιουργία ενδέχεται να διαρκέσει αρκετή ώρα, ανάλογα με το μέγεθος του δίσκου, άρα και του παραγόμενου image.
Με την εντολή dd μπορείτε επίσης απλά να αντιγράψετε όλα τα "φυσικά" περιεχόμενα ενός δίσκου σε έναν άλλο δίσκο / συσκευή αποθήκευσης. Απλά στο of= ορίζετε αντί για αρχείο ένα νέο id δίσκου, πχ /dev/hd1 κλπ! Το "καλό" είναι ότι η εντολή dd δεν ψάχνει για αρχεία κλπ.... Απλά αντιγράφει όποιο byte υπάρχει στον έναν δίσκο σε κάποιον άλλο!! Έτσι, μπορείτε να αντιγράψετε όλη την φυσική επιφάνεια ενός αποθηκευτικού μέσου...
Για να επαναφέρετε σε κάποιον δίσκο σας ένα image που έχετε δημιουργήσει, απλά αντιστρέφετε τα ορίσματα στα if και of. Παράδειγμα:
- Δημιουργώ image από τον δίσκο sdb1 στην τοποθεσία /media/bkup/image.dd:
- Κώδικας: Επιλογή όλων
sudo dd if=/dev/sdb1 of=/media/bkup/image.dd
- Επαναφέρω το image.dd στον δίσκο sdb1:
- Κώδικας: Επιλογή όλων
sudo dd if=/media/bkup/image.dd of=/dev/sdb1
Τόσο απλά


Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα