Εντολή Linux dd: Τι είναι και πώς να το χρησιμοποιήσετε

ο Linux Η εντολή dd δεν αντιπροσωπεύει επίσημα χωματερή δίσκου, αλλά μπορείτε να το σκεφτείτε έτσι. Και παρά το λιτό όνομα είναι πολύ χρήσιμο Τερματικό Linux πρόγραμμα. Από τη δημιουργία αντιγράφων ασφαλείας έως τη σύνταξη δίσκων USB, το να γνωρίζετε πώς να χρησιμοποιείτε το dd είναι σίγουρα μια καλή προσθήκη στην εργαλειοθήκη Linux σας.

dd: Η εντολή "Disk Dump".

Στον πυρήνα του, το dd δημιουργήθηκε για να αντιγράφει και να μετατρέπει αρχεία από τη μια μορφή στην άλλη. Όχι μορφές όπως Λέξη ή PDF, αλλά πολύ χαμηλού επιπέδου μορφές που περιγράφουν τον τρόπο αναπαράστασης των δεδομένων στο δίσκο. Αυτό ήταν πίσω στις μέρες του mainframe, όταν διαφορετικά συστήματα είχαν τις δικές τους εσωτερικές μορφές και η επίλυση προβλημάτων ανταλλαγής ήταν ένα σημαντικό εγχείρημα.

Η εντολή dd παίρνει bits από ένα αρχείο και τα μετακινεί σε άλλο αρχείο. Αυτό που είναι σημαντικό να κατανοήσουμε είναι ότι το dd απλώς μετακινεί bits από εδώ σε εκεί, ανεξάρτητα από τις μορφές συστήματος αρχείων, τους φακέλους ή τις επεκτάσεις. Αυτό σημαίνει ότι μπορείτε να πετύχετε πολλά πολύ γρήγορα, αλλά σημαίνει επίσης ότι πρέπει να είστε προσεκτικοί όταν το εκτελείτε.

Έχοντας αυτό κατά νου, οι έξυπνοι άνθρωποι στην κοινότητα του Linux μετέφεραν το dd για άλλο σκοπό. Δεδομένου ότι στο Linux "όλα είναι ένα αρχείο", το dd παρέχει έναν εύκολο τρόπο εγγράψτε μια εικόνα ISO σε μια μονάδα flash. Αυτό το κάνει παίρνοντας το αρχείο εικόνας και «αντιγράφοντας» το στο αρχείο που αντιπροσωπεύει τη μονάδα αντίχειρα. Υπάρχουν διάφορα σενάρια όπου αυτό είναι χρήσιμο, αλλά θα επικεντρωθούμε σε δύο εδώ: τη σύνταξη αφαιρούμενων μέσων και τη δημιουργία αντιγράφου ασφαλείας.

Βασική χρήση της εντολής dd

Η βασική χρήση του dd χρησιμοποιεί την ακόλουθη σύνταξη:

dd option1=value1 option2=value2

Υπάρχει μια ολόκληρη σειρά από διαθέσιμες επιλογές για το dd, αλλά εδώ είναι αυτές που πρέπει να γνωρίζετε για να ξεκινήσετε:

  • bs: Το μέγεθος μπλοκ περιγράφει πόσα δεδομένα θα διαβαστούν και θα γραφτούν ταυτόχρονα. Η αντιστάθμιση αυτής της επιλογής είναι μεταξύ της ταχύτητας ολοκλήρωσης της λειτουργίας και του πόσο εύκολη είναι η ανάκτηση σε περίπτωση αποτυχίας. Τα μεγαλύτερα μεγέθη μπλοκ ολοκληρώνονται πιο γρήγορα, αλλά είναι πιο δύσκολο να ανακτηθούν.
  • αν: Το αρχείο εισόδου είναι η πηγή των δεδομένων.
  • του: Το Αρχείο εξόδου είναι ο προορισμός για όλα τα δεδομένα που διαβάζονται από την πηγή εισόδου.
  • κατάσταση: Αυτή είναι μια προαιρετική σημαία, αλλά χρήσιμη που θα σας παρέχει κάποιες πληροφορίες καθώς εκτελείται η εντολή σας. Θα δώσουμε σε αυτό μια τιμή πρόοδος έτσι μας ενημερώνει ότι η εντολή εξακολουθεί να λειτουργεί.

Χρήση dd για εγγραφή αφαιρούμενων μέσων

Σε αυτό το πρώτο παράδειγμα, θα δοκιμάσουμε μια από τις πιο συνηθισμένες περιπτώσεις χρήσης για dd: τη σύνταξη αφαιρούμενων μέσων. Θα το κάνετε αυτό, για παράδειγμα, για να "κάψετε" μια εικόνα εγκατάστασης για Linux σε μια μονάδα USB.

Πολλές εικόνες εγκατάστασης έρχονται ως Αρχείο .ISO, το οποίο προορίζεται να εγγραφεί σε μονάδα CD- ή DVD-ROM, αλλά μπορείτε να εγγράψετε την εικόνα .ISO στη μονάδα USB με μια εντολή όπως η ακόλουθη:

dd bs=4M if=/path/to/imagefilename.img of=/dev/sda status=progress

Στα παραπάνω, παίρνουμε τα περιεχόμενα του imagefilename.img και αντιγράφοντας το 4 MB κάθε φορά σε /dev/sda. Αυτό είναι το αρχείο με το /dev υποσύστημα αρχείων που αντιπροσωπεύει τη μονάδα USB μας. Χρησιμοποιούμε το μέγεθος μπλοκ 4 MB εδώ επειδή οι περισσότερες εικόνες εγκατάστασης είναι μεγάλες και αν χρησιμοποιήσουμε μικρότερη θα χρειαστεί πολύς χρόνος για να ολοκληρωθεί. Σε κάθε περίπτωση, κάτι πάει στραβά, δεν είναι μεγάλο θέμα, απλώς διαμορφώστε ξανά τη μονάδα αντίχειρα και δοκιμάστε το ξανά.

Βεβαιωθείτε ότι έχετε τις σωστές τιμές για την είσοδο και την έξοδο. Όπως αναφέρθηκε, το dd έχει σχεδιαστεί για να μετακινεί bits από τη μια θέση στην άλλη και δεν τον ενδιαφέρει τι μπορεί να αντικαταστήσει στη διαδικασία. Επιπλέον, βεβαιωθείτε ότι δεν υπάρχει τίποτα στη μονάδα προορισμού που χρειάζεστε. Στην καλύτερη περίπτωση, θα είναι πολύ δύσκολο να ανακάμψετε, και στη χειρότερη μπορεί να φύγει οριστικά.

Χρήση dd για δημιουργία αντιγράφων ασφαλείας υπολογιστή Linux

Μπορείτε επίσης να κάνετε την παραπάνω διαδικασία αντίστροφα και να γράψετε τα περιεχόμενα μιας ολόκληρης μονάδας δίσκου σε ένα αρχείο εικόνας. Αυτός είναι ένας πολύ βολικός και λεπτομερής τρόπος δημιουργίας αντιγράφων ασφαλείας του σκληρού σας δίσκου.

Εκτέλεση της εντολής Linux dd

Σε αυτήν την περίπτωση, μπορούμε βασικά να ανταλλάξουμε το "in file" για έναν από τους δίσκους μας και το "out file" για μια εικόνα: Drive.

dd bs=64k if=/dev/nvme0n1 of=/home/aaron/nvmedrivebackup.img status=progress

Εδώ επιλέγουμε ένα από τα διαμερίσματα στον φορητό υπολογιστή μας Μονάδα δίσκου NVMe ως είσοδο και παροχή μιας διαδρομής και ονόματος αρχείου για την εικόνα ως έξοδο.

Χρησιμοποιούμε μικρότερο μέγεθος byte για να αποφύγουμε τυχόν προβλήματα με το αντίγραφο, καθώς αυτή θα είναι η εικόνα ανάκτησής μας σε περίπτωση καταστροφής. Για να επαναφέρετε το δίσκο, απλώς αντιστρέψτε τα αρχεία εισόδου και εξόδου.

Η εντολή dd είναι ένα ισχυρό βοηθητικό πρόγραμμα, επομένως χρησιμοποιήστε το με σύνεση

Η εντολή dd είναι ένα πολύ ισχυρό βοηθητικό πρόγραμμα και με κάποια έξυπνη σκέψη μπορείτε πιθανώς να ανακαλύψετε ακόμη περισσότερες χρήσεις της. Ωστόσο, είναι επίσης μια πολύ απλή εντολή, οπότε βεβαιωθείτε ότι είτε έχετε πάρει τις επιλογές σας από κάποιον έμπειρο είτε έχετε ελέγξει τριπλό ότι δεν ανακατεύετε τα αρχεία εισόδου και εξόδου. Διαφορετικά, μπορεί να καταλήξετε να γράφετε όλα τα κενά bits από κάποια κενά μέσα στον δίσκο του υπολογιστή σας.