Pada sistem CentOS6 saya memiliki /dev/block/sr0
(hanya baca) dan /dev/block/sda
(Baca tulis). Bagaimana saya bisa mengetahui secara terprogram perangkat mana yang hanya-baca? Ada ro
file di sana, tetapi '0' untuk kedua perangkat.
Ada beberapa peretasan yang bisa saya gunakan (bandingkan nama ^sr
vs ^sd
, cari cdrom
kepemilikan node perangkat), tetapi saya ingin memiliki solusi umum.
Jawaban yang Diterima:
Jika /sys/block/xxx/ro
adalah 1, maka kernel menjamin itu hanya-baca
$ sudo losetup /dev/loop0 a
$ sudo losetup -r /dev/loop1 b
$ cat /sys/block/loop0/ro
0
$ cat /sys/block/loop1/ro
1
Jika tidak, maka kernel mungkin mengizinkan Anda untuk mencoba menulis di atasnya, tetapi penulisannya mungkin diblokir pada tingkat yang lebih rendah.
Untuk CD/DVD, Anda dapat mengetahui jenis media (read-only, writable, rewritable, open session…), dengan cdrdao disk-info
.
Sekarang perangkat mungkin dapat ditulisi, tetapi Anda mungkin tidak memiliki izin menulis ke file perangkat, tetapi itu cerita lain dan dapat dengan mudah diperiksa dengan [ -w "$dev" ]