在linux中,如何确定使用块设备的进程?
我在服务器中有一个磁盘,我正在迁移到LVM卷组.以前,它使用传统的DOS磁盘分区,hdb [1-5].
我已经从hdb卸载了每个文件系统,使用hdb关闭交换,已经在设备上删除了一个较小的VG,然后使用fdisk重新分区,删除现有分区,并创建了2个分区,但在写完后,linux拒绝了重新读取分区表.使用hdparm -z报告再次尝试:BLKRRPART失败:设备或资源繁忙. 我已检查以下位置以确保设备及其分区未列在任何位置: > / proc / swaps 但是cat / proc / partitions仍然列出了分区,而hdparm -z / dev / hdb仍然让我设备忙. 是否有一些我遗漏的东西,或者我还不知道要找到什么仍然保留在我的块设备上的秘密地方?更重要的是,我如何释放它以便我可以重新加载分区表? FWIW,在这个特定的情况下,我可以简单地重启服务器而不用担心,但这一直困扰着我,而且我很好奇是否有更好的方法. (编辑:添加更精确的措辞) 更新:我使用了partprobe / dev / hdb,它确实改变了一些东西:在/ dev / hdb1中,/ deb / hdb [3-5]现在已经消失了,而且partprobe正在报告错误:错误通知内核有关分区的修改/ dev / hdb1 – 设备或资源繁忙. < - 特别是关于hdb1. hdb1以前是LVM卷组(VG)中的物理卷(PV),在我重新分区之前,我已经恢复了pvremoved em ...... 更新2:FWIW,我仍然没有纠正这个问题,幸运的是它并不紧急.我已经了解到partprobe正在使用更新的API调用,这就是为什么它似乎早先做了一些事情.我仍然没有找到一种简单有效的方法,给定一个设备,它的主要/次要数字,找出哪些资源(内核或用户空间)正在使用它.有任何想法吗? 解决方法
尝试使用热凝器
fuser -vam /dev/hdb1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |