Si tens una targeta de memòria SD, pendrive o qualsevol disc d'emmagatzematge USB que vols protegir d'escriptura, En aquest article t'expliquem pas a pas i de forma fàcil com fer-ho. I és que hi ha un bit d'protecció antiescritura que permeten certs controladors, el conegut com «write protection bit»Que segons estigui actiu a 1 oa 0 deixarà escriure a la unitat o no. Cal no confondre aquest bit amb el WP dels registres de bandera de les CPU, que eviten la sobre escriptura creant un procés de bifurcació o fork en els sistemes tipus UNIX, protegint així la memòria principal d'una escriptura de dades. Tampoc a la típica pestanya de protecció que trobem en algunes targetes SD o meodios d'emmagatzematge. En aquest cas ens estem referint a una protecció que s'implementa en els mitjans d'emmagatzematge secundari.
Mentre el controlador de l' mitjà d'emmagatzematge USB o de la targeta de memòria SD, o el mitjà que sigui, detecti que aquest bit està actiu, el controlador impedirà que el nucli ordeni una ordre d'escriptura i per tant només podrà llegir-li el contingut. Certament resulta molt pràctic quan emmagatzemem dades que no volem que siguin modificats, fent que s'evitin escriptures o eliminació per error. Però si ha caigut a les nostres mans un d'aquests mitjans protegits i no coneixem de l'existència d'aquest bit, podrem perdre hores pensant que la nostra unitat està espatllada, o pujant i baixant la pestanyeta que tenen alguns pendrives o targetes SD per protegir-los sense cap resultat (Lock / Unlock) ...
Índex
Muntar un mitjà de solament lectura o amb permís d'escriptura:
Encara que no sigui exactament el que busquem amb el Write Protection Bit, també ens podem trobar amb que un mitjà ha estat muntat de forma automàtica o manual per només lectura, De manera que no tindrem la capacitat d'escriure en ell. Una cosa que en alguns casos pot resultar molt molest i impedir-nos modificar o emmagatzemar coses. Doncs bé, la solució a això és molt senzilla.
Per exemple, si en el fitxer / etc / fstab el dispositiu està configurat perquè es munti de manera automàtica amb l'opció ro (read only) o si ho hem muntat amb la comanda:
sudo mount -o ro /dev/sda /mnt
En aquest cas només podem llegir el dispositiu / dev / sda en aquest cas que ha estat muntat en el punt de muntatge / mnt. Perquè puguem tornar a escriure-hi:
sudo mount -o remount,rw /dev/sda /mnt
En el cas que aquest mètode no et funcioni, Llavors serà perquè està actuant el bit de què hem parlat, i per això haurem de fer servir l'eina que et presentem a continuació.
Què és hdparm?
la comanda hdparm és una eina a baix nivell que actua com una interfície entre diversos controladors de el nucli Linux i els mitjans d'emmagatzematge SATA / POTA / SAS mitjançant la biblioteca libata, així com per als vells mitjans IDE. Recorda que molts controladors USB de mitjans d'emmagatzematge, inclosos els lectors de targetes com les SD, també fan servir aquest tipus de contorladores per operar, per tant també és compatible amb ells.
Su sintaxi bàsica és:
hdparm [opcions] [dispositiu]
I presenta moltes opcions amb les que treballar, encara que no et recomano que les facis servir si no coneixes bé el que fas, ja que a l'ésser una eina a baix nivell podries danyar seriosament la teva dispostivio, per exemple si manipulem algunes opcions crítiques com -B. Però sí que et diré que entre les seves opcions es troben algunes força interessants com:
- obtenir la configuració del disc:
sudo hdparm /dev/sdd
- mostrar la identificació del disc:
sudo hdparm -i /dev/sdd
- Comprovar temps de lectura de la memòria intermèdia i de la memòria cau:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
Recorda sempre fer servir els privilegis, És a dir, executar-los com a usuari root o anteposant sudo davant o no funcionaran ...
Treure i posar el bit de protecció de la memòria amb hdparm:
Un cop coneguda l'eina hdparm, podem usar l'opció -r amb la qual podem consutlar l'estat d'aquest bit amb un simple comandament. Per a això, tan sols hem de conèixer el nom físic del nostre dispositiu d'emmagatzematge. Per exemple, si es cridés / dev / sdd, en aquest cas podríem utilitzar:
sudo hdparm -r /dev/sdd
I se'ns mostrarà en pantalla el valor d'aquest bit. Si el seu valor és 1 això vol dir que està actiu el mode Llegeix només o només de lectura, o dit d'una altra manera, el mètode de protecció contra escriptura està actiu i no podràs escriure res a la memòria. Per desactivar-o modificar el bit, tan sols has de fer el següent:
sudo hdparm -r0 /dev/sdd
I ara si ejecutásemos la primera ordre i consutamos l'estat veurem que ha tornat a 0, per tant la manera readonly està off o desactivat. En cas de voler-tornar a l'estat d'actiu, fa servir l'opció -r1 en comptes de -r0 i llest. Per exemple:
sudo hdparm -r1 /dev/sdd
Així de senzill és activar o desactivar aquest bit. No té massa misteri però per als que no coneguin això pot ser un maldecap a l'hora de desprotegir els seus mitjans d'emmagatzematge.
Espero que t'hagi servit d'ajuda i ara sàpigues com fer un pendrive protegit contra escriptura, no oblidis deixar les teves comentaris ...
20 comentaris, deixa el teu
Hola!
Primer de tot, gràcies per les notes! Són sempre de molta utilitat.
Sóc usuari de Debian 9.
En aquest cas en particular, tinc un problema que no puc resoldre. Tinc un pen «infectat» amb una protecció d'escriptura que NO la puc treure. Ja estic pensant que és una cosa física perquè sincerament he intentat de tot (fins formatacions de baix nivell en Windows o discs de rescat, modificar les particions, etc.) i res.
Vaig creure que vaig estar a punt de resoldre-ho, quan els vostres passos, em vaig trobar que la protecció d'escriptura de l'pendrive estava en «on», però una vegada que ho vaig canviar a «off» segueixo sense poder esborrar o modificar res en ell.
Que podrà ser? Hi ha alguna altra manera de resoldre això? (No m'importa perdre la info que tinc dins)
Des de ja mil gràcies per la teva ajuda.
Hernán
Bones! No sé si et van dir la solució o a l'final el vas resoldre, però jo estic en el mateix cas que tu.
Pots aconsellar?
Moltes gràcies.
bona la explicació
Hola tinc un USB que el sistema no reconeix, et envio la informació si pots ajudar-me gràcies
dmesg
[83384.348839] usb 1-1: new high-speed USB device number 8 using EHCI-pci
[83384.506219] usb 1-1: New USB device found, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: New USB device strings: MFR = 1, Product = 2, SerialNumber = 0
[83384.506228] usb 1-1: Producte: USB Mass Storage
[83384.506231] usb 1-1: Manufacturer: GENERIC
[83384.506848] usb-storage 1-1: 1.0: USB Mass Storage device detected
[83384.508235] scsi host5: usb-storage 1-1: 1.0
[83385.524951] scsi 5: 0: 0: 0: Direct-Access GENERIC USB Mass Storage 1.00 PQ: 0 ANSI: 2
[83385.556757] sd 5: 0: 0: 0: Attached SCSI generic SG3 type 0
[83385.561706] sd 5: 0: 0: 0: [sdc] Attached SCSI una arrencada amb disk
root @ localhost: ~ # fdisk -l
Disk / dev / sda: 698.7 GiB, 750156374016 bytes, 1465149168 sectors
Unitats: sectors de 1 * 512 = 512 bytes
Mida del sector (lògica / física): 512 bytes / 4096 bytes
Mida d'E / S (mínim / òptim): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
Device Start End Sectors Size Type
/ Dev / sda1 2048 1050623 1048576 512M EFI System
/ Dev / sda2 1050624 49879039 48828416 23.3G Linux filesystem
/ Dev / sda3 49879040 69410815 19531776 9.3G Linux filesystem
/ Dev / sda4 69410816 76107775 6696960 3.2G Linux swap
/ Dev / sda5 76107776 80013311 3905536 1.9G Linux filesystem
/ Dev / sda6 80013312 1465147391 1385134080 660.5G Linux filesystem
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: can not open / dev / sdc: No medium found
root @ localhost: ~ # hdparm / dev / sdc
/ Dev / sdc:
SG_IO: bad / missing sense data, 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 00 00 00 00
multcount = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
root @ localhost: ~ # hdparm -C / dev / sdc
/ Dev / sdc:
drive state is: standby
root @ localhost: ~ # hdparm -I / dev / sdc
/ Dev / sdc:
SG_IO: bad / missing sense data, 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 00 00 00 00
ATA device, with non-arrencada amb mitjà
Normes:
Likely used: 1
configuració:
Logical max current
cylinders 0 0
heads 0 0
sectors / track 0 0
-
Logical / Physical Sector size: 512 bytes
device size with M = 1024 * 1024: 0 MBytes
device size with M = 1000 * 1000: 0 MBytes
cache / memòria intermèdia size = unknown
Capacitats:
IORDY not likely
Can not perform double-word IO
R / W múltiple sector transfer: not supported
DMA: no supported
PIO: pio0
gràcies per la teva ajuda, ara vaig poder saber si el meu usb estava contra escriptura i vaig verificar que no estava contraescritura llavors això ja és una solució de format a baix nivell, he afegir que el virus cap a que en un minut o dos el usb es desconnecti i no permetia fer actuar, no deixava temps així que com ja sàvia amb que nom li asiganaba que era «sdc» a la terminal vaig posar i tot com a usuari root.
# Dd if = / dev / zero | pv | dd of = / dev / sdc bs = 1M aqui esperes una bona estona
# Dd if = / dev / zero | pv | dd of = / dev / sdc bs = 446 count = 1 treus i poses una altra veus el usb li dones
# Mkfs.vfat -F 32 -n «anaconda» / dev / sdc i llest
Parabéns! A de voltes que dei amb aquest tema lliga donar coa tua explicació. Moi agraït.
Fantàstic. Moltes gràcies.
Per fi alguna cosa que realment em va funcionar, gràcies.
Hola tinc una memòria microSD de 16 GB ADATA categoria 10
Vaig realitzar el procediment i a l'semblar funciona, però a el tornar a inserir-la i tornar a revisar l'estat torna a posar en només lectura.
He intentat formatar però no funciona. El que si puc és veure són els meus arxius.
alguna altra eina o manera de solucionar el problema ?.
facil i concís, perfecte tot l'explicació i els exemples, m'ha estat molt útil.
hola sóc usuari de kali linux en el seu darrera versio ja he intentat MIL MILIONS de tècniques (perdó per ser exagerat) però cap em dóna ni en linux ni en windows
en el meu cas, havien de, la memòria extraïble ha d'estar desmuntada ....
magnífic, gràcies
he aconseguit recuperar diversos extraïbles promocionals amb les seves instruccions
Hola, serveix però varia la carpeta de l'usuari, estaria bé que ho aclareixin, però tinc un error, en la comanda em mostra que el va modificar, però quan vull posar una carpeta o el que sigui en el pendrive em diu que aquesta protegit contra escriptura . Si em poden ajudar a solucionar-estaria genial. Salutacions
accepta la comanda i el mostra com desprotegit és de r = 0, però quan vull formatar em diu protegit. gràcies
Hola bon dia. Amb això no ho havia intentat però en Windows li he fet de tot i res. El meu pendrive està protejido contra escriptura, inluso amb sudo hdparm -r / dev / sdd dóna valor 1, però amb sudo hdparm -r0 / dev / sdd tampoc va poder treure la protecció contra escriptura. Gràcies i salutacions des de Veneçuela.
La meva versió de Linux és openSUSE Tumbleweed 15.3
Informações passadas com clareza i confiabilidade. Levei hores testant um sem nombre de Soluções i aquesta, apresentada aqui, é a definitiva per o problema manera somente de Leitura i bloqueio de gravação.
Excel·lent aportació, tot a sortit com ho esmentes… gràcies
moltes gràcies, de molt gran utilitat, sol passar molt això en usb, fàcil i ràpid la solució.
Moltes gràcies per l'aportació.
En el meu cas, Ubuntu 23.4 m'accepta totes les ordres però no desbloqueja el bit de protecció.
Alguna idea?
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r /dev/sdc
[sud] contrasenya per a lorenzo:
/ Dev / sdc:
readonly = 1 (on)
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc
/ Dev / sdc:
setting readonly to 0 (off)
readonly = 1 (on)
lorenzo@lorenzo-B85M-D3H:~$
Gràcias