/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状態を探していることに注意してください。