USB-Schreibschutz ausschalten


92

Ich habe einen USB, 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 Hardware-Schalter hat - nein
  2. Versucht es unter Windows und Linux zu formatieren (auch über das Terminal)
  3. Versucht fdisk|chmod
  4. Versucht, dies mit verschiedenen Tools aus dem Ubuntu-Software-Center zu beheben
  5. Benutzte Google und habe ungefähr 10.000 Diskussionen über dieses Problem gesehen, aber sie wurden nie gelöst

Zusätzliche Information

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

7
Ich kann es wegen des Schreibschutzes nicht formatieren.
Noob

2
@micha - was für ein USB-Gerät ist das? Offensichtlich haben Sie überprüft, ob es einen Hardware-Schalter hat. Fehler, wenn Sie versuchen, es zu mounten? sudo mount /dev/sdb1 -v?
fossfreedom

1
Micha, fair genug. Haben Sie versucht, efsck auszuführen, oder Ubuntus Festplatten-Dienstprogramm verwendet , um den Integritätsstatus der Flash-Festplatte zu überprüfen? Wenn es einwandfrei funktioniert und dann plötzlich nicht mehr funktioniert, liegt möglicherweise eine Hardwarefehlfunktion vor.
Kingmilo

1
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
Noob

1
@micha - sehr gut, bedeutet aber leider immer noch nicht, dass es nicht fehlerhaft ist. Es ist üblich, dass Speichergeräte normal funktionieren, wenn sie tatsächlich fehlerhaft sind, nur in einem anderen Stadium des Fehlers. Ich denke, bei all der Aktivität auf dieser Frage sollten Sie um kleine Spenden bitten, um das Laufwerk zu ersetzen, es wäre einfacher 😜
Kingmilo

Antworten:


81

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

sudo hdparm -r0 /dev/sdb

Wir gehen davon aus, dass dies /dev/sdbdas physische Laufwerk ist, an dem wir arbeiten. Wenn das Gerät Partitionen hat, die schreibgeschützt gemountet sind, sollten Sie sie als schreibgeschützt neu mounten, um Daten in sie zu schreiben.

Ich hoffe, das hilft.


Sie sind mein Held. Wo kann ich erfahren, was nach diesem magischen Befehl passiert ist?
Marcos Modenesi

3
Sie können die Erklärung durch Eingabe finden , die hier gebiete> explainshell.com
bagustris

75
Es zeigt, readonly = 0 (off)aber ich bin immer noch nicht in der Lage zu schreiben oder zu formatieren.
shyammakwana.me

1
@OP Ich hatte das gleiche wie Sie, das ist: SDXC-Karte montiert schreibgeschützt, was auch immer der Computer ist; hdparm -rzeigt dann nach dem entsperren "1 - ein" mit r0: "0 - aus" aber mount trotzdem schreibgeschützt. Aber wenn ich meine SanDisk-SD-Karte in einen anderen Adapter einbinde, kann ich sie auch rw einbinden. Es stellt sich heraus, dass zwei meiner microSD-zu-SD-Adapter einen abgebrochenen Stift zwischen zwei Anschlüssen haben. Und diese beiden mounten alles, was ich tue, nur mit Lesezugriff. Kuddos zu @Angel_Genchev, die er beantwortet, hat das meiste Kommando.
Tuk0z

2
@lliseil Es ist mehr als wahrscheinlich, dass der Schreibschutzschalter des Lesegeräts von der in ihn eingesetzten Karte gedrückt wird, normalerweise von der Lasche auf der Karte, aber der Schalter (nicht die Lasche) kann sich verbiegen und festkleben. Sie können den SD-Kartenleser reparieren, indem Sie die Schreibschutz-Schalterstifte abschneiden, die den physischen Kontakt mit der Verriegelungslasche auf der Karte herstellen. Wenn der Schalter im Lesegerät geöffnet ist, ist der Schreibschutz deaktiviert, wenn er geschlossen ist (durch Drücken auf die Lasche auf der Karte), ist der Schreibschutz aktiviert. Durch Entfernen eines oder beider Metallarme des Schalters wird der Schreibschutz des Lesegeräts dauerhaft deaktiviert.
Hydranix

31

Nachdem Sie Ihre Frage untersucht haben, scheint es, dass dies ein nicht allzu ungewöhnliches Problem bei bestimmten Marken von USB-Flash-Laufwerken ist (einige ältere Samsung, ein Kingston-Modell), das im Wesentlichen ohne bekannten Grund einfach "aus dem Ruder läuft". Die Leute hatten versucht, sie zu öffnen und zwei Leads zu überspringen (vielleicht von einem schuppigen Schalter?), Ohne Erfolg. Wenn Sie dieses Laufwerk noch haben und es noch in der Garantie ist, würde ich es zurücksenden und mir einen Ersatz besorgen.

Ich hasse es, Ihnen die schlechten Nachrichten zu überbringen, aber es scheint, dass Sie in dieser Situation Pech haben, da alles, was ich gelesen habe, auf einen Hardwareausfall hindeutet.

Edit 27.05.2016: Ich habe vor kurzem ein persönliches Problem mit einem Flash-Laufwerk festgestellt. In meinem Fall handelte es sich um einen Corsair Flash Voyager 128 GB, der sich bei mir drastisch verlangsamt hat. Es zeigte zwar nicht die hier angegebenen Symptome, war jedoch gelegentlich nicht aktiv und wurde als "Silicon Power" -Gerät angezeigt. Dies ist darauf zurückzuführen, dass das Laufwerk eine große Anzahl fehlerhafter Sektoren angehäuft hat und in den Diagnose- / Programmiermodus übergegangen ist. Da dies eine meiner beliebtesten Antworten ist und dies auch in die Kategorie "Fehlerhafte Flash-Laufwerke" fällt, dachte ich, ich würde es hier als Referenz aufnehmen.


5
@admins: Ich möchte wissen, ob diese Art von Antworten erlaubt sind oder nicht :)
Tachyons

7
@AboobackerMk Wenn es die Antwort ist, dann ist es die Antwort. :)
jrg

4
@Tachyons "ob diese Art von Antworten erlaubt ist oder nicht?" Was ist mit Leuten auf Stackexchange, die beständig versuchen, die Fragen oder Antworten anderer zu diskreditieren? Diese Antwort ist offensichtlich eine gültige Antwort; aus dem grund, sagte jrg.
GoProCameraByGoPro

@GoProCameraByGoPro das ist 3 Jahre alter Kommentar, mein Anliegen war nicht die Qualität der Antwort. und jrg bereits auf meine frage geantwortet :-)
Tachyons

@Tachyons Ich trage meinen Teil dazu bei, den Anspruch hier auf Stackexchange in Frage zu stellen. Wenn ich die Daten hätte, würde ich den demografischen Trend der Menschen, die das tun, untersuchen und ich könnte ihn wahrscheinlich einfach ignorieren, aber jetzt muss ich ihnen Fragen stellen, wenn ich sie sehe.
GoProCameraByGoPro

21

Verwendung fdisk -ldes Antriebs finden, das heißt: / dev / sdc1

jetzt

umount /dev/sdc1

Zum Schluss formatieren Sie das Flash-Laufwerk neu

sudo mkfs -t vfat /dev/sdc1

Ich fand das schnell und einfach. Stellen Sie sicher, dass das Laufwerk UNMOUNT ist, bevor Sie mit dem Formatieren beginnen.


2
sudo mkfs -t vfat / dev / sdc1> Die meisten Blogs sagen dies, aber die Leute sagen, es funktioniert nicht, mal sehen, ob es funktioniert.
One Zero

8
nicht montiert ... abermkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob

es funktionierte für mich, musste nur -I verwenden, um es zu einer großen Partition zu machen und statt / dev / sdc1 / dev / sdc.
mchid

Ich habe alle anderen Möglichkeiten ausprobiert ( hdparm -r0, blockdev --setrw, remount,rw), aber nichts hat mein Problem gelöst, außer dies!
Iman Mirzadeh

1
Es heißtmkfs.vfat: unable to open /dev/sdc: Read-only file system
Shayan

14

Angels Antwort ist gut, aber die tatsächlichen Befehle waren für mich nicht so einfach. Das hat funktioniert: Stecke die Karte ein (meine ist eine SD-Karte mit einem manuellen Schreibschutzschalter, aber der Schalter ist ausgeschaltet und kann auf einem Windows-Computer beschrieben werden). Ubuntu hat es automatisch auf / media / andrew / 6AB0-1FD91 gemountet, und dmesg zeigte, dass die Partition / dev / sdb1 ist.

Hängen Sie es aus und machen Sie es beschreibbar

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

Erstellen Sie einen neuen Einhängepunkt und hängen Sie ihn dort ein (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 sich immer noch beschweren, 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. Stellen Sie es wieder auf beschreibbar und montieren Sie es wieder 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 bin sehr vorsichtig damit, falls es tatsächlich fehlschlägt, aber mit diesen Befehlen konnte ich beenden, was ich tat.


HINWEIS: Meine Karte war tatsächlich fehlerhaft (Ubuntu stellt sie schreibgeschützt bereit, aber meine Kamera schreibt gerne darauf). Ein paar Monate später werden die Dateien beschädigt. Seien Sie also vorsichtig, solange dies funktioniert!
Andrew Lorien

Ich habe versucht, Ihre stpes zu bekommen .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Kann '/ dev / sdc1' nur als schreibgeschützt öffnen Die Festplatte enthält ein unsauberes Dateisystem (0, 0). Das Dateisystem wurde unter Windows nicht sicher geschlossen. Festsetzung.
Ashish Karpe

1
das hat bei mir funktioniert, und keiner der anderen oben ...
Pierre

1
Dies funktionierte, nachdem viele Lösungen ausprobiert wurden. Thanks @andrewlorien
Abk

6

Keine der bisher gegebenen Antworten ist richtig.

Damit es tatsächlich funktioniert, können Sie die Erkennung des USB-Datenträgers außer Kraft setzen, indem Sie dessen Schreibschutz mit einer USB-Macken-Einstellung ankündigen. So funktioniert das.

1) Schließen Sie das USB-Gerät an und führen Sie ein lsusbBeispiel aus:

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

2) Notieren Sie sich diese beiden Codes zwischen dem Doppelpunkt (mit idVendorund bezeichnet 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 in den Quirks-Modus, um die Erkennung des Nur-Schreiben-Flags des Geräts zu überschreiben.

In source / drivers / usb / storage / usb.c # L572 aus v4.19 können Sie sehen, dass die gesuchte Einstellung für den Mackenmodus 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, die Sie in Schritt (1) von oben gesehen haben.

5) Schließen Sie das USB-Speichergerät wieder an. Jetzt können wir mit dmesg bestätigen, dass dies funktioniert hat:

Vor: kaputt schreibe nur

Und danach: arbeiten lesen / schreiben

Auch nach der Ausgabe eines Mount-Befehls sehen Sie:

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

Holen Sie sich jetzt Ihre Sachen sofort von der Festplatte, es schlägt fehl.


Vielen Dank für diese Antwort. Ich hatte ein Problem mit einer CompactFlash-Karte in einem USB-Lesegerät, das schreibgeschützt zu sein schien, und dies ist die einzige Lösung, die ich gefunden habe, um dieses Problem zu beheben. Was seltsam ist, ist, dass andere CF-Karten gut funktionieren.
18.

1

Nun, das ist ein bisschen blöd.

Ich habe hier und anderswo alles versucht und nichts hat funktioniert.

Formatiert auf dem Windows-Laptop eines Freundes - funktioniert jetzt einwandfrei. FFS!

Seufz ... (Sie fragen sich jetzt, ob ich es möglicherweise in meiner Win 7-VM auf meinem Mint-Desktop reparieren konnte?)


-1

Setzen Sie den Memory Stick ein und starten Sie gparted. Wählen Sie es über die Schaltfläche oben rechts aus. Es sollte offensichtlich sein, ob Sie Ihren Memory Stick überprüfen (Größe ist ein guter Hinweis). Wählen Sie Partition -> Unmount.

Wählen Sie oben "Gerät", dann "Partitionstabelle erstellen" und übernehmen Sie die Standardeinstellung "msdos".

Jetzt sollten Sie in der Lage sein, eine neue Partition zu erstellen und diese mit f32 zu formatieren. Wenn Sie nicht können, ist es wahrscheinlich pleite.

HTH


6
Partitionen können aufgrund des Schreibschutzes nicht bearbeitet werden.
Noob
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.