Linux 커널은 블록 장치에 기본적으로 읽기 전용 플래그가 설정되어 있는지 여부를 어떻게 결정합니까?

Linux 커널은 블록 장치에 기본적으로 읽기 전용 플래그가 설정되어 있는지 여부를 어떻게 결정합니까?

지속적으로 읽기 전용으로 마운트되는 USB 스틱(약 2개월 전)이 있습니다. 약간의 연구와 테스트 끝에 나는 발견했습니다.블록 장치장치 자체( /dev/sdc)와 파티션 중 하나( /dev/sdcX)에는 항상 읽기 전용 플래그( cat /sys/block/sdc/rocat /sys/block/sdcX/ro1)가 있습니다.

설치 옵션에 대해 말하는 것이 아닙니다! hdparm -r0 /dev/sdcXUSB 스틱을 삽입하고 재부팅할 때마다 파티션을 읽기-쓰기로 마운트하고 쓸 수 있으려면 플래그를 수동으로 0으로 설정해야 했습니다 (예, 쓰기가 작동했습니다). USB 스틱에는 읽기 전용 하드웨어 스위치가 없습니다. 파티션을 포맷하고, 파티션 테이블을 다시 생성하고, dd if=/dev/zero of=/dev/sdc이전 파티션 테이블이 완전히 삭제되었는지도 확인했지만 아무 것도 변경되지 않았습니다.

노트:그러나 다른 장치에는 기본적으로 이 읽기 전용 플래그가 설정되어 있지 않습니다.

그렇다면 Linux 커널은 기본적으로 블록 장치에 대한 읽기 전용 플래그를 설정할지 여부를 어떻게 결정합니까? 초기 시작부터 이 동작을 어떻게 영구적으로 변경할 수 있습니까? (실제로 이 USB 스틱에서 Raspberry Pi를 부팅하지만 다른 커널을 사용하는 노트북에서도 읽기 전용 동작이 동일합니다...)?

관련 정보