Se /sys/block/xxx/ro
for 1, então o kernel garante que seja somente leitura
$ sudo losetup /dev/loop0 a
$ sudo losetup -r /dev/loop1 b
$ cat /sys/block/loop0/ro
0
$ cat /sys/block/loop1/ro
1
Se não estiver, o kernel pode tentar escrever, mas a escrita pode estar bloqueada em um nível inferior.
Para CDs / DVDs, você pode descobrir o tipo de mídia (somente leitura, gravável, regravável, sessão aberta ...), com cdrdao disk-info
.
Agora, o dispositivo pode ser gravável, mas você pode não ter permissão de gravação no arquivo do dispositivo, mas isso é outra história e pode ser facilmente verificado com [ -w "$dev" ]