it-swarm-eu.dev

Ochrana proti přepnutí pomocí USB vypnuta

Mám USB, které je chráněno proti zápisu:

dmesg | tail

[10098.126089] sd 7:0:0:0: [sdb] Write Protect is on
[10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00
[10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.133335]  sdb: sdb1
[10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk

Jak mohu vypnout ochranu proti zápisu?

Co jsem zkusil

  1. Zkontrolováno, zda má hardwarový přepínač - ne
  2. Pokusil se to naformátovat na Windows a na Linuxu (také přes terminál)
  3. Vyzkoušeno fdisk | chmod
  4. Pokusil se to opravit pomocí několika nástrojů ze softwarového centra Ubuntu
  5. Používali Google a viděli asi 10 000 diskusí o tomto problému, ale nikdy nebyly vyřešeny

Další informace

fsck -n /dev/sdb1

fsck from util-linux 2.19.1
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Free cluster summary wrong (968250 vs. really 911911)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdb1: 50 files, 93653/1005564 clusters

fdisk -l

   Device  boot.   Start        End      Blocks   Id  System
/dev/sdb1            32     8060927     4030448    b  W95 FAT32

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1
95
noob

Pro vypnutí ochrany diskových zařízení používáme nízkoúrovňový systémový nástroj hdparm, jako je tento:

Sudo hdparm -r0 /dev/sdb

kde předpokládáme, že /dev/sdb je zařízení fyzického disku, na kterém pracujeme. Pokud zařízení obsahuje oddíly připojené jako pouze pro čtení, měli byste je znovu připojit jako čtení a zápis, abyste do nich mohli zapisovat data.

Doufám, že to pomůže.

85
Angel Genchev

Po prozkoumání vaší otázky se zdá, že se nejedná o příliš neobvyklý problém s některými značkami USB flash disků (některé starší Samsung, model Kingston), které by v zásadě „srazily“ bez známého důvodu. Lidé se je pokusili otevřít a přeskočit dva vodiče (možná z šupinatého spínače?) K ničemu. Pokud tento disk stále máte a je stále v záruce, vrátil bych jej a dostal náhradní.

Nerad vám zlomím špatnou zprávu =\ale zdá se, že v této situaci máte štěstí, protože všechno, co jsem četl, poukazuje na selhání hardwaru.

Edit 05/27/2016: Osobně jsem zažil problém osobně s flash disk vloupání na mě v poslední době. V mém případě to byl Corsair Flash Voyager 128 GB, který na mě začal docela drasticky zpomalit. I když to neukazovalo symptomy zde uvedené, občas se nepřipojilo a ukázalo se jako zařízení „Silicon Power“. To bylo důsledkem toho, že měnič nahromadil velké množství chybných sektorů a spadl do diagnostického/programovacího režimu. Protože toto je jedna z mých oblíbených odpovědí a to také spadá do kategorie „selhávajících flash disků“, domníval jsem se, že sem zahrnuji tuto informaci pro informaci.

Aktualizace 2: Pokud jde o to, že jsem Corsair Flash Voyager, poslal jsem svůj do RMA, jen aby na mě můj druhý selhal stejným způsobem. Problém se ve skutečnosti ukázal jako mechanický. Zdá se, že posuvný mechanismus vyvíjí malé množství tlaku na DPS. Obvykle by to nezpůsobilo problém v běžné životnosti zařízení. Ale u tohoto konkrétního modelu se zdá, že měl slabé pájené spoje, že tlak z kluzného působení se zhoršil - což vedlo k oxidaci v prasklém kloubu a eventuálnímu selhání. Spíše než dělat další RMA jsem vzal věci do svých rukou. Otevřel jsem pouzdro, oholil jsem část plastového pouzdra pryč, abych dal PCB nějaký pokoj s kroutícím se pohybem) a pak přeformátoval čip NAND, aby opravil rozbité pájené spoje.

31
Chuck R

použitím fdisk -l vyhledejte jednotku, tj .:/dev/sdc1

nyní

umount /dev/sdc1

Nakonec naformátujte jednotku flash

Sudo mkfs -t vfat /dev/sdc1

Našel jsem to rychlé a snadné. Než se pokusíte naformátovat, nezapomeňte ODPOJIT jednotku.

21
Ringtail

Angelova odpověď je dobrá, ale skutečné příkazy pro mě nebyly tak snadné. Tohle fungovalo: Připojte kartu (moje je SD karta s ručním přepínačem ochrany proti zápisu, ale je vypnutý a je zapisovatelný na počítači se systémem Windows). Ubuntu jej připojil automaticky na/media/andrew/6AB0-1FD91 a dmesg ukázal oddíl jako/dev/sdb1.

Rozpojte jej a vytvořte zapisovatelný text

Sudo umount /dev/sdb1
Sudo hdparm -r0 /dev/sdb

Vytvořte nový připojovací bod a připojte jej tam (moje ID uživatele z/etc/passwd je 1000)

Sudo mkdir /media/andrew/temp
Sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp

stále si bude stěžovat, že je to jen pro čtení. Nevím, proč jsem musel změnit vlajku před A po namontování, ale to je jediný způsob, jak to pro mě fungovalo. Nastavte jej znovu na zapisování a připojte jej na stejné místo

Sudo hdparm -r0 /dev/sdb1
Sudo mount -o remount,rw /dev/sdb1

Nyní mohu zapisovat na disk jako můj normální uživatel. Jsem velmi opatrný, pokud to vlastně selže, ale tyto příkazy mi umožnily dokončit to, co jsem dělal.

17
andrew lorien

Žádná z dosud poskytnutých odpovědí není správná.

Aby to skutečně fungovalo, můžete potlačit detekci disku USB oznamujícího jeho čtení pouze pomocí nastavení USB quirks. Takto to funguje.

1) Připojte zařízení USB a proveďte příklad lsusb, například:

$ lsusb
Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 

2) Vezměte na vědomí tyto dva kódy mezi dvojtečkou (nazývané idVendor a idProduct). Odpojte zařízení USB.

3) Odstraňte modul jádra usb_storage (Za předpokladu, že je kompilován jako modul)

$ Sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage

4) Nyní vložíme modul zpět pomocí nastavení mžiků, abychom potlačili detekci příznaku pouze pro zápis zařízení.

Z source/drivers/usb/storage/usb.c # L572 převzatých z v4.19 vidíte, že hledané nastavení vtípků je w. Zde je návod, jak načteme modul jádra:

$ Sudo modprobe usb_storage quirks=0781:5583:w

Nahraďte čísla mezi dvojtečky těmi, které jste viděli v kroku (1) shora.

5) znovu připojte úložné zařízení USB. Nyní můžeme pomocí dmesg potvrdit, že to fungovalo:

Před: broken write only

A poté: working read/write

Po vydání příkazu mount uvidíte:

/dev/sdb1 on /usb type ext4 (rw,relatime)

Teď sejměte své věci z disku okamžitě, selhalo to.

7
kristopolous

Tohle je trochu bummer.

Vyzkoušel jsem všechno tady a jinde & nic fungovalo.

Naformátováno na notebooku Windows přítele - nyní funguje dobře. FFS!

Povzdech ... (přemýšlel jsem teď, jestli jsem to dokázal opravit na svém Win 7 VM na ploše Mint?).

1
Tracy LF