Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

 

Έστω ότι έχουμε έναν σκληρό δίσκο στον οποίο "πρέπει" να γίνει πλήρης διαγραφή. Δύο λύσεις που βρήκα (ως επαρκείς) είναι οι εντολές (core utilities) dd και scrub:

# dd if=/dev/urandom of=/dev/sdX bs=10MB

και

# scrub /dev/sdX

αντιστοίχως. Θα ήθελα να ρωτήσω τα εξής:

1. Για την πρώτη (dd) θα προτείνατε άλλη τιμή στο bs;

2. Για την πρώτη (dd) χρειάζεται και άλλος διακόπτης;

3. Για την δεύτερη (scrub) απαιτείται κάτι επιπλέον;

4. Εξ ιδίας πείρας (αλλά και από αναφορές τρίτων) η συμπεριφορά της dd είναι περίπου γραμμική: π.χ. αν για ~250GB χρειάζονται ~8 ώρες για ~500GB θα χρειαστούν ~16 ώρες. Υπάρχει κάποιος που να ξέρει κάτι αντίστοιχο για την scrub; 

 

Eυχαριστώ.

Δημοσ.

Καλησπέρα.

 

Έστω ότι έχουμε έναν σκληρό δίσκο στον οποίο "πρέπει" να γίνει πλήρης διαγραφή. Δύο λύσεις που βρήκα (ως επαρκείς) είναι οι εντολές (core utilities) dd και scrub:

# dd if=/dev/urandom of=/dev/sdX bs=10MB
και

# scrub /dev/sdX
αντιστοίχως. Θα ήθελα να ρωτήσω τα εξής:

1. Για την πρώτη (dd) θα προτείνατε άλλη τιμή στο bs;

2. Για την πρώτη (dd) χρειάζεται και άλλος διακόπτης;

3. Για την δεύτερη (scrub) απαιτείται κάτι επιπλέον;

4. Εξ ιδίας πείρας (αλλά και από αναφορές τρίτων) η συμπεριφορά της dd είναι περίπου γραμμική: π.χ. αν για ~250GB χρειάζονται ~8 ώρες για ~500GB θα χρειαστούν ~16 ώρες. Υπάρχει κάποιος που να ξέρει κάτι αντίστοιχο για την scrub; 

 

Eυχαριστώ.

 

Δεν θυμάμαι πως δουλεύει το scrub αλλά συνήθως τέτοια utils γράφουν 3-4 φορές κάποια patterns με αποτέλεσμα πολύ χρονοβόρα διαδικασία χωρίς παραπάνω κέρδος. Αν δεν μιλάμε για SSD αλλά για ένα απλό δίσκο και με δεδομένο ότι δεν προσπαθείς να αποφύγεις την nsa, ένα απλό γράψιμο με την dd ακόμη και μηδενικών είναι υπεραρκετό.

 

Έτσι για γράψιμο μηδενικών μπορείς να χρησιμοποιήσεις

dd if=/dev/zero of=/dev/sdX bs=10M
Αν θέλεις να γράψεις σκουπίδια τότε η 1η εντολή που έγραψες είναι καλή. Ένα άλλο που μπορείς να κάνεις για να κερδίσεις σε ταχύτητα είναι να γράψεις 100MB από την urandom σε ένα αρχείο και μετά με χρήση της παραμέτρου seek της dd και μιας ανακύκλωσης να γράψεις το αρχείο στο δίσκο. Έτσι, τα σκουπίδια θα είναι μεν τα ίδια κάθε 100MB αλλά δεν σε πειράζει.
  • Like 4
Δημοσ.

Aν θέλεις να γράψεις σκουπίδια τότε η 1η εντολή που έγραψες είναι καλή. Ένα άλλο που μπορείς να κάνεις για να κερδίσεις σε ταχύτητα είναι να γράψεις 100MB από την urandom σε ένα αρχείο και μετά με χρήση της παραμέτρου seek της dd και μιας ανακύκλωσης να γράψεις το αρχείο στο δίσκο. Έτσι, τα σκουπίδια θα είναι μεν τα ίδια κάθε 100MB αλλά δεν σε πειράζει.

 

Ευχαριστώ πολύ για την απάντησή σου. Ήλπιζα η scrub να πάρει λιγότερο χρόνο -κρίμα που διαψεύδομαι. Όσον αφορά αυτό που γράφεις, θα σου ήταν εύκολο να μου πεις αναλυτικώς τον τρόπο; (Υποθέτω μιλάς για κάποιο batch αρχείο). 

 

Πάντως η dd, όπως την έγραψα, για 250GB ήθελε περί τις 8 ώρες.

Δημοσ.

αυτό που λέει είναι

φτιάχνεις ένα αρχείο με σκουπίδια 100mb

dd if=/dev/urandom of=/tmp/shitfile bs=10M count=10

και μετά χρησιμοποιείς, για να μην σε καθυστερεί το random, την dd μέσα σε ένα loop που κάθε φορά θα κάνει seek 100ΜB

 

 

αυτό δε θα δούλευε με το ανάλογο count?

dd if=/tmp/shitfile of=/dev/sdX bs=10M count=...
Δημοσ.

 

αυτό που λέει είναι

φτιάχνεις ένα αρχείο με σκουπίδια 100mb

dd if=/dev/urandom of=/tmp/shitfile bs=10M count=10

και μετά χρησιμοποιείς, για να μην σε καθυστερεί το random, την dd μέσα σε ένα loop που κάθε φορά θα κάνει seek 100ΜB

 

 

αυτό δε θα δούλευε με το ανάλογο count?

dd if=/tmp/shitfile of=/dev/sdX bs=10M count=...

Δεν είμαι σίγουρος ότι έχω "πιάσει" το δεύτερο σκέλος της διαδικασίας.

Δημοσ.

ούτε εγώ είμαι σίγουρος οτι το έχω γράψει σωστά οπότε περίμενε τον ημίθεο

η ουσία είναι οτι γράφεις συνέχεια τα ίδια 100mb μέχρι να γεμίσει ο δίσκος

Δημοσ.

ούτε εγώ είμαι σίγουρος οτι το έχω γράψει σωστά οπότε περίμενε τον ημίθεο

η ουσία είναι οτι γράφεις συνέχεια τα ίδια 100mb μέχρι να γεμίσει ο δίσκος

Το γενικό σενάριο το κατάλαβα... Οι λεπτομέρειες μου λείπουν :P

 

Eπίσης, σκέφτομαι ότι αυτό που περιγράφει ο imitheos ίσως δεν διαφέρει (ως αποτέλεσμα) και πολύ από αυτό:

# shred -n 1 -v /dev/sdΧ
Δημοσ.

Ευχαριστώ πολύ για την απάντησή σου. Ήλπιζα η scrub να πάρει λιγότερο χρόνο -κρίμα που διαψεύδομαι. Όσον αφορά αυτό που γράφεις, θα σου ήταν εύκολο να μου πεις αναλυτικώς τον τρόπο; (Υποθέτω μιλάς για κάποιο batch αρχείο). 

 

Πάντως η dd, όπως την έγραψα, για 250GB ήθελε περί τις 8 ώρες.

 

Η urandom χρειάζεται εντροπία οπότε λογικό να αργεί για αυτό πρότεινα το άλλο σενάριο. Εκτός ότι δεν τρως πολύτιμη εντροπία και δεν θέλεις 100 ώρες δεν χάνεις και τίποτα ιδιαίτερο με το να επαναλαμβάνονται τα "τυχαία" σκουπίδια κάθε 100MB.

 

αυτό που λέει είναι

φτιάχνεις ένα αρχείο με σκουπίδια 100mb

dd if=/dev/urandom of=/tmp/shitfile bs=10M count=10
και μετά χρησιμοποιείς, για να μην σε καθυστερεί το random, την dd μέσα σε ένα loop που κάθε φορά θα κάνει seek 100ΜB

 

 

αυτό δε θα δούλευε με το ανάλογο count?

dd if=/tmp/shitfile of=/dev/sdX bs=10M count=...

 

 

Δεν είμαι σίγουρος ότι έχω "πιάσει" το δεύτερο σκέλος της διαδικασίας.

 

 

ούτε εγώ είμαι σίγουρος οτι το έχω γράψει σωστά οπότε περίμενε τον ημίθεο

η ουσία είναι οτι γράφεις συνέχεια τα ίδια 100mb μέχρι να γεμίσει ο δίσκος

 

Όπως σωστά είπε ο warlock, γράφεις συνέχεια τα ίδια τυχαία δεδομένα για να γίνει πιο γρήγορα η δουλειά. Το πρόβλημα είναι ότι η dd σταματάει όταν τελειώσει το αρχείο εισόδου οπότε αν βάλεις ως είσοδο ένα αρχείο 100MB θα σταματήσει αφού γράψει 100MB άσχετα αν εσύ του πεις με το συνδυασμό bs/count να γράψει 5GB. Για αυτό το λόγο ανέφερα την ανακύκλωση. 

 

Μια εκδοχή (δεν την δοκίμασα οπότε μπορεί να έχει συντακτικά λάθη) θα μπορούσε να είναι η εξής:

 

CCC=0
while true; do
  dd if=/tmp/τάδε of=/dev/sdX bs=100M seek=$CCC
  # Αν τέλειωσε ο δίσκος και απέτυχε η dd, τότε σταμάτα
  if [ $? != 0 ]; then
    break
  fi
  let CCC++
done

Το γενικό σενάριο το κατάλαβα... Οι λεπτομέρειες μου λείπουν :P

 

Eπίσης, σκέφτομαι ότι αυτό που περιγράφει ο imitheos ίσως δεν διαφέρει (ως αποτέλεσμα) και πολύ από αυτό:

# shred -n 1 -v /dev/sdΧ

 

Υποθέτω πως το -n1 γράφει μόνο ένα pattern οπότε θα είναι το ίδιο γρήγορο με την dd που έδωσες. Πολύ πιθανώς πάντως το shred να κάνει εύκολα και αυτό που περιγράφω ή να υπάρχει κάποιος ακόμη πιο εύκολος/γρήγορος τρόπος.

 

Αν πάντως σε ενδιαφέρει απλά να πουλήσεις το δίσκο ή να τον δώσεις πίσω για rma, τότε και απλά μηδενικά να γράψεις είσαι οκ.

Δημοσ.

 

Η urandom χρειάζεται εντροπία οπότε λογικό να αργεί για αυτό πρότεινα το άλλο σενάριο. Εκτός ότι δεν τρως πολύτιμη εντροπία και δεν θέλεις 100 ώρες δεν χάνεις και τίποτα ιδιαίτερο με το να επαναλαμβάνονται τα "τυχαία" σκουπίδια κάθε 100MB.

 

 

 

 

 

 

Όπως σωστά είπε ο warlock, γράφεις συνέχεια τα ίδια τυχαία δεδομένα για να γίνει πιο γρήγορα η δουλειά. Το πρόβλημα είναι ότι η dd σταματάει όταν τελειώσει το αρχείο εισόδου οπότε αν βάλεις ως είσοδο ένα αρχείο 100MB θα σταματήσει αφού γράψει 100MB άσχετα αν εσύ του πεις με το συνδυασμό bs/count να γράψει 5GB. Για αυτό το λόγο ανέφερα την ανακύκλωση. 

 

Μια εκδοχή (δεν την δοκίμασα οπότε μπορεί να έχει συντακτικά λάθη) θα μπορούσε να είναι η εξής:

 

CCC=0
while true; do
  dd if=/tmp/τάδε of=/dev/sdX bs=100M seek=$CCC
  # Αν τέλειωσε ο δίσκος και απέτυχε η dd, τότε σταμάτα
  if [ $? != 0 ]; then
    break
  fi
  let CCC++
done
Υποθέτω πως το -n1 γράφει μόνο ένα pattern οπότε θα είναι το ίδιο γρήγορο με την dd που έδωσες. Πολύ πιθανώς πάντως το shred να κάνει εύκολα και αυτό που περιγράφω ή να υπάρχει κάποιος ακόμη πιο εύκολος/γρήγορος τρόπος.

 

Αν πάντως σε ενδιαφέρει απλά να πουλήσεις το δίσκο ή να τον δώσεις πίσω για rma, τότε και απλά μηδενικά να γράψεις είσαι οκ.

 

Eυχαριστώ!

 

Να σε ρωτήσω...Επειδή όλο αυτό θα γίνει ως εξής: θα εκκινήσω από ένα live dvd (π.χ. GParted) για να κάνω όσα είπες στον εσωτερικό σκληρό δίσκο. Το αρχείο που θα χρειαστεί, πού θα γίνει εγγραφή; Στον σκληρό; 

Δημοσ.

Eυχαριστώ!

 

Να σε ρωτήσω...Επειδή όλο αυτό θα γίνει ως εξής: θα εκκινήσω από ένα live dvd (π.χ. GParted) για να κάνω όσα είπες στον εσωτερικό σκληρό δίσκο. Το αρχείο που θα χρειαστεί, πού θα γίνει εγγραφή; Στον σκληρό;

Είθισται το αρχείο να βρίσκεται εκτός του δίσκου που θέλεις να σβήσεις και αυτός να είναι unmounted.

 

Edit: Από ό,τι βλέπω, το shred υποστηρίζει την επιλογή --random-source=FILE οπότε μπορείς και κατευθείαν με την shred να κάνεις το ίδιο χωρίς να μπλέξεις με αυτά που έγραψα.

 

Οπότε αυτό που προτείνω είναι 1) Χρήση της dd για γράψιμο μηδενικών που είναι εύκολη διαδικασία και θα τελειώσει πολύ γρήγορα, 2) Χρήση του shred με -n1 για να μη μπλέξεις άδικα με αυτά που περιέγραψα πριν.

Δημοσ.

Είθισται το αρχείο να βρίσκεται εκτός του δίσκου που θέλεις να σβήσεις και αυτός να είναι unmounted.

 

Edit: Από ό,τι βλέπω, το shred υποστηρίζει την επιλογή --random-source=FILE οπότε μπορείς και κατευθείαν με την shred να κάνεις το ίδιο χωρίς να μπλέξεις με αυτά που έγραψα.

 

Οπότε αυτό που προτείνω είναι 1) Χρήση της dd για γράψιμο μηδενικών που είναι εύκολη διαδικασία και θα τελειώσει πολύ γρήγορα, 2) Χρήση του shred με -n1 για να μη μπλέξεις άδικα με αυτά που περιέγραψα πριν.

Ιmitheos, σε ευχαριστώ πάρα πολύ για την βοήθεια και τον χρόνο σου.

Είθισται το αρχείο να βρίσκεται εκτός του δίσκου που θέλεις να σβήσεις και αυτός να είναι unmounted.

 

Edit: Από ό,τι βλέπω, το shred υποστηρίζει την επιλογή --random-source=FILE οπότε μπορείς και κατευθείαν με την shred να κάνεις το ίδιο χωρίς να μπλέξεις με αυτά που έγραψα.

 

Οπότε αυτό που προτείνω είναι 1) Χρήση της dd για γράψιμο μηδενικών που είναι εύκολη διαδικασία και θα τελειώσει πολύ γρήγορα, 2) Χρήση του shred με -n1 για να μη μπλέξεις άδικα με αυτά που περιέγραψα πριν.

Απλή επιβεβαίωση. Αυτό που χρειάζομαι λοιπόν είναι:

# umount /dev/sdX
# dd if=/dev/zero of=/dev/sdX bs=10MB

σωστά;

Δημοσ.

Ιmitheos, σε ευχαριστώ πάρα πολύ για την βοήθεια και τον χρόνο σου.

 

Απλή επιβεβαίωση. Αυτό που χρειάζομαι λοιπόν είναι:

# umount /dev/sdX
# dd if=/dev/zero of=/dev/sdX bs=10MB
σωστά;

 

Ναι αρκεί αυτό. Μόνο πρόσεχε το sdX να είναι το σωστό.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...