En este momento no hay respuesta para este problema.
Por lo general, después de algunos problemas con las lecturas o escrituras para bloquear el dispositivo, el núcleo decide cambiar la marca de TODO EL DISPOSITIVO como de solo lectura. Después de esto, cualquier escritura en cualquier partición / sistema de archivos ubicado en este dispositivo hace que se cambie como solo lectura junto con el estado del dispositivo, porque cualquier escritura es imposible.
Ejemplo de dmesg, esta es una simulación para Linux invitado en Windows8 usando VirtualBox cuando la desfragmentación toma la imagen del dispositivo de los invitados:
[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.
Después de esto, vuelva a montar la causa:
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
porque TODO el dispositivo sda que mantiene rootfs sda1 es READONLY.
En mi experiencia esto ocurre en situaciones:
- HDD está realmente dañado. Los problemas de escritura devueltos dependen de la condición del HDD
- La máquina host está sobrecargada, luego las escrituras de los discos duros virtuales invitados de Linux se registran temporalmente
- El cable FC o dispositivo SAN (discos de matriz sobre Fibre Channel) está sobrecargado
- Conexión momentánea perdida sobre FC o FCoE. Tal vez el paquete FC perdido / agotado
En estas situaciones, el dispositivo es realmente de lectura y escritura, pero el kernel de Linux marca este dispositivo internamente como de solo lectura y se usa como de solo lectura. Esta es la funcionalidad del kernel creada para la prevención de daños, pero solo se puede usar en 1. punto.
La pregunta es. ¿Cómo decirle manualmente al kernel que el dispositivo de bloqueo de disco duro funciona normalmente?
Sin esto, el kernel sirve como dispositivo de solo lectura, como 'CD-ROM', y ningún otro comando tiene la oportunidad de funcionar correctamente, incluyendo mount / remount -o read-write, fsck y otros.
Respuestas inutilizables, realmente calificadas como spam de personas que quieren ayudar, pero no entienden sobre la naturaleza del problema:
- Intente volver a montar como lectura-escritura (imposible, el dispositivo es RO)
- fsck esto (¿para qué? dispositivo es RO, no es posible repararlo)
- 'No sé' (primero con sentido, pero inutilizable)
- 'Reemplace su dispositivo' * (generalmente el problema es otra cosa)
¿Alguien alguna fórmula para la pregunta anterior? ¿Cambiar el indicador del dispositivo de bloque grabable que lo revierte del estado de solo lectura al de lectura y escritura? En este momento parece que nadie sabe cómo.
Se trata de algunas soluciones, pero por lo general son semiusables o inutilizables:
- Eliminar el módulo admite el acceso al disco duro especificado o al arreglo de almacenamiento. Desafortunadamente, el dispositivo dañado generalmente mantiene rootfs, o el controlador mantiene tanto el dispositivo dañado como el dispositivo que mantiene rootfs
- Elimine el acceso FC al dispositivo y vuelva a unirse a esto (fctools), no siempre es posible, no siempre funciona.
- Reinicie TODA la máquina. Por lo general, solo esto es siempre posible y siempre estamos obligados a hacerlo.
En los puntos 1. y 2. le decimos al kernel que desconectemos completamente el dispositivo y lo conectemos nuevamente. Kernel reconoció esto como unirse a un nuevo dispositivo que funciona correctamente. Podemos simular esto usando un dispositivo USB y desconectar momentáneamente la energía. El punto 3. es la última oportunidad y generalmente funciona. ¿Pero por qué deberíamos reiniciar todo? Desafortunadamente, en todos los puntos perdimos todas las actualizaciones de diarios y buffers sucios.
Tenga en cuenta que, en las mismas situaciones, no tengo problemas con Windows (escritorio y servidor).