USB Schreibschutz ausschalten

USB Schreibschutz ausschalten

Ich habe einen USB-Stick, der schreibgeschützt ist:

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

Wie kann ich den Schreibschutz deaktivieren?

Was ich versucht habe

  1. Überprüft, ob es einen Hardwareschalter hat - nein
  2. Habe versucht, es unter Windows und Linux zu formatieren (auch über das Terminal)
  3. Ausprobiert fdisk|chmod
  4. Habe versucht, dies mit verschiedenen Tools aus dem Ubuntu Software Center zu beheben
  5. Habe Google verwendet und etwa 10.000 Diskussionen zu diesem Problem gesehen, aber sie wurden nie gelöst

Weitere Informationen

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

Antwort1

Um den Schreibschutz eines Festplattengeräts zu deaktivieren, verwenden wir das Low-Level-Systemdienstprogramm hdparm wie folgt:

sudo apt-get install hdparm    
sudo hdparm -r0 /dev/sdb

wobei wir davon ausgehen, dass dies /dev/sdbdas physische Datenträgergerät ist, an dem wir arbeiten. Wenn das Gerät Partitionen hat, die schreibgeschützt gemountet sind, sollten Sie sie erneut als Lese-/Schreibpartition mounten, um Daten darauf schreiben zu können.

Hoffentlich hilft das.

Antwort2

Nach der Untersuchung Ihrer Frage scheint es sich um ein nicht allzu seltenes Problem bei bestimmten Marken von USB-Flash-Laufwerken (einige ältere von Samsung, ein Kingston-Modell) zu handeln, die im Grunde ohne bekannten Grund einfach „den Geist aufgeben“. Die Leute haben versucht, sie zu öffnen und zwei Kabel zu überbrücken (vielleicht von einem fehlerhaften Schalter?), aber ohne Erfolg. Wenn Sie dieses Laufwerk noch haben und noch Garantie darauf besteht, würde ich es zurückgeben und ein Ersatzgerät bekommen.

Es tut mir leid, Ihnen schlechte Nachrichten überbringen zu müssen =\, aber es scheint, als hätten Sie in dieser Situation Pech, da alles, was ich gelesen habe, auf einen Hardwarefehler hindeutet.

Edit 27.05.2016: Ich hatte vor Kurzem persönlich ein Problem mit einem Flash-Laufwerk, das den Geist aufgegeben hat. In meinem Fall war es ein Corsair Flash Voyager 128 GB, das bei mir ziemlich drastisch langsamer wurde. Es zeigte zwar nicht die hier aufgeführten Symptome, ließ sich aber gelegentlich nicht mounten und wurde als „Silicon Power“-Gerät angezeigt. Dies lag daran, dass das Laufwerk eine große Anzahl fehlerhafter Sektoren angesammelt hatte und in den Diagnose-/Programmiermodus fiel. Da dies eine meiner beliebtesten Antworten ist und auch in die Kategorie „fehlerhafte Flash-Laufwerke“ fällt, dachte ich, ich füge es hier als Referenz hinzu.

Update 2: Was den Corsair Flash Voyager betrifft, habe ich meinen zur RMA eingeschickt, nur um bei meinem zweiten Gerät den gleichen Fehler zu machen. Das Problem war tatsächlich mechanischer Natur. Der Gleitmechanismus scheint einen leichten Druck auf die Leiterplatte auszuüben. Normalerweise hätte dies während der normalen Lebensdauer des Geräts kein Problem verursacht. Aber bei diesem speziellen Modell scheint es schwache Lötstellen gegeben zu haben, die durch den Druck der Gleitbewegung noch stärker wurden – was zu Oxidation in der gerissenen Verbindung und schließlich zum Ausfall führte. Anstatt noch eine weitere RMA durchzuführen, nahm ich die Sache selbst in die Hand. Ich öffnete das Gehäuse, entfernte etwas von der Kunststoffummantelung, um der Leiterplatte etwas Spielraum zu geben, und ließ dann den NAND-Chip neu verlöten, um die gebrochenen Lötstellen zu reparieren. Es funktioniert bis heute einwandfrei!

Antwort3

Keine der bisher gegebenen Antworten ist richtig.

Damit es tatsächlich funktioniert, können Sie die Erkennung des USB-Datenträgers, der angibt, dass er schreibgeschützt ist, mit einer USB-Quirks-Einstellung überschreiben. So funktioniert es.

  1. Schließen Sie das USB-Gerät an und führen Sie Folgendes aus lsusb, beispielsweise:

    $ lsusb
    Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 
    
  2. Notieren Sie sich die beiden Codes nach IDund zwischen dem Doppelpunkt (sie werden „ idVendorund“ genannt idProduct). Trennen Sie das USB-Gerät.

  3. Entfernen Sie das usb_storageKernelmodul (vorausgesetzt, es ist als Modul kompiliert)

    $ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage
    
  4. Jetzt setzen wir das Modul wieder ein und verwenden dabei eine Quirks-Modus-Einstellung, um die Erkennung des Nur-Schreib-Flags des Geräts zu überschreiben.

    AusQuelle/Treiber/USB/Speicher/USB.c#L572Aus v4.19 können Sie erkennen, dass die gesuchte Einstellung für den Quirks-Modus lautet w. So laden wir das Kernelmodul neu:

    $ sudo modprobe usb_storage quirks=0781:5583:w
    

    Ersetzen Sie die Zahlen zwischen den Doppelpunkten durch die Zahlen, die Sie in Schritt (1) oben gesehen haben.

  5. Stecken Sie das USB-Speichergerät wieder ein. Damit können wir bestätigen, dmesgdass dies funktioniert hat:

    Vor: defekt, nur schreiben

    Und danach: funktionierendes Lesen/Schreiben

    Außerdem wird Ihnen nach der Eingabe eines Mount-Befehls Folgendes angezeigt:

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

Holen Sie jetzt sofort Ihre Sachen von der Festplatte, sie funktioniert nicht mehr.

Antwort4

Angels Antwort ist gut, aber die eigentlichen Befehle waren für mich nicht so einfach. Folgendes hat funktioniert: Stecken Sie die Karte ein (meine ist eine SD-Karte mit einem manuellen Schreibschutzschalter, aber der Schalter ist ausgeschaltet und sie ist auf einem Windows-Computer beschreibbar). Ubuntu hat sie automatisch auf /media/andrew/6AB0-1FD91 gemountet und dmesg hat die Partition als /dev/sdb1 angezeigt.

Unmounten Sie es und machen Sie es beschreibbar

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

Einen neuen Einhängepunkt erstellen und dort einhängen (meine Benutzer-ID aus /etc/passwd ist 1000)

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

es wird immer noch bemängelt, dass es schreibgeschützt ist. Ich weiß nicht, warum ich dieses Flag vor UND nach dem Mounten ändern musste, aber nur so hat es bei mir funktioniert. Setzen Sie es wieder auf beschreibbar und mounten Sie es erneut an derselben Stelle

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

Jetzt kann ich als normaler Benutzer auf die Festplatte schreiben. Ich gehe dabei sehr vorsichtig vor, falls es tatsächlich zu einem Fehler kommen sollte, aber diese Befehle haben es mir ermöglicht, meine Arbeit zu beenden.

verwandte Informationen