Ak máte pamäťovú kartu SD, pendrive alebo ľubovoľný úložný disk USB, ktorý chcete písať chrániť, v tomto článku vám povieme krok za krokom a jednoduchým spôsobom, ako na to. A existuje určitá ochrana proti zápisu, ktorú niektoré ovládače umožňujú, známa ako «bit ochrany proti zápisu»V závislosti od toho, či je aktívny na hodnote 1 alebo 0, umožní zápis na jednotku alebo nie. Tento bit by sa nemal zamieňať s WP vlajkových registrov CPU, ktoré zabraňujú prepísaniu vytvorením procesu rozvetvenia v systémoch podobných systému UNIX, čím chránia hlavnú pamäť pred zápisom údajov. Ani na typickú ochrannú kartu, ktorú nájdeme na niektorých SD kartách alebo úložných médiách. V tomto prípade máme na mysli ochranu, ktorá je implementovaná v sekundárnom úložnom médiu.
Zatiaľ čo kontrolór pamäťové médium Pamäťová karta USB alebo SD, alebo akýkoľvek iný prostriedok, zistí, že tento bit je aktívny, ovládač zabráni jadru v objednaní príkazu na zápis, a preto bude môcť iba čítať obsah. Určite je veľmi praktické, keď ukladáme údaje, ktoré nechceme upravovať, aby nedochádzalo k omylu alebo ich vymazaniu. Ale ak sa nám jedno z týchto chránených médií dostalo do rúk a nevieme o existencii tohto bitu, mohli by sme strácať hodiny myslením si, že je naša jednotka poškodená, alebo zdvihnutím a spustením karty, ktorú musia chrániť niektoré prívesky alebo karty SD bez výsledku. (Zamknúť / Odomknúť) ...
Pripojiť médiá iba na čítanie alebo iba na zápis:
Aj keď to nie je presne to, čo hľadáme s bitom na ochranu proti zápisu, môžeme tiež zistiť, že médium bolo automaticky alebo manuálne namontované iba na čítanie, takže v ňom nebudeme mať možnosť písať. Niečo, čo v niektorých prípadoch môže byť veľmi nepríjemné a zabrániť nám v úprave alebo ukladaní vecí. Riešenie tohto problému je veľmi jednoduché.
Napríklad ak je v súbore / etc / fstab zariadenie nakonfigurované na automatické pripojenie s touto voľbou ro (iba na čítanie) alebo ak sme ho namontovali pomocou príkazu:
sudo mount -o ro /dev/sda /mnt
V takom prípade môžeme čítať iba zariadenie / dev / sda, v tomto prípade bolo namontované na prípojnom bode / mnt. Aby sme doň mohli znova písať:
sudo mount -o remount,rw /dev/sda /mnt
V prípade, že táto metóda nefunguje pre vás, potom to bude preto, že to, o čom sme hovorili, je konanie, a preto budeme musieť použiť nástroj, ktorý uvádzame nižšie.
Čo je to hdparm?
Príkaz hdparm je nástroj na nízkej úrovni ktorý funguje ako rozhranie medzi rôznymi ovládačmi jadra systému Linux a úložnými médiami SATA / PATA / SAS pomocou knižnice libata, ako aj pre staré médiá IDE. Pamätajte, že tento radič používa na svoju činnosť aj veľa radičov pamäťových médií USB, vrátane čítačiek kariet, napríklad SD, a preto je s nimi aj kompatibilný.
Su základná syntax Je to:
hdparm [možnosti] [zariadenie]
A darčeky Veľa možností s ktorými pracovať, hoci vám neodporúčam ich používať, ak neviete, čo robíte dobre, pretože ako nástroj nízkej úrovne by ste mohli vážne poškodiť svoje zariadenie, napríklad ak manipulujeme s niektorými kritickými možnosťami, ako napríklad -B. Ale poviem vám, že medzi jeho možnosťami sú niektoré celkom zaujímavé, ako napríklad:
- Získajte konfigurácia disku:
sudo hdparm /dev/sdd
- Ukážte identifikácia disku:
sudo hdparm -i /dev/sdd
- Skontrolujte časy načítania vyrovnávacej pamäte a medzipamäte:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
Vždy nezabudnite na použitie privilégiá, to znamená, spustiť ich ako užívateľ root alebo dať sudo pred nich, inak nebudú fungovať ...
Odstráňte a nastavte bit ochrany pamäte pomocou hdparm:
Keď je nástroj hdparm známy, môžeme použiť voľbu -r, pomocou ktorej môžeme skontrolovať stav tohto bitu jednoduchým príkazom. K tomu nám stačí poznať iba fyzický názov nášho úložného zariadenia. Napríklad, ak by sa volalo / dev / sdd, v takom prípade by sme mohli použiť:
sudo hdparm -r /dev/sdd
A hodnota uvedeného bitu sa zobrazí na obrazovke. Ak je jeho hodnota 1, znamená to, že režim je aktívny iba na čítanie alebo iba na čítanie, alebo inými slovami, metóda ochrany proti zápisu je aktívna a do pamäte nebudete môcť nič zapísať. Ak ho chcete deaktivovať alebo upraviť bit, musíte urobiť nasledovné:
sudo hdparm -r0 /dev/sdd
A teraz, ak vykonáme prvý príkaz a spotrebujeme stav, uvidíme, že sa vrátil na 0, preto je režim iba na čítanie vypnutý alebo deaktivovaný. Ak ho chcete vrátiť do aktívneho stavu, použite túto možnosť -r1 namiesto -r0 a pripravený. Napríklad:
sudo hdparm -r1 /dev/sdd
To je jednoduché povoliť alebo zakázať tento bit. Nemá príliš veľa tajomstiev, ale pre tých, ktorí to nevedia, to môže byť bolesť hlavy, keď dôjde na nechránenie ich pamäťových médií.
Dúfam, že vám to pomohlo a teraz viete, ako vyrobiť pendrive chránený proti zápisu, nezabudnite zanechať svoj komentárs ...
Dobrý deň!
V prvom rade ďakujem za poznámky! Sú vždy veľmi užitočné.
Som používateľom systému Debian 9.
V tomto konkrétnom prípade mám problém, ktorý nemôžem vyriešiť. Mám „infikované“ pero s ochranou proti zápisu, ktoré NEMOŽEM odstrániť. Už si myslím, že je to fyzické, pretože som poctivo vyskúšal všetko (až po nízkoúrovňové formátovanie vo Windows alebo záchranné disky, úpravy oddielov atď.) A nič.
Myslel som, že sa to chystám vyriešiť, keď som vykonal vaše kroky, zistil som, že ochrana proti zápisu na perovej jednotke bola „zapnutá“, ale akonáhle som ju zmenil na „vypnutú“, stále na nej nemôžem nič mazať ani upravovať.
Ktoré môžu byť? Existuje nejaký iný spôsob, ako to vyriešiť? (Nevadí mi strata informácií, ktoré mám vo vnútri)
Za pomoc vopred ďakujem.
Hernán
Dobre! Neviem, či vám povedali riešenie, alebo ste ho nakoniec vyriešili, ale som v rovnakom prípade ako vy.
Viete mi poradit?
Děkuju mnohokrát.
dobré vysvetlenie
Dobrý deň, mám USB, ktoré systém nerozpozná, pošlem vám informácie, ak mi môžete pomôcť, ďakujem
dmesg
[83384.348839] usb 1-1: nové vysokorýchlostné zariadenie USB číslo 8 pomocou ehci-pci
[83384.506219] usb 1-1: bolo nájdené nové zariadenie USB, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: Nové reťazce zariadení USB: Mfr = 1, produkt = 2, sériové číslo = 0
[83384.506228] usb 1-1: Produkt: USB Mass Storage
[83384.506231] usb 1-1: Výrobca: GENERIC
[83384.506848] usb-storage 1-1: 1.0: Bolo zistené zariadenie USB Mass Storage
[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: Pripojené scsi generické sg3 typu 0
[83385.561706] sd 5: 0: 0: 0: [sdc] Pripojený vymeniteľný disk SCSI
root @ localhost: ~ # fdisk -l
Disk / dev / sda: 698.7 GiB, bajty 750156374016, sektory 1465149168
Jednotky: sektory 1 * 512 = 512 bajtov
Veľkosť sektora (logická / fyzická): 512 bajtov / 4096 bajtov
Veľkosť I / O (minimálna / optimálna): 4096 bajtov / 4096 bajtov
Typ diskového štítku: gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
Typ zariadenia Začiatok Koniec Sektory
/ dev / sda1 2048 1050623 1048576 512M systém EFI
/ dev / sda2 1050624 49879039 48828416 23.3G Linuxový súborový systém
/ dev / sda3 49879040 69410815 19531776 9.3G Linuxový súborový systém
/ dev / sda4 69410816 76107775 6696960 3.2G Linux swap
/ dev / sda5 76107776 80013311 3905536 1.9G Linuxový súborový systém
/ dev / sda6 80013312 1465147391 1385134080 660.5G Linuxový súborový systém
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: nedá sa otvoriť / dev / sdc: Nenašlo sa žiadne médium
root @ localhost: ~ # hdparm / dev / sdc
/ dev / sdc:
SG_IO: zlé / chýbajúce zmyslové údaje, 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 XNUMX
viacpočet = 0 (vyp.)
iba na čítanie = 0 (vypnuté)
readahead = 256 (zapnuté)
root @ localhost: ~ # hdparm -C / dev / sdc
/ dev / sdc:
stav jednotky je: pohotovostný režim
root @ localhost: ~ # hdparm -I / dev / sdc
/ dev / sdc:
SG_IO: zlé / chýbajúce zmyslové údaje, 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 XNUMX
Zariadenie ATA s nevymeniteľným médiom
Normy:
Pravdepodobne použité: 1
konfigurácia:
Logický maximálny prúd
valce 0 0
hlavy 0 0
sektory / stopa 0 0
-
Veľkosť logického / fyzického sektoru: 512 bajtov
veľkosť zariadenia s M = 1024 * 1024: 0 MBytes
veľkosť zariadenia s M = 1000 * 1000: 0 MBytes
veľkosť medzipamäte / medzipamäte = neznáma
schopnosti:
IORDY nie je pravdepodobné
Nie je možné vykonať dvojslovné IO
R / W viacsektorový prenos: nepodporuje sa
DMA: nie je podporované
IOP: pio0
ďakujem za pomoc, teraz som mohol vedieť, či je moje USB proti zápisu a overil som si, že to nebolo proti zápisu, takže toto je už riešenie na formátovanie na nízkej úrovni, musím dodať, že vírus spôsobil odpojenie USB za minútu alebo dva a nie Umožnilo to konať, nezanechalo to čas, pretože som už vedel, aké meno som mu priradil, čo bolo „sdc“ v termináli, všetko som dal ako užívateľ root.
# dd if = / dev / zero | pv | dd of = / dev / sdc bs = 1M tu chvíľu počkáš
# dd if = / dev / zero | pv | dd = = / dev / sdc bs = 446 count = 1 vyberiete a znova umiestnite USB, ktoré dáte
# mkfs.vfat -F 32 -n "anaconda" / dev / sdc a máte hotovo
Parabény! Niekoľko voltov, ktoré s touto témou potrebujem, má poskytnúť vysvetlenie coa. Vďačný Moi.
Skvelé. Ďakujem.
Nakoniec niečo, čo pre mňa naozaj fungovalo, vďaka.
Dobrý deň, mám 16 GB pamäť ADATA kategórie 10 microSD
Urobil som postup a zdá sa, že funguje, ale jeho opätovné vloženie a opätovná kontrola stavu ho vráti späť na iba na čítanie.
Skúšal som to naformátovať, ale nefunguje to. Čo vidím, sú moje súbory.
akýkoľvek iný nástroj alebo spôsob riešenia problému?
ľahké a stručné, dokonalé všetko vysvetlenie a príklady, bolo to veľmi užitočné.
Dobrý deň, som používateľ Kali Linuxu v jeho najnovšej verzii, už som vyskúšal miliardu techník (prepáčte, že som prehnaný), ale žiadna mi ich nedáva ani v Linuxe, ani vo Windows
v mojom prípade, debian, musí byť vymeniteľná pamäť odpojená ...
super, ďakujem
Podarilo sa mi získať niekoľko reklamných výpisov s ich pokynmi
Dobrý deň, funguje to, ale priečinok používateľa sa líši, bolo by dobré ho objasniť, ale mám chybu, v príkaze mi ukazuje, že ho upravujem, ale keď chcem dať priečinok alebo čokoľvek na pendrive, hovorí to mi, že je chránený proti zápisu. Ak mi pomôžete vyriešiť to, bolo by to skvelé. Zdravím vás
prijme príkaz a zobrazí ho ako nechránený, je to r = 0, ale keď ho chcem naformátovať, povie mi to chránené. Ďakujem
Ahoj, dobrý deň. S tým som to neskúšal, ale vo Windows som urobil všetko a nič. Môj pendrive je chránený proti zápisu, dokonca aj pri Vďaka a pozdrav z Venezuely.
Moja verzia pre Linux je openSUSE Tumbleweed 15.3
Predchádzajúce informácie s jasnosťou a spoľahlivosťou. Levei hodiny testovania sem početných riešení a toto, tu uvedené, je konečné pre problém, ktorý je predmetom čítania a blokovania gravação.
Vyborny prispevok, vsetko dopadlo tak ako si spominal...dakujem
Dakujem velmi pekne, velmi uzitocne, na usb sa to vacsinou deje, riesenie je jednoduche a rychle.
Velmi pekne dakujem za prispevok.
V mojom prípade Ubuntu 23.4 prijíma všetky príkazy, ale neodomyká ochranný bit.
Nejaké nápady?
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r /dev/sdc
[sudo] heslo pre Lawrencea:
/ dev / sdc:
len na čítanie = 1 (zapnuté)
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc
/ dev / sdc:
nastavenie len na čítanie na 0 (vypnuté)
len na čítanie = 1 (zapnuté)
lorenzo@ lorenzo-B85M-D3H:~$
vďaka