τελικά επισκεύσα μ’ αυτή τη διαδικασία
ένα στικάκι 2 γίγα
κι ένα εξωτερικό δίσκο 2 τέρα,
και τα δύο δουλεύουν τώρα μια χαρά,
το ζητούμενο είναι, για πόσον καιρό;
Η συνεχής χρήση τους θα αποδείξει τελικά
το κατά πόσο είναι αποτελεσματικό το κόλπο.
Εξαρταται. Αν αλλαξεις το bs=4M σε bs=6M για παραδειγμα σημαινει οτι το dd θα γραψει τυχαια δεδομενα μεγεθους 6MB στο καθε βημα. Πραγμα που σημαινει λιγοτερα βηματα μεν αλλα δεν σημαινει οτι θα τελειωσει γρηγοροτερα διοτι μπορει να ειναι μικρη η ταχυτητα αναγνωσης και εγγραφης του USB μεσου αποθηκευσης ειτε ειναι εξωτερικος σκληρος/SSD ειτε ειναι USB Thumbdrive.
Αρα η απαντηση στην ερωτηση σου ειναι: Εξαρταται.
Και κατά πάσα πιθανότητα πολύ περισσότερο χρόνο. Και για να μειώσεις τον χρόνο θα πρέπει να μειώσεις το μέγεθος μεταφοράς; Παράλογο;
Αυτά που στέλνεις πηγαίνουν πρώτα σε μια θέση μνήμης στον πυρήνα, μετά ίσως σε μια άλλη μνήμη στον οδηγό, μετά περνάνε σε μια προσωρινή μνήμη στο στικάκι. Και από εκεί αναλαμβάνει ο υπολογιστής που έχει μέσα το στικάκι να τα γράψει σιγά σιγά εκεί που πρέπει. Η ταχύτητα μεταφοράς προς το στικάκι είναι μεγαλύτερη συνήθως από την ταχύτητα εγγραφής στο στικάκι.
Αυτός είναι και ο λόγος που απλά δε βγάζουμε απλά το στικάκι, αλλά το αφαιρούμε σαν συσκευή πρώτα. Να αδειάσουν όλες οι μνήμες. Σε κάτι που μου έτυχε πρόσφατα μετέφερα ένα πραγματικά μεγάλο αρχείο σε ένα άθλιο στικάκι παλιάς γενιάς και η μεταφορά ήθελε πολλά λεπτά, και ενώ έβλεπα τη μεταφορά τελειωμένη, η αποπροσάρτηση έκανε 15 λεπτά λολ.
H εντολή
syncκαθαρίζει τις προσωρινές μνήμες στον υπολογιστή. Όταν ολοκληρωθει έχουν αποσταλέι τα αποτελέσματα, αλλά πάλι μπορεί να θέλει λίγο ακόμα χρόνο.
Αν τα δεδομένα που στέλνεις μπουκώνουν τις μνήμες, αρχικά θα φανεί πως τα πάντα πάνε σφαίρα, αλλά μετά τα πάντα θα σέρνονται.
Για προχωρημένους
Μπορείς να βλέπεις την πρόδο μιας μεταφοράς με την εντολή:
watch "grep -e Dirty: -e Writeback: /proc/meminfo"