Pokud máte paměťovou kartu SD, pendrive nebo libovolný úložný disk USB, který chcete chránit proti zápisu, v tomto článku vám řekneme krok za krokem a snadným způsobem, jak na to. A existuje určitá ochrana proti zápisu, kterou určité ovladače umožňují, známá jako «bit ochrany proti zápisu»Podle toho, zda je aktivní na 1 nebo 0, umožní zápis do jednotky nebo ne. Tento bit by neměl být zaměňován s WP vlajkových registrů CPU, které zabraňují přepsání vytvořením procesu rozvětvení v systémech podobných systému UNIX, čímž chrání hlavní paměť před zápisem dat. Ani na typickou záložku ochrany, kterou najdeme na některých SD kartách nebo paměťových médiích. V tomto případě máme na mysli ochranu implementovanou na sekundárním úložném médiu.
Zatímco správce paměťové médium Paměťová karta USB nebo SD, nebo jakkoli to znamená, zjistí, že je tento bit aktivní, ovladač zabrání jádru v objednání zápisu, a proto bude moci pouze číst obsah. Je jistě velmi praktické, když ukládáme data, která nechceme upravovat, abychom se vyhnuli omylu zápisu nebo vymazání. Ale pokud se nám jedno z těchto chráněných médií dostalo do rukou a nevíme o existenci tohoto bitu, mohli bychom ztrácet hodiny tím, že si myslíme, že je naše jednotka poškozená, nebo zvedáním a spouštěním karty, kterou musí chránit některé pendrivy nebo SD karty bez jakéhokoli výsledku. (Zamknout / Odemknout) ...
Připojit pouze pro čtení nebo pro zápis:
Ačkoli to není přesně to, co hledáme s bitem ochrany proti zápisu, můžeme také zjistit, že médium bylo automaticky nebo ručně připojeno pouze pro čtení, takže do něj nebudeme mít možnost psát. Něco, co v některých případech může být velmi nepříjemné a zabránit nám v úpravách nebo ukládání věcí. Řešení je velmi jednoduché.
Například pokud je v souboru / etc / fstab zařízení nakonfigurováno tak, aby se automaticky připojovalo pomocí této možnosti ro (pouze pro čtení) nebo pokud jsme jej připojili pomocí příkazu:
sudo mount -o ro /dev/sda /mnt
V takovém případě můžeme číst pouze zařízení / dev / sda, v tomto případě bylo připojeno k přípojnému bodu / mnt. Abychom do něj mohli znovu psát:
sudo mount -o remount,rw /dev/sda /mnt
V případě, že tato metoda nefunguje pro vás, pak to bude proto, že bit, o kterém jsme mluvili, je jednání, a proto budeme muset použít nástroj, který uvádíme níže.
Co je hdparm?
Příkaz hdparm je nástroj na nízké úrovni který funguje jako rozhraní mezi různými ovladači jádra Linuxu a úložnými médii SATA / PATA / SAS pomocí knihovny libata, stejně jako pro stará média IDE. Pamatujte, že mnoho řadičů paměťových médií USB, včetně čteček karet, jako je SD, také používá tento typ ovladače k ovládání, proto je s nimi také kompatibilní.
Su základní syntaxe Je to:
hdparm [možnosti] [zařízení]
A dárky mnoho možností se kterým pracovat, i když nedoporučuji, abyste je používali, pokud nevíte, co děláte dobře, protože jako nástroj nízké úrovně byste mohli vážně poškodit vaše zařízení, například kdybychom manipulovali s některými kritickými možnostmi, jako je -B . Ale řeknu vám, že mezi jeho možnostmi jsou některé docela zajímavé, jako například:
- Získejte konfigurace disku:
sudo hdparm /dev/sdd
- Ukažte identifikace disku:
sudo hdparm -i /dev/sdd
- Zkontrolujte časy čtení vyrovnávací paměti a mezipaměti:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
Vždy nezapomeňte použít privilegia, to znamená, spustit je jako uživatel root nebo dát sudo dopředu, jinak nebudou fungovat ...
Odstraňte a nastavte bit ochrany paměti pomocí hdparm:
Jakmile je nástroj hdparm známý, můžeme použít volbu -r, pomocí které můžeme zkontrolovat stav tohoto bitu jednoduchým příkazem. K tomu potřebujeme znát pouze fyzický název našeho úložného zařízení. Pokud by například bylo voláno / dev / sdd, v takovém případě bychom mohli použít:
sudo hdparm -r /dev/sdd
A hodnota uvedeného bitu se zobrazí na obrazovce. Pokud je jeho hodnota 1, znamená to, že režim je aktivní číst nebo jen pro čtení, nebo jinými slovy, metoda ochrany proti zápisu je aktivní a do paměti nebudete moci nic zapsat. Chcete-li jej deaktivovat nebo upravit bit, musíte udělat následující:
sudo hdparm -r0 /dev/sdd
A teď, když provedeme první příkaz a spotřebujeme stav, uvidíme, že se vrátil na 0, proto je režim pouze pro čtení vypnutý nebo deaktivovaný. Chcete-li jej vrátit do aktivního stavu, použijte tuto možnost -r1 místo -r0 a připraven. Například:
sudo hdparm -r1 /dev/sdd
To je jednoduché povolit nebo zakázat tento bit. Nemá příliš mnoho tajemství, ale pro ty, kteří to nevědí, to může být bolest hlavy, pokud jde o nechránění jejich paměťových médií.
Doufám, že vám to pomohlo a teď víte, jak vytvořit pendrive chráněný proti zápisu, nezapomeňte zanechat svůj komentářAno ...
Dobrý den!
Především díky za poznámky! Jsou vždy velmi užitečné.
Jsem uživatel Debianu 9.
V tomto konkrétním případě mám problém, který nemohu vyřešit. Mám „infikované“ pero s ochranou proti zápisu, KTERÉ NEMOHU odstranit. Už si myslím, že je to fyzické, protože jsem upřímně vyzkoušel všechno (až po nízkoúrovňové formátování v systému Windows nebo záchranné disky, úpravy oddílů atd.) A nic.
Myslel jsem, že se to chystám vyřešit, když jsem sledoval vaše kroky, zjistil jsem, že ochrana proti zápisu do pera byla „zapnutá“, ale jakmile jsem ji změnil na „vypnuto“, stále na ní nemohu nic mazat ani upravovat.
Které mohou být? Existuje nějaký jiný způsob, jak to vyřešit? (Nevadí mi ztráta informací, které mám uvnitř)
Předem děkuji za Vaši pomoc.
Hernán
Dobrý! Nevím, jestli vám řekli řešení, nebo jste to nakonec vyřešili, ale já jsem ve stejném případě jako vy.
Můžete mi poradit?
Děkuju mnohokrát.
dobré vysvětlení
Dobrý den, mám USB, které systém nerozpozná, pošlu vám informace, pokud mi můžete pomoci, díky
dmesg
[83384.348839] usb 1-1: nové vysokorychlostní zařízení USB číslo 8 pomocí ehci-pci
[83384.506219] usb 1-1: Nalezeno nové zařízení USB, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: Nové řetězce zařízení USB: Mfr = 1, Product = 2, SerialNumber = 0
[83384.506228] usb 1-1: Produkt: USB Mass Storage
[83384.506231] usb 1-1: Výrobce: 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: Připojená obecná scsi sg3 typu 0
[83385.561706] sd 5: 0: 0: 0: [sdc] Připojený vyměnitelný disk SCSI
root @ localhost: ~ # fdisk -l
Disk / dev / sda: 698.7 GiB, 750156374016 bajty, 1465149168 sektory
Jednotky: sektory 1 * 512 = 512 bajtů
Velikost sektoru (logické / fyzické): 512 bajtů / 4096 bajtů
Velikost I / O (minimální / optimální): bajty 4096 / bajty 4096
Typ disku: gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
Typ zařízení Začátek a konec koncových sektorů
/ dev / sda1 2048 1050623 1048576 Systém 512M EFI
/ dev / sda2 1050624 49879039 48828416 23.3G Linuxový souborový systém
/ dev / sda3 49879040 69410815 19531776 9.3G Linuxový souborový systém
/ dev / sda4 69410816 76107775 6696960 3.2G Linux swap
/ dev / sda5 76107776 80013311 3905536 1.9G Linuxový souborový systém
/ dev / sda6 80013312 1465147391 1385134080 660.5G Linuxový souborový systém
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: nelze otevřít / dev / sdc: Nebylo nalezeno žádné médium
root @ localhost: ~ # hdparm / dev / sdc
/ dev / sdc:
SG_IO: chybná / chybějící smyslová 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 XNUMX
multcount = 0 (vypnuto)
pouze pro čtení = 0 (vypnuto)
readahead = 256 (zapnuto)
root @ localhost: ~ # hdparm -C / dev / sdc
/ dev / sdc:
stav jednotky je: pohotovostní režim
root @ localhost: ~ # hdparm -I / dev / sdc
/ dev / sdc:
SG_IO: chybná / chybějící smyslová 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 XNUMX
Zařízení ATA s nevyměnitelným médiem
Normy:
Pravděpodobně použito: 1
Konfigurace:
Logický maximální proud
válce 0 0
hlavy 0 0
sektory / stopa 0 0
-
Velikost logického / fyzického sektoru: 512 bajtů
velikost zařízení s M = 1024 * 1024: 0 MBytes
velikost zařízení s M = 1000 * 1000: 0 MBytes
velikost mezipaměti / vyrovnávací paměti = neznámá
Možnosti:
IORDY není pravděpodobné
Nelze provést dvojslovné IO
Přenos více sektorů R / W: není podporován
DMA: není podporováno
IOP: pio0
děkuji za vaši pomoc, teď jsem mohl vědět, jestli je moje USB proti psaní a ověřil jsem si, že to nebylo proti psaní, takže toto je již řešení pro formátování na nízké úrovni, musím dodat, že virus způsobil odpojení USB za minutu nebo dva a ne Umožnilo to jednat, nezanechalo to čas, protože už jsem věděl, jakému jménu jsem to přidělil, což bylo „sdc“ v terminálu, dal jsem vše jako uživatel root.
# dd if = / dev / zero | pv | dd of = / dev / sdc bs = 1M zde chvíli počkáte
# dd if = / dev / zero | pv | dd of = / dev / sdc bs = 446 count = 1 vyjmete a znovu vložte USB, které dáte
# mkfs.vfat -F 32 -n "anaconda" / dev / sdc a máte hotovo
Parabeny! Řada volt, které s tímto tématem potřebuji, má poskytnout vysvětlení coa. Vděčný Moi.
Skvělý. Děkuju.
Konečně něco, co pro mě opravdu fungovalo, díky.
Dobrý den, mám 16 GB ADATA kategorie 10 microSD paměti
Udělal jsem postup a zdá se, že funguje, ale jeho opětovné vložení a opětovná kontrola stavu jej vrátí zpět jen pro čtení.
Snažil jsem se to naformátovat, ale nefunguje to. Vidím jen své soubory.
jakýkoli jiný nástroj nebo způsob, jak problém vyřešit?
snadné a výstižné, zdokonalit všechna vysvětlení a příklady, bylo to velmi užitečné.
Ahoj, jsem uživatel Kali Linuxu v jeho nejnovější verzi, už jsem vyzkoušel miliardu technik (omlouvám se, že jsem přehnaný), ale žádná z nich mi nedává ani v Linuxu, ani ve Windows
v mém případě, debian, musí být vyměnitelná paměť odpojena ...
vynikající, díky
Podařilo se mi získat několik reklamních výtahů s jejich pokyny
Dobrý den, funguje to, ale složka uživatele se liší, bylo by dobré to objasnit, ale mám chybu, v příkazu mi ukazuje, že ji upravuji, ale když chci dát složku nebo cokoli na pendrive, řekne to mi, že je chráněn proti zápisu. Pokud mi pomůžete vyřešit, bylo by to skvělé. Pozdravy
přijímá příkaz a zobrazuje jej jako nechráněný, je to r = 0, ale když chci formátovat, řekne mi to chráněné. Děkuju
Ahoj pěkný den. S tím jsem se nepokusil, ale ve Windows jsem udělal všechno a nic. Můj pendrive je chráněn proti zápisu, dokonce is sudo hdparm -r / dev / sdd dává hodnotu 1, ale s sudo hdparm -r0 / dev / sdd to také nemohlo odstranit ochranu proti zápisu. Díky a pozdravy z Venezuely.
Moje verze pro Linux je openSUSE Tumbleweed 15.3
Předchozí informace s jasností a spolehlivostí. Levei hodin testování sem počet řešení, a to, zde uvedené, je definitivní pro problém v závislosti na čtení a blokování gravação.
Vyborny prispevek, vse dopadlo jak zmiňujete...díky
Děkuji mnohokrát, velmi užitečné, běžně se to děje v usb, řešení je snadné a rychlé.
Moc děkuji za příspěvek.
V mém případě Ubuntu 23.4 přijímá všechny příkazy, ale neodemyká ochranný bit.
Nějaké nápady?
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r /dev/sdc
[sudo] heslo pro Lawrence:
/ dev / sdc:
jen pro čtení = 1 (zapnuto)
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc
/ dev / sdc:
nastavení pouze pro čtení na 0 (vypnuto)
jen pro čtení = 1 (zapnuto)
lorenzo@ lorenzo-B85M-D3H:~$
díky