Zu diesem Zeitpunkt keine Antwort für dieses Problem.
Normalerweise entscheidet sich der Kernel nach einigen Problemen mit dem Lesen oder Schreiben, um das Gerät zu blockieren, dafür, das Flag für GANZES GERÄT als schreibgeschützt zu setzen. Danach bewirken alle Schreibvorgänge auf einer Partition / einem Dateisystem, die / das sich auf diesem Gerät befindet, dass es zusammen mit dem Gerätestatus als schreibgeschützt geschaltet wird, da keine Schreibvorgänge möglich sind.
Beispiel von dmesg: Dies ist eine Simulation für Gast-Linux unter Windows 8 mit VirtualBox, wenn die Defragmentierung ein Gast-Geräte-Image erstellt:
[11903.002030] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11903.003179] ata3.00: failed command: READ FPDMA QUEUED
[11903.003364] ata3.00: cmd 60/08:00:a8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11903.003385] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11903.004074] ata3.00: status: { DRDY }
[11903.004248] ata3: hard resetting link
[11903.325703] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11903.327097] ata3.00: configured for UDMA/133
[11903.328025] ata3.00: device reported invalid CHS sector 0
[11903.329664] ata3: EH complete
[11941.000472] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11941.000769] ata3.00: failed command: READ FPDMA QUEUED
[11941.000952] ata3.00: cmd 60/08:00:c8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11941.000961] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11941.001353] ata3.00: status: { DRDY }
[11941.001504] ata3: hard resetting link
[11941.320297] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11941.321252] ata3.00: configured for UDMA/133
[11941.321379] ata3.00: device reported invalid CHS sector 0
[11941.321553] ata3: EH complete
[11980.001746] ata3.00: exception Emask 0x0 SAct 0x11fff SErr 0x0 action 0x6 frozen
[11980.002070] ata3.00: failed command: WRITE FPDMA QUEUED
[11980.002255] ata3.00: cmd 61/18:00:28:23:59/00:00:00:00:00/40 tag 0 ncq 12288 out
[11980.002265] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
-------------------
There are many other errors, like "lost write page", "Journal has aborted", "Buffer I/O error", "hard resetting link" and many others.
Danach montieren Ursache:
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
weil das GANZE gerät sda rootfs hält ist sda1 READONLY.
Nach meiner Erfahrung tritt dies in folgenden Situationen auf:
- Die Festplatte ist wirklich beschädigt. Zurückgegebene Schreibprobleme hängen vom Zustand der Festplatte ab
- Der Hostcomputer ist überlastet, und das Timeout für das Schreiben der virtuellen Festplatte des Linux-Gastcomputers ist abgelaufen
- FC-Kabel oder SAN-Gerät (Array-Festplatten über Fibre Channel) sind überlastet
- Momentan unterbrochene Verbindung über FC oder FCoE. Möglicherweise verlorenes / Timeout-FC-Paket
In diesen Situationen ist das Gerät wirklich schreibgeschützt, aber der Linux-Kernel markiert dieses Gerät intern als schreibgeschützt und wird als schreibgeschützt verwendet. Dies ist eine Kernelfunktionalität zur Schadensverhütung, die jedoch nur ab 1. Punkt verwendet werden kann.
Die Frage ist. Wie kann man dem Kernel manuell mitteilen, dass ein Festplattenblockgerät normal funktioniert?
Ohne dies dient der Kernel als schreibgeschütztes Gerät, wie 'CD-ROM', und kein anderer Befehl hat die Möglichkeit, ordnungsgemäß zu funktionieren, einschließlich mount / remount -o read-write, fsck und andere.
Nicht verwendbare Ansvers, die sich als Spam von Leuten qualifizieren, die helfen wollen, aber die Problematik nicht verstehen:
- Versuchen Sie erneut, als Lese- / Schreibzugriff zu aktivieren (unmöglich, Gerät ist RO).
- fsck this (wofür? Gerät ist RO, keine Reparatur möglich)
- 'Ich weiß es nicht' (zuerst mit Verstand, aber unbrauchbar)
- "Tauschen Sie Ihr Gerät aus" * (normalerweise liegt das Problem an einer anderen Stelle)
Hat jemand eine Formel für die Frage oben? Schalterflag für beschreibbares Blockgerät, das es vom schreibgeschützten in den schreibgeschützten Zustand zurücksetzt? Zu diesem Zeitpunkt scheint niemand zu wissen, wie.
Es gibt einige Problemumgehungen, die jedoch normalerweise semiusfähig oder unbrauchbar sind:
- Das Entfernen des Moduls unterstützt den Zugriff auf die angegebene Festplatte oder das Speicherarray. Leider behält normalerweise ein beschädigtes Gerät rootfs bei, oder der Treiber behält sowohl ein beschädigtes Gerät als auch ein Gerät, das rootfs enthält
- Entfernen Sie den FC-Zugriff auf das Gerät und verbinden Sie es erneut (fctools), nicht immer möglich, funktioniert nicht immer.
- Starten Sie die GANZE Maschine neu. Normalerweise ist nur dies immer möglich und wir sind immer dazu gezwungen.
An den Punkten 1. und 2. teilen wir dem Kernel mit, dass wir das Gerät vollständig trennen und erneut verbinden. Kernel hat dies als Beitritt zu einem neuen, ordnungsgemäß funktionierenden Gerät erkannt. Wir können dies mit einem USB-Gerät simulieren und die Stromversorgung kurzzeitig unterbrechen. Punkt 3. ist die letzte Chance und funktioniert normalerweise. Aber warum sollten wir alle neu starten? Leider haben wir zu jedem Zeitpunkt alle Zeitschriftenaktualisierungen und schmutzigen Puffer verloren.
Beachten Sie, in den gleichen Situationen habe ich keine Probleme mit Windows (Desktop und Server).