/dev/block/sr0
CentOS6 시스템에는 (읽기 전용) 및 /dev/block/sda
(읽기/쓰기) 가 있습니다 . 어떤 장치가 읽기 전용인지 프로그래밍 방식으로 확인하는 방법은 무엇입니까? 거기에 파일이 있지만 ro
두 장치 모두 "0"입니다.
사용할 수 있는 몇 가지 트릭( name 을 ^sr
name 과 비교 ^sd
, 장치 노드의 소유권 찾기 cdrom
)이 있지만 일반적인 솔루션을 기대합니다.
답변1
1 이면 /sys/block/xxx/ro
커널은 읽기 전용임을 보장합니다.
$ sudo losetup /dev/loop0 a
$ sudo losetup -r /dev/loop1 b
$ cat /sys/block/loop0/ro
0
$ cat /sys/block/loop1/ro
1
그렇지 않은 경우 커널에서 위에 쓰기를 시도할 수 있지만 더 낮은 수준에서는 쓰기가 차단될 수 있습니다.
CD/DVD의 경우 미디어 유형(읽기 전용, 쓰기 가능, 다시 쓰기 가능, 세션 열기...)을 찾을 수 있습니다 cdrdao disk-info
.
이제 장치에 쓰기가 가능하지만 장치 파일에 대한 쓰기 권한이 없을 수도 있지만 이는 또 다른 이야기이며 쉽게 확인할 수 있습니다.[ -w "$dev" ]
답변2
살펴보기 /proc/mounts
(또는 출력산주문하다).
내 /dev/sr0
항목은 다음과 같습니다. ro,....
내 /dev/sda1
항목은 다음과 같습니다.rw,....
일반적으로 루트 파티션은 UUID를 사용하거나 제 경우에는 볼륨 레이블을 사용하여 마운트됩니다. 그 부분에 대해서는 현명해야 하지만 CDROM과 추가 드라이브는 다음과 같이 나열됩니다./dev/...
장치의 상태가 아니라 파일 시스템의 RO/RW 상태를 찾고 있다는 점을 명심하세요.