一个进程可以锁定磁盘以使其他进程无法访问它吗?

Posted

技术标签:

【中文标题】一个进程可以锁定磁盘以使其他进程无法访问它吗?【英文标题】:Can a process lock a disk so that no other process can access it? 【发布时间】:2011-03-14 22:20:02 【问题描述】:

有没有办法让一个进程锁定整个磁盘,以便在该进程释放锁定之前其他进程无法访问磁盘上的任何文件?其他进程的磁盘 i/o 操作可能会阻塞,直到锁被释放。

有问题的操作系统是 Linux。

【问题讨论】:

好吧,我猜你可以锁定磁盘上的所有文件和文件夹,但这可能会很慢...... 锁定磁盘或锁定对磁盘上所有文件的访问?通过 umounting 可以实现锁定文件,你的程序仍然可以通过 /dev/sd* 访问磁盘。 (但其他 IO 会失败) 那么锁定磁盘上的整个目录怎么样? 【参考方案1】:

由于 Linux 上的所有内容都是文件,因此您应该尝试锁定代表您设备的文件。

【讨论】:

这需要先卸载磁盘,这是不可取的,因为它会导致其他进程的 I/O 操作失败(而不是阻塞,这正是我所追求的)。

以上是关于一个进程可以锁定磁盘以使其他进程无法访问它吗?的主要内容,如果未能解决你的问题,请参考以下文章

另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“……”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。

另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“……”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。

另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“……”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。

VMware启动报错:另一个程序已锁定文件的一部分,进程无法访问(删除最近的.lck文件夹)

VMWare虚拟机提示:另一个程序已锁定文件的一部分,进程无法访问...模块"Disk"启动失败

解决“VMware另一个程序锁定文件的一部分,进程无法访问“的问题