![为什么`losetup`需要将循环设备与块设备关联起来?](https://linux22.com/image/148892/%E4%B8%BA%E4%BB%80%E4%B9%88%60losetup%60%E9%9C%80%E8%A6%81%E5%B0%86%E5%BE%AA%E7%8E%AF%E8%AE%BE%E5%A4%87%E4%B8%8E%E5%9D%97%E8%AE%BE%E5%A4%87%E5%85%B3%E8%81%94%E8%B5%B7%E6%9D%A5%EF%BC%9F%20.png)
man losetup
说
losetup 用于将循环设备与常规文件或块设备、分离环路设备、查询环路设备的状态。
https://en.wikipedia.org/wiki/Loop_device说
在类 Unix 操作系统中,循环设备、vnd(vnode 磁盘)或 lofi(循环文件接口)是一种伪设备,它使文件可以作为块设备。
既然循环文件使文件可以作为块设备进行访问,为什么losetup
需要将循环设备与块设备关联起来?这不是没有必要吗?谢谢。
答案1
在使用循环设备仅访问块设备的部分内容、更改其属性或对其内容应用传递函数的情况下,在另一个块设备之上配置循环设备的功能可能非常有用。
例如,losetup
可以采取- 抵消 抵消和一个--大小限制 限制参数,允许它仅映射底层块设备的一部分。 (类似于分区的工作方式,但不一定有分区表。)
它还可以采取-r或者- 只读使循环设备块写入的选项,这对于防止使用块设备且不希望写入它们的应用程序进行不必要的写入很有用。
最后,losetup
可以采取-e,-E或者- 加密 加密类型使用在底层块设备之上实现加密的传输函数的参数。
这三个用例在其他块设备(以及文件)之上可能很有用,因为它们的结果不仅仅是底层设备的相同转换。
可以说,devicemapper 是完成此类转换的更现代的 API(管理它们的现代功能,例如 LVM 和 cryptsetup,都是基于 devicemapper。)losetup
但原始功能仍然存在,因为用户可能仍然依赖它们。
请参阅手册页失败设置(8)有关上述选项的更多详细信息。