如何获取块设备的大小信息?
给定一个块设备,如何以编程方式获取该块设备的大小元数据?使用Linux命令 df -h,我可以看到所有块设备的总容量、已占用容量等。如何在Rust中获取给定块设备(不论它是否已挂载) 的相同尺寸元数据?我在 https://crates.io/ 上没有找到与此功能相关的crate。我在我的硬件上有两块引导加载程序块设备,其中一块将被挂载,另一块未挂载。当需要安装一个新的引导加载程序软件包时,我必须把收到的软件包写入未挂载的那一块,在写入未挂载的块设备之前需要进行一些大小验证。
解决方案
你必须通过libc crate使用ioctl(BLKGETSIZE64)——它对已挂载和未挂载的设备都适用。 如果你不想使用unsafe,可以读取 /sys/block/{dev}/size并乘以512(sysfs总是报告512字节的扇区)。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。