如何在不先关闭 SAMBA 的情况下卸载 USB 闪存驱动器(通过 SAMBA 共享)?

如何在不先关闭 SAMBA 的情况下卸载 USB 闪存驱动器(通过 SAMBA 共享)?

我有一个通过 SAMBA 共享在网络上共享的 USB 驱动器。这是因为内容将由远程用户管理。

现在,本地用户可以物理访问 USB 驱动器。远程用户完成“管理”USB 驱动器后,会指示本地用户卸载驱动器以妥善保管。

但是,由于 USB 闪存驱动器当前正在通过 SAMBA 共享,因此如果 SAMBA 进程未首先释放 USB 驱动器的文件系统,则卸载操作无法成功。这是不可取的,因为停止 SAMBA 会影响使用其他 SAMBA 共享的许多其他用户。

有什么方法可以规避这个问题吗?还是我一开始就做错了?或者如果本地用户直接拔出 USB 驱动器怎么办?这会引起任何问题吗?

答案1

如果您的本地用户 100% 确定没有任何程序在此驱动器上保持任何文件打开,则命令是sync将数据从缓冲区(如果有)写入驱动器。然后您可以拔下 USB 闪存驱动器。从描述 sync将内存中缓冲的任何数据写入磁盘。这可以包括(但不限于)修改后的超级块、修改后的 inode 以及延迟的读取和写入。这必须由内核实现;该sync程序除了sync执行系统调用外什么也不做。

内核将数据保存在内存中,以避免执行(相对较慢的)磁盘读写。这可以提高性能,但如果计算机崩溃,数据可能会丢失或文件系统因此损坏。该sync命令可确保内存中的所有内容都写入磁盘。

任何参数都会被忽略,除了一个--help--version (*注意常用选项::)。

退出状态为零表示成功,非零值表示失败。

相关内容