系统相关
首页 > 系统相关> > linux – 如何从/ sys或/ proc测试块设备是否为只读?

linux – 如何从/ sys或/ proc测试块设备是否为只读?

作者:互联网

在CentOS6系统上,我有/ dev / block / sr0(只读)和/ dev / block / sda(读/写).如何以编程方式找出哪些设备是只读的?那里有一个ro文件,但两个设备都是’0′.

我可以使用一些黑客(比较名称^ sr vs ^ sd,寻找设备节点的cdrom所有权),但我想要一个通用的解决方案.

解决方法:

如果/ sys / block / xxx / ro为1,则内核保证它是只读的

$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”]轻松检查

标签:linux,block-device,proc
来源: https://codeday.me/bug/20190815/1661501.html