【发布时间】:2013-06-17 20:52:51
【问题描述】:
在我的 Ubuntu 系统上,我正在运行 WUBI,因此我有一个设备:/dev/loop0,它实际上是主驱动器的 NTFS 文件系统上的一个文件。我知道环回设备不一定指向磁盘,但是我如何确定它是否是以及它环回哪个磁盘(在 c/c++ ofc 中)?
至于为什么,我正在对系统进行一些简单的分析,并希望将环回上的分区与主磁盘合并。
【问题讨论】:
在我的 Ubuntu 系统上,我正在运行 WUBI,因此我有一个设备:/dev/loop0,它实际上是主驱动器的 NTFS 文件系统上的一个文件。我知道环回设备不一定指向磁盘,但是我如何确定它是否是以及它环回哪个磁盘(在 c/c++ ofc 中)?
至于为什么,我正在对系统进行一些简单的分析,并希望将环回上的分区与主磁盘合并。
【问题讨论】:
说实话,我不明白“轻量级分析”与合并分区有什么关系 或者您真正想要完成的工作,但要找出哪个环回设备是 与哪个文件相关联可以使用 losttup 命令完成。执行此操作的代码需要以 root 身份运行,因此您可以运行“sudo losttup -a”。
要自己在 C/C++ 中执行相同的技巧,过程将是 解析 /proc/partions 以查找正在使用的循环设备 打开每个循环设备 fstat 它以确保它是一个循环设备 ioctl LOOP_GET_STATUS ioctl LOOP_GET_STATUS64
所有重要信息都在头文件linux/loop.h中 如果上述任何一个听起来太奇怪和/或模糊,请使用 losttup。
【讨论】: