gpt4 book ai didi

Linux:如何确定已安装的 vfat 卷是否已删除?

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:24 26 4
gpt4 key购买 nike

我有一个系统(在 CentOS 6.3 下运行),喜欢将数据存档到闪存驱动器。

我们有一个 UI,仅在用户尝试存档数据时尝试安装驱动器 - 用户选择存档功能,然后我们安装驱动器(如果有)并检查其统计信息。如果效果不好(例如,驱动器小于数据集),我们会提示用户尝试另一个驱动器。

现在,我要处理的是,我不想继续卸载和重新安装该卷,所以我只是将其保持安装状态。但是,当用户确实将其拉出时,我不知道如何判断它已经消失了!

我有一个轮询驱动器的循环,我正在查看类似 statvfs64() 的内容(它继续发挥作用,就好像驱动器就在那里一样)。 stat()当驱动器被物理移除时也不会改变。

我尝试打开一个目录( opendir() )并从中读取,但这也不会失败(如果驱动器上有任何文件,这些文件将不再显示,但当然,驱动器一开始可能是空的,所以我不能这样做)。

我不想重复卸载并重新安装驱动器,因为用户可能插入了类似 NTFS 驱动器之类的东西,这似乎需要一些时间来安装。

挂载可能是只读的,因此我无法尝试写入有问题的文件系统。

到目前为止,我唯一想到的是我可以检查挂载设备并查看它是否仍然存在(当我拔出闪存 key 时,/dev/sd* 条目消失)。在我看来,有更好的方法可以做到这一点,但我还没有弄清楚。

最佳答案

即使/dev/sd* 存在,也不意味着该驱动器已安装,仅存在于系统上。也许你可以尝试解析/proc/mounts 文件,看看是否在那里找到它。

关于Linux:如何确定已安装的 vfat 卷是否已删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26535416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com