我有一个通过 SAMBA 共享在网络上共享的 USB 驱动器。这是因为内容将由远程用户管理。
现在,本地用户可以物理访问 USB 驱动器。远程用户完成“管理”USB 驱动器后,会指示本地用户卸载驱动器以妥善保管。
但是,由于 USB 闪存驱动器当前正在通过 SAMBA 共享,因此如果 SAMBA 进程未首先释放 USB 驱动器的文件系统,则卸载操作无法成功。这是不可取的,因为停止 SAMBA 会影响使用其他 SAMBA 共享的许多其他用户。
有什么方法可以规避这个问题吗?还是我一开始就做错了?或者如果本地用户直接拔出 USB 驱动器怎么办?这会引起任何问题吗?
答案1
如果您的本地用户 100% 确定没有任何程序在此驱动器上保持任何文件打开,则命令是sync
将数据从缓冲区(如果有)写入驱动器。然后您可以拔下 USB 闪存驱动器。从描述
sync
将内存中缓冲的任何数据写入磁盘。这可以包括(但不限于)修改后的超级块、修改后的 inode 以及延迟的读取和写入。这必须由内核实现;该sync
程序除了sync
执行系统调用外什么也不做。
内核将数据保存在内存中,以避免执行(相对较慢的)磁盘读写。这可以提高性能,但如果计算机崩溃,数据可能会丢失或文件系统因此损坏。该sync
命令可确保内存中的所有内容都写入磁盘。
任何参数都会被忽略,除了一个--help
或--version
(*注意常用选项::)。
退出状态为零表示成功,非零值表示失败。