![Linux 커널은 블록 장치에 기본적으로 읽기 전용 플래그가 설정되어 있는지 여부를 어떻게 결정합니까?](https://linux55.com/image/138655/Linux%20%EC%BB%A4%EB%84%90%EC%9D%80%20%EB%B8%94%EB%A1%9D%20%EC%9E%A5%EC%B9%98%EC%97%90%20%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9D%BD%EA%B8%B0%20%EC%A0%84%EC%9A%A9%20%ED%94%8C%EB%9E%98%EA%B7%B8%EA%B0%80%20%EC%84%A4%EC%A0%95%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%EC%97%AC%EB%B6%80%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B2%B0%EC%A0%95%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
지속적으로 읽기 전용으로 마운트되는 USB 스틱(약 2개월 전)이 있습니다. 약간의 연구와 테스트 끝에 나는 발견했습니다.블록 장치장치 자체( /dev/sdc
)와 파티션 중 하나( /dev/sdcX
)에는 항상 읽기 전용 플래그( cat /sys/block/sdc/ro
및 cat /sys/block/sdcX/ro
1)가 있습니다.
설치 옵션에 대해 말하는 것이 아닙니다! hdparm -r0 /dev/sdcX
USB 스틱을 삽입하고 재부팅할 때마다 파티션을 읽기-쓰기로 마운트하고 쓸 수 있으려면 플래그를 수동으로 0으로 설정해야 했습니다 (예, 쓰기가 작동했습니다). USB 스틱에는 읽기 전용 하드웨어 스위치가 없습니다. 파티션을 포맷하고, 파티션 테이블을 다시 생성하고, dd if=/dev/zero of=/dev/sdc
이전 파티션 테이블이 완전히 삭제되었는지도 확인했지만 아무 것도 변경되지 않았습니다.
노트:그러나 다른 장치에는 기본적으로 이 읽기 전용 플래그가 설정되어 있지 않습니다.
그렇다면 Linux 커널은 기본적으로 블록 장치에 대한 읽기 전용 플래그를 설정할지 여부를 어떻게 결정합니까? 초기 시작부터 이 동작을 어떻게 영구적으로 변경할 수 있습니까? (실제로 이 USB 스틱에서 Raspberry Pi를 부팅하지만 다른 커널을 사용하는 노트북에서도 읽기 전용 동작이 동일합니다...)?