현재이 문제에 대한 답변은 없습니다.
일반적으로 읽기 또는 블록 장치 쓰기에 문제가 발생한 후 커널은 WHOLE DEVICE의 플래그를 읽기 전용으로 전환하기로 결정합니다. 이 후에는이 장치에있는 파티션 / 파일 시스템에 쓰면 쓰기가 불가능하므로 장치 상태와 함께 읽기 전용으로 전환합니다.
dmesg의 예입니다. 조각 모음이 게스트 장치 이미지를 가져올 때 VirtualBox를 사용하는 windows8의 게스트 Linux에 대한 시뮬레이션입니다.
[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.
그런 다음 원인을 다시 마운트하십시오.
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
rootfs sda1을 유지하는 전체 장치가 읽기 전용이기 때문입니다.
내 경험상 이것은 상황에서 발생합니다.
- HDD가 실제로 손상되었습니다. 반환 된 쓰기 문제는 HDD 상태에 따라 다릅니다
- 호스트 시스템이 오버로드 된 후 Linux 게스트 가상 HDD 쓰기 시간이 초과되었습니다.
- FC 케이블 또는 SAN 장치 (파이버 채널을 통한 어레이 디스크) 과부하
- FC 또는 FCoE에서 일시적으로 연결이 끊어졌습니다. FC 패킷이 손실되거나 시간이 초과되었을 수 있음
이 상황에서 장치는 실제로 읽기 / 쓰기이지만 Linux 커널은이 장치를 내부적으로 읽기 전용으로 표시하고 읽기 전용으로 사용합니다. 이것은 손상 방지를 위해 만들어진 커널 기능이지만 1 시점에서만 사용할 수 있습니다.
질문은 커널에 수동으로 알려주는 방법, hdd 블록 장치가 정상적으로 작동합니까?
이것을 끝내면 커널은 'CD-ROM'과 같은 읽기 전용 장치로 사용되며 mount / remount -o read-write, fsck 등을 포함한 다른 명령은 제대로 작동하지 않습니다.
도움이 필요하지만 문제의 성격에 대해 이해하지 못하는 사람들의 스팸으로 자격이 부여 된 사용할 수없는 성향 :
- 읽기 / 쓰기로 다시 마운트 해보십시오 (불가능, 장치는 RO 임)
- fsck this (무엇을 위해? 장치는 RO입니까, 수리가 불가능합니다)
- '몰라요'(먼저 의미는 있지만 사용할 수 없음)
- '기기 교체'* (보통 문제는 다른 것입니다)
위의 질문에 대한 공식이 있습니까? 읽기 전용 상태에서 읽기 / 쓰기 상태로 되 돌리는 쓰기 가능한 블록 장치의 스위치 플래그 현재로서는 아무도 아는 사람이없는 것 같습니다.
몇 가지 해결 방법이지만 일반적으로 반 이용 또는 사용할 수 없습니다.
- 모듈 제거는 지정된 hdd 또는 스토리지 배열에 대한 액세스를 지원합니다. 불행히도 일반적으로 손상된 장치는 rootfs를 유지하거나 드라이버는 손상된 장치와 rootfs를 유지하는 장치를 유지합니다
- 장치에 대한 FC 액세스를 제거하고 가능하지는 않지만 항상 작동하는 것은 아닙니다 (fctools).
- 전체 기계를 다시 시작하십시오. 일반적으로 이것은 항상 가능하며 우리는 항상 강요합니다.
1 번과 2 번 지점에서 커널에게 장치를 완전히 분리했다가 다시 연결한다고 알려줍니다. 커널은이 기능을 올바르게 작동하는 새로운 장치로 인식했습니다. USB 장치와 순간 제거 전원을 사용하여이를 시뮬레이션 할 수 있습니다. 포인트 3은 마지막 기회이며 일반적으로 작동합니다. 그러나 왜 우리 모두를 다시 시작해야합니까? 불행히도 모든 시점에서 우리는 모든 저널 업데이트와 더티 버퍼를 잃었습니다.
같은 상황에서 Windows (데스크톱 및 서버)에 문제가 없습니다.