我们有基于 BBB 的定制板,其上运行内核 3.12。
我对卸载和同步有疑问。
假设脚本正在卸载分区,是否需要在完成挂起的写入sync
之前运行命令。 umount
?
答案1
sync
不,你之前不需要跑umount
。umount
将在实际卸载文件系统之前完成所有挂起的写入。如果某些进程仍在使用文件系统(例如作为当前工作目录),它也将拒绝卸载。
编辑:卸载主要在 中处理fs/namespace.c
。您不会在sync
那里找到任何显式调用,但您会看到类似“标记此挂载点以进行卸载,拒绝对其进行任何进一步操作,如果所有操作均已完成,则卸载”的注释。您还可以看到明确的使用中检查。
您可以轻松地测试自己是否umount
确实完成了所有挂起的操作:安装一些速度较慢的 USB 记忆棒,将一个大文件复制到其中,然后直接调用umount
after cp
。您将需要几秒钟的时间才能看到新的提示,如果您dstat
在另一个窗口中运行etc.,您将看到仍在进行的写入操作。这与您键入 时的行为完全相同sync
。