![하드 드라이브에서 읽을 수는 있지만 읽기 전용으로 마운트할 수는 없습니다.](https://linux55.com/image/63247/%ED%95%98%EB%93%9C%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%97%90%EC%84%9C%20%EC%9D%BD%EC%9D%84%20%EC%88%98%EB%8A%94%20%EC%9E%88%EC%A7%80%EB%A7%8C%20%EC%9D%BD%EA%B8%B0%20%EC%A0%84%EC%9A%A9%EC%9C%BC%EB%A1%9C%20%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%A0%20%EC%88%98%EB%8A%94%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내 하드 드라이브에 몇 가지 문제가 있습니다. 문제일 수도 있고, SATA 케이블이 문제일 수도 있습니다. 조사 중입니다. 뭔가 매우 이상합니다.
다음을 사용하여 이 장치에서 원시 데이터를 읽을 수 있습니다.
# cat /dev/gcw/root > /dev/null
하지만 다음 명령을 사용하여 이 장치를 설치하려고 하면:
# mount -o ro /dev/gcw/root /mnt/lvroot
오류가 발생합니다. 데메그는 이렇게 말했습니다.
[ 3561.281369] ata6.01: failed command: WRITE MULTIPLE EXT
[ 3561.281384] ata6.01: cmd 39/00:08:27:92:1c/00:00:39:00:00/f0 tag 0 pio 4096 out
[ 3561.281384] res 51/84:01:2e:92:1c/84:00:39:00:00/f0 Emask 0x10 (ATA bus error)
[ 3561.281393] ata6.01: status: { DRDY ERR }
내 질문은: 읽기 전용으로 마운트하려고 할 때 OS가 이 장치에 쓰기를 시도하는 이유는 무엇입니까(쓰기를 위해 "WRITE MULTIPLE EXT" 명령)?
답변1
일부 파일 시스템의 경우 읽기 전용 마운트가 쓰기 작업을 트리거합니다. 제가 알고 있는 한 가지 상황은 저널 파일 시스템의 경우입니다. 완전히 마운트 해제하지 않고 마운트하면 읽기 전용 마운트를 사용하더라도 저널 재생이 트리거됩니다.
Linux의 ext3 또는 ext4의 경우 noload
마운트 옵션을 전달합니다.
mount -o ro,noload /dev/gcw/root /mnt/lvroot
불행하게도 이로 인해 로그가 메모리에서도 전혀 재생할 수 없게 되어 파일 시스템에 일관되지 않은 데이터가 표시될 수 있습니다.
메모리 계층에 쓰기가 이루어지도록 가상 블록 장치를 생성하면 되지만, 원본 콘텐츠는 디스크 블록 장치에서 제공하는 것이 가능하지 않을까 생각했습니다. 바라보다GNU/Linux: 오버레이 블록 장치/스택 가능 블록 장치귀하와 비슷한 시나리오의 예를 들어보세요.