Εάν έχετε κάρτα μνήμης SD, μονάδα flash ή οποιονδήποτε δίσκο αποθήκευσης USB θέλετε προστασία εγγραφής, σε αυτό το άρθρο σας λέμε βήμα βήμα και εύκολα πώς να το κάνετε. Και είναι ότι υπάρχει λίγη προστασία κατά της εγγραφής που επιτρέπουν ορισμένα προγράμματα οδήγησης, γνωστή ως «bit προστασίας εγγραφής» το οποίο, ανάλογα με το αν είναι ενεργό στο 1 ή στο 0, θα επιτρέπει την εγγραφή στη μονάδα ή όχι. Αυτό το bit δεν πρέπει να συγχέεται με το WP των καταχωρητών σημαίας CPU, οι οποίοι εμποδίζουν την αντικατάσταση δημιουργώντας μια διαδικασία fork σε συστήματα παρόμοια με το UNIX, προστατεύοντας έτσι την κύρια μνήμη από μια εγγραφή δεδομένων. Ούτε στην τυπική καρτέλα προστασίας που βρίσκουμε σε ορισμένες κάρτες SD ή μέσα αποθήκευσης. Σε αυτή την περίπτωση αναφερόμαστε σε προστασία που εφαρμόζεται στα δευτερεύοντα μέσα αποθήκευσης.
Ενώ ο ελεγκτής του μέσο αποθήκευσης Η κάρτα μνήμης USB ή SD ή οποιοδήποτε μέσο ανιχνεύει ότι αυτό το bit είναι ενεργό, το πρόγραμμα οδήγησης θα εμποδίσει τον πυρήνα να παραγγείλει μια εντολή εγγραφής και επομένως θα μπορεί να διαβάσει μόνο το περιεχόμενο από αυτό. Είναι σίγουρα πολύ χρήσιμο όταν αποθηκεύουμε δεδομένα που δεν θέλουμε να τροποποιηθούν, αποφεύγοντας κατά λάθος εγγραφή ή διαγραφή. Αλλά αν ένα από αυτά τα προστατευμένα μέσα έχει πέσει στα χέρια μας και αγνοούμε την ύπαρξη αυτού του bit, μπορούμε να χάσουμε ώρες νομίζοντας ότι η μονάδα μας είναι κατεστραμμένη ή ανεβοκατεβαίνοντας την καρτέλα που έχουν ορισμένες μονάδες flash ή κάρτες SD για να τα προστατεύσουν χωρίς αποτέλεσμα (Κλείδωμα/Ξεκλείδωμα)...
Τοποθετήστε ένα μέσο μόνο για ανάγνωση ή εγγράψιμο:
Αν και δεν είναι ακριβώς αυτό που ψάχνουμε με το Bit Προστασίας Εγγραφής, μπορούμε επίσης να βρούμε ότι ένα μέσο έχει τοποθετείται αυτόματα ή χειροκίνητα μόνο για ανάγνωση, έτσι δεν θα έχουμε τη δυνατότητα να γράψουμε σε αυτό. Κάτι που σε ορισμένες περιπτώσεις μπορεί να είναι πολύ ενοχλητικό και να μας εμποδίσει να τροποποιήσουμε ή να αποθηκεύσουμε πράγματα. Λοιπόν, η λύση σε αυτό είναι πολύ απλή.
Για παράδειγμα, εάν στο αρχείο /etc/fstab η συσκευή έχει ρυθμιστεί ώστε να προσαρτάται αυτόματα με την επιλογή ro (μόνο για ανάγνωση) ή αν το έχουμε προσαρτήσει με την εντολή:
sudo mount -o ro /dev/sda /mnt
Σε μια τέτοια περίπτωση μπορούμε να διαβάσουμε μόνο τη συσκευή /dev/sda σε αυτήν την περίπτωση που έχει προσαρτηθεί στο σημείο προσάρτησης /mnt. Μπορούμε λοιπόν να του ξαναγράψουμε:
sudo mount -o remount,rw /dev/sda /mnt
Σε περίπτωση που αυτή η μέθοδος δεν λειτουργεί για εσάς, τότε θα είναι επειδή το κομμάτι για το οποίο μιλήσαμε είναι η υποκριτική, και γι' αυτό θα πρέπει να χρησιμοποιήσουμε το εργαλείο που παρουσιάζουμε παρακάτω.
Τι είναι το hdparm;
Η εντολή Το hdparm είναι ένα εργαλείο χαμηλού επιπέδου που λειτουργεί ως διεπαφή μεταξύ διαφόρων προγραμμάτων οδήγησης πυρήνα Linux και μέσων αποθήκευσης SATA/PATA/SAS μέσω της βιβλιοθήκης libata, καθώς και σε παλιά μέσα IDE. Να θυμάστε ότι πολλοί ελεγκτές μέσων αποθήκευσης USB, συμπεριλαμβανομένων των συσκευών ανάγνωσης καρτών όπως η SD, χρησιμοποιούν επίσης αυτόν τον τύπο ελεγκτή για λειτουργία, επομένως είναι επίσης συμβατός με αυτούς.
Su βασική σύνταξη είναι:
hdparm [επιλογές] [συσκευή]
Και δώρα Πολλές επιλογές με τα οποία μπορείτε να εργαστείτε, αν και δεν σας συνιστώ να τα χρησιμοποιήσετε εάν δεν ξέρετε τι κάνετε, καθώς ως εργαλείο χαμηλού επιπέδου θα μπορούσατε να βλάψετε σοβαρά τη συσκευή σας, για παράδειγμα αν χειριστούμε ορισμένες κρίσιμες επιλογές όπως το -B. Θα σας πω όμως ότι ανάμεσα στις επιλογές του υπάρχουν και κάποιες αρκετά ενδιαφέρουσες όπως:
- Αποκτήστε το ρύθμισης του δίσκου:
sudo hdparm /dev/sdd
- Δείξτε το αναγνώρισης του δίσκου:
sudo hdparm -i /dev/sdd
- Ελέγξτε τους χρόνους ανάγνωσης buffer και cache:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
Να θυμάστε πάντα να χρησιμοποιείτε τα προνόμια, δηλαδή να τα εκτελούμε ως root user ή να τα βάζουμε sudo πριν, αλλιώς δεν θα λειτουργήσουν...
Διαγράψτε και ρυθμίστε το bit προστασίας της μνήμης με το hdparm:
Μόλις γίνει γνωστό το εργαλείο hdparm, μπορούμε να χρησιμοποιήσουμε την επιλογή -r με την οποία μπορούμε να ελέγξουμε την κατάσταση αυτού του bit με μια απλή εντολή. Για να γίνει αυτό, χρειάζεται μόνο να γνωρίζουμε το φυσικό όνομα της συσκευής αποθήκευσης μας. Για παράδειγμα, αν ονομαζόταν /dev/sdd, τότε θα μπορούσαμε να χρησιμοποιήσουμε:
sudo hdparm -r /dev/sdd
Και η τιμή του εν λόγω bit θα εμφανιστεί στην οθόνη. Εάν η τιμή του είναι 1, σημαίνει ότι η λειτουργία είναι ενεργή. μόνο για ανάγνωση ή μόνο για ανάγνωση, ή με άλλα λόγια, η μέθοδος προστασίας εγγραφής είναι ενεργή και δεν θα μπορείτε να γράψετε τίποτα στη μνήμη. Για να το απενεργοποιήσετε ή να τροποποιήσετε το bit, πρέπει απλώς να κάνετε τα εξής:
sudo hdparm -r0 /dev/sdd
Και τώρα αν εκτελέσουμε την πρώτη εντολή και ελέγξουμε την κατάσταση θα δούμε ότι έχει επιστρέψει στο 0, επομένως η λειτουργία μόνο για ανάγνωση είναι απενεργοποιημένη ή απενεργοποιημένη. Σε περίπτωση που θέλετε να το επαναφέρετε στην ενεργή κατάσταση, χρησιμοποιήστε την επιλογή -r1 αντί για -r0 και έτοιμο. Για παράδειγμα:
sudo hdparm -r1 /dev/sdd
Αυτό είναι απλό ενεργοποιήστε ή απενεργοποιήστε αυτό το κομμάτι. Δεν είναι πολύ μυστηριώδες, αλλά για όσους δεν το γνωρίζουν αυτό μπορεί να είναι πονοκέφαλος όταν πρόκειται να μην προστατεύσετε το μέσο αποθήκευσης.
Ελπίζω να σας βοήθησε και τώρα ξέρετε πώς να φτιάξετε μια μονάδα flash με προστασία εγγραφής, μην ξεχνάτε αφήστε το σχόλιό σαςs ...
Γεια σας!
Καταρχήν ευχαριστώ για τις σημειώσεις! Είναι πάντα πολύ χρήσιμα.
Είμαι χρήστης του Debian 9.
Στη συγκεκριμένη περίπτωση, έχω ένα πρόβλημα που δεν μπορώ να λύσω. Έχω ένα "μολυσμένο" στυλό με προστασία εγγραφής που ΔΕΝ μπορώ να αφαιρέσω. Σκέφτομαι ήδη ότι είναι κάτι φυσικό γιατί ειλικρινά έχω δοκιμάσει τα πάντα (ακόμα και μορφοποίηση χαμηλού επιπέδου σε Windows ή δίσκους διάσωσης, τροποποίηση κατατμήσεων κ.λπ.) και τίποτα.
Σκέφτηκα ότι επρόκειτο να το λύσω, όταν ακολουθώντας τα βήματά σας, διαπίστωσα ότι η προστασία εγγραφής της μονάδας flash ήταν "on", αλλά μόλις την άλλαξα σε "off" δεν μπορώ να διαγράψω ή να τροποποιήσω τίποτα σε αυτήν.
Ποιο μπορεί να είναι; Υπάρχει κάποιος άλλος τρόπος να λυθεί αυτό; (Δεν με πειράζει να χάσω τις πληροφορίες που έχω μέσα)
Σας ευχαριστώ εκ των προτέρων για τη βοήθειά σας.
Hernán
Γεια σας καλέ! Δεν ξέρω αν σου είπαν τη λύση ή τελικά την έλυσες, αλλά είμαι στην ίδια περίπτωση με σένα.
Μπορείτε να με συμβουλεύσετε;
Σας ευχαριστώ πολύ.
καλή εξήγηση
Γεια σας Έχω ένα USB που δεν αναγνωρίζει το σύστημα, σας στέλνω τις πληροφορίες αν μπορείτε να με βοηθήσετε, ευχαριστώ
dmesg
[83384.348839] usb 1-1: νέα συσκευή USB υψηλής ταχύτητας αριθμός 8 χρησιμοποιώντας ehci-pci
[83384.506219] usb 1-1: Βρέθηκε νέα συσκευή USB, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: Νέες συμβολοσειρές συσκευών USB: Mfr = 1, Product = 2, SerialNumber = 0
[83384.506228] usb 1-1: Προϊόν: Μαζική αποθήκευση USB
[83384.506231] usb 1-1: Κατασκευαστής: GENERIC
[83384.506848] αποθήκευση usb 1-1: 1.0: Εντοπίστηκε συσκευή μαζικής αποθήκευσης USB
[83384.508235] scsi host5: αποθήκευση usb 1-1: 1.0
[83385.524951] scsi 5:0:0:0: Απευθείας πρόσβαση ΓΕΝΙΚΗ Μαζική αποθήκευση USB 1.00 PQ: 0 ANSI: 2
[83385.556757] sd 5: 0: 0: 0: Συνημμένο scsi γενικό sg3 τύπου 0
[83385.561706] sd 5: 0: 0: 0: [sdc] Συνημμένος αφαιρούμενος δίσκος SCSI
root @ localhost: ~ # fdisk -l
Δίσκος / dev / sda: 698.7 GiB, 750156374016 bytes, τομείς 1465149168
Μονάδες: τομείς 1 * 512 = 512 byte
Μέγεθος τομέα (λογικό / φυσικό): 512 bytes / 4096 byte
Μέγεθος I / O (ελάχιστο / βέλτιστο): bytes 4096 / bytes 4096
Τύπος δίσκου: gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
Τύπος μεγέθους τομέων έναρξης συσκευής
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 49879039 48828416 Σύστημα αρχείων Linux 23.3G
/dev/sda3 49879040 69410815 19531776 Σύστημα αρχείων Linux 9.3G
/dev/sda4 69410816 76107775 6696960 3.2G Linux swap
/dev/sda5 76107776 80013311 3905536 Σύστημα αρχείων Linux 1.9G
/dev/sda6 80013312 1465147391 1385134080 660.5G σύστημα αρχείων Linux
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: δεν μπορεί να ανοίξει / dev / sdc: Δεν βρέθηκε μέσο
root@localhost:~# hdparm /dev/sdc
/ dev / sdc:
SG_IO: δεδομένα κακής αίσθησης/ελλείπουν, sb[]: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
πολλαπλός αριθμός = 0 (απενεργοποίηση)
μόνο για ανάγνωση = 0 (απενεργοποίηση)
readahead = 256 (ενεργό)
root@localhost:~# hdparm -C /dev/sdc
/ dev / sdc:
Η κατάσταση της μονάδας είναι: αναμονή
root@localhost:~# hdparm -I /dev/sdc
/ dev / sdc:
SG_IO: δεδομένα κακής αίσθησης/ελλείπουν, sb[]: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Συσκευή ATA, με μη αφαιρούμενα μέσα
Πρότυπα:
Πιθανότατα χρησιμοποιείται: 1
Διαμόρφωση:
Λογικό μέγιστο ρεύμα
κύλινδροι 0 0
κεφάλια 0 0
τομείς/κομμάτι 0 0
-
Μέγεθος Logical/Physical Sector: 512 byte
μέγεθος συσκευής με M = 1024*1024: 0 MByte
μέγεθος συσκευής με M = 1000*1000: 0 MByte
μέγεθος προσωρινής μνήμης/buffer = άγνωστο
δυνατότητες:
Το IORDY δεν είναι πιθανό
Δεν είναι δυνατή η εκτέλεση δύο λέξεων IO
Μεταφορά πολλαπλών τομέων R / W: δεν υποστηρίζεται
DMA: δεν υποστηρίζεται
ΙΟΡ: pio0
Ευχαριστώ για τη βοήθειά σας, τώρα μπόρεσα να μάθω αν το usb μου ήταν αντίθετο στη γραφή και επαλήθευσα ότι δεν ήταν ενάντια στη γραφή, οπότε αυτή είναι ήδη μια λύση μορφοποίησης χαμηλού επιπέδου, πρέπει να προσθέσω ότι ο ιός έκανε το USB να αποσυνδεθεί σε ένα ή δύο λεπτά και δεν του επέτρεψε να δράσει, δεν άφησε χρόνο, οπότε αφού ήξερα ήδη ποιο όνομα το έβαλα ως "sdc" ως ριζικό χρήστη.
# dd if=/dev/zero |pv| dd of=/dev/sdc bs=1M εδώ περιμένετε λίγο
# dd if=/dev/zero |pv| dd of=/dev/sdc bs=446 count=1 βγάζεις και ξαναβάζεις το usb το δίνεις
# mkfs.vfat -F 32 -n "anaconda" /dev/sdc και έγινε
Parabens! Ένας de voltas dei με αυτό το θέμα πρέπει να δώσει την εξήγησή σας. Moi ευγνώμων.
Εξαιρετική. Σε ευχαριστώ πάρα πολύ.
Επιτέλους κάτι που λειτούργησε πραγματικά για μένα, ευχαριστώ.
Γεια σας, έχω μνήμη ADATA microsd 16 GB κατηγορίας 10
Έκανα τη διαδικασία και φαίνεται να λειτουργεί, αλλά όταν την επανατοποθετήσω και ελέγξω ξανά την κατάσταση, επιστρέφει σε μόνο για ανάγνωση.
Προσπάθησα να το μορφοποιήσω αλλά δεν λειτουργεί. Αυτό που μπορώ να δω είναι τα αρχεία μου.
Υπάρχει κάποιο άλλο εργαλείο ή τρόπος για να λυθεί το πρόβλημα;
Εύκολο και συνοπτικό, τέλεια όλες οι επεξηγήσεις και τα παραδείγματα, μου ήταν πολύ χρήσιμο.
Γεια σας, είμαι χρήστης του Kali Linux, στην πιο πρόσφατη έκδοσή του έχω ήδη δοκιμάσει ένα δισεκατομμύριο τεχνικές (συγγνώμη για την υπερβολή) αλλά καμία δεν λειτουργεί για μένα σε Linux ή Windows
στην περίπτωσή μου, debian, η αφαιρούμενη μνήμη πρέπει να είναι αποπροσαρτημένη….
υπέροχα, σ'ευχαριστώ
Κατάφερα να ανακτήσω πολλά προωθητικά εξαγόμενα με τις οδηγίες σας
Γεια, δουλεύει αλλά ο φάκελος του χρήστη ποικίλλει, καλό θα ήταν να τον διευκρίνιζαν, αλλά έχω ένα σφάλμα, στην εντολή μου δείχνει ότι τον τροποποίησα, αλλά όταν θέλω να βάλω φάκελο ή οτιδήποτε άλλο στο flash drive μου λέει ότι είναι προστασία εγγραφής. Αν μπορείτε να με βοηθήσετε να το λύσω, θα ήταν υπέροχο. Χαιρετίσματα
δέχεται την εντολή και την δείχνει ως απροστάτευτη είναι r=0, αλλά όταν θέλω να μορφοποιήσω μου λέει προστατευμένη. ευχαριστώ
Γειά Καλημέρα. Με αυτό δεν είχα δοκιμάσει αλλά στα Windows έχω κάνει τα πάντα και τίποτα. Η μονάδα flash μου έχει προστασία εγγραφής, ακόμα και με sudo hdparm -r /dev/sdd δίνει τιμή 1, αλλά με sudo hdparm -r0 /dev/sdd δεν μπορούσε να αφαιρέσει ούτε την προστασία εγγραφής. Ευχαριστώ και χαιρετισμούς από τη Βενεζουέλα.
Η έκδοση Linux μου είναι openSUSE Tumbleweed 15.3
Οι πληροφορίες διαβιβάζονται με σαφήνεια και αξιοπιστία. Πέρασα ώρες δοκιμάζοντας έναν ημι-αριθμό λύσεων και αυτή, που παρουσιάζεται εδώ, είναι η οριστική για το πρόβλημα μόνο με τη λειτουργία ανάγνωσης και τον αποκλεισμό εγγραφής.
Εξαιρετική συνεισφορά, όλα έγιναν όπως αναφέρατε... ευχαριστώ
Ευχαριστώ πολύ, πολύ χρήσιμο, αυτό συμβαίνει συνήθως πολύ σε USB, η λύση είναι εύκολη και γρήγορη.
Ευχαριστώ πολύ για τη συνεισφορά.
Στην περίπτωσή μου, το Ubuntu 23.4 δέχεται όλες τις εντολές αλλά δεν ξεκλειδώνει το bit προστασίας.
Οποιεσδήποτε ιδέες;
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r /dev/sdc
[sudo] κωδικός πρόσβασης για Lawrence:
/ dev / sdc:
μόνο για ανάγνωση = 1 (ενεργό)
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc
/ dev / sdc:
ρύθμιση μόνο για ανάγνωση στο 0 (απενεργοποίηση)
μόνο για ανάγνωση = 1 (ενεργό)
lorenzo@lorenzo-B85M-D3H:~$
Ευχαριστίες