W tej chwili nie ma odpowiedzi na ten problem.
Zwykle po pewnych problemach z odczytami lub zapisami w celu zablokowania urządzenia, jądro decyduje się na zmianę flagi CAŁEGO URZĄDZENIA jako tylko do odczytu. Następnie wszelkie zapisy na dowolnej partycji / systemie plików znajdującym się na tym urządzeniu powodują przełączenie go jako tylko do odczytu wraz ze stanem urządzenia, ponieważ wszelkie zapisy są niemożliwe.
Przykład z dmesg, to symulacja Linux-a gościa na Windows8 przy użyciu VirtualBox, gdy defrag pobiera obraz urządzenia gościa:
[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.
Następnie zamontuj ponownie przyczynę:
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
ponieważ CAŁE urządzenie sda utrzymujące rootfs sda1 jest DOKŁADNIE.
Z mojego doświadczenia wynika, że dzieje się to w sytuacjach:
- Dysk twardy jest naprawdę uszkodzony. Zwrócone problemy z pisaniem zależą od stanu dysku twardego
- Komputer hosta jest przeciążony, a następnie limity czasu zapisów wirtualnych dysków twardych gościa linux
- Kabel FC lub urządzenie SAN (dyski macierzy przez Fibre Channel) są przeciążone
- Chwilowe utrata połączenia przez FC lub FCoE. Może utracony / przekroczony limit czasu pakietu FC
W takich sytuacjach urządzenie jest naprawdę do odczytu i zapisu, ale jądro Linuksa wewnętrznie oznacza to urządzenie jako tylko do odczytu i jest używane jako tylko do odczytu. Jest to funkcja jądra stworzona w celu zapobiegania uszkodzeniom, ale można jej używać tylko w 1. punkcie.
Pytaniem jest. Jak ręcznie powiedzieć kernelowi, że urządzenie blokujące dysk twardy działa normalnie?
Poza tym jądro służy jako urządzenie tylko do odczytu, podobnie jak „CD-ROM”, i żadne inne polecenie nie ma szansy na poprawne działanie, w tym zamontowanie / ponowne zamontowanie -o odczyt-zapis, fsck i inne.
Odpowiedzi bezużyteczne, naprawdę kwalifikowane jako spam od osób, które chcą pomóc, ale nie rozumieją natury problemu:
- Spróbuj zamontować ponownie jako odczyt-zapis (niemożliwe, urządzenie ma RO)
- fsck to (po co? RO jest urządzeniem, naprawa nie jest możliwa)
- „Nie wiem” (najpierw z rozsądkiem, ale bezużyteczne)
- „Wymień urządzenie” * (zazwyczaj problemem jest coś innego)
Czy ktoś ma powyższy wzór na pytanie? Czy przełączyć flagę dla zapisywalnego urządzenia blokowego, które przywraca go z trybu tylko do odczytu do stanu do odczytu i zapisu? W tej chwili wydaje się, że nikt nie wie jak.
Jest to kilka obejść, ale zwykle jest to półstabilne lub niezdatne do użytku:
- Moduł usuwania obsługuje dostęp do określonego dysku twardego lub macierzy pamięci. Niestety zwykle uszkodzone urządzenie przechowuje rootfs lub sterownik utrzymuje zarówno uszkodzone urządzenie, jak i urządzenie, które utrzymuje rootfs
- Usuń dostęp FC do urządzenia i przyłącz się ponownie (fctools), nie zawsze możliwe, nie zawsze działa.
- Uruchom ponownie CAŁĄ maszynę. Zwykle tylko to jest zawsze możliwe i zawsze jesteśmy do tego zmuszeni.
W punktach 1. i 2. mówimy kernelowi, że całkowicie odłączamy urządzenie i łączymy się z nim ponownie. Jądro rozpoznało to jako dołączenie do nowego poprawnie działającego urządzenia. Możemy to zasymulować za pomocą urządzenia USB i chwilowo odłączyć zasilanie. Punkt 3. jest ostatnią szansą i zwykle działa. Ale dlaczego wszyscy powinniśmy restartować? Niestety w każdym momencie straciliśmy wszystkie aktualizacje dzienników i brudne bufory.
Zauważ, że w tych samych sytuacjach nie mam problemów z systemem Windows (komputer i serwer).