dan*_*ton 98
是的。例如:
sudo eject /dev/sda
Run Code Online (Sandbox Code Playgroud)
此处表明您需要机械弹出硬件的其他答案不正确。
卸载与弹出不同。
Tot*_*tor 60
在Linux 上,eject将工作,但不会真正“完成工作”关于 USB旋转驱动器。
正确卸载后,拔下 USB 外置硬盘的最佳方法是:
udisksctl power-off -b /dev/sdb
Run Code Online (Sandbox Code Playgroud)
或者
udisks --detach /dev/sdb
Run Code Online (Sandbox Code Playgroud)
这通常会导致驱动器正常旋转。
注意:udisksctl与udisks(前者已安装在我的 Debian 上,后者未安装)相比,可能是一个更“主流”的工具。
该文档的状态(关于关机选项):
安排驱动器安全移除和断电。在操作系统方面,这包括确保没有进程正在使用驱动器,然后请求将动态缓冲区和缓存提交到稳定存储。关闭驱动器电源的确切步骤取决于驱动器本身和所使用的互连。对于通过 USB 连接的驱动器,效果是 USB 设备将被解除配置,然后禁用它所连接的上游集线器端口。
请注意,由于某些物理设备包含多个驱动器(例如 4 合 1 闪存卡读卡器 USB 设备),因此关闭一个驱动器可能会影响其他驱动器。因此,与执行此操作相关的保证并不多。通常的结果是驱动器消失了,就好像它被拔掉了一样。
准确地说,当前的实现(截至 2014 年):
此过程类似于此处建议的手动过程。最初的答案是在 askubuntu 上。
Ton*_*rge 21
卸载磁盘 /dev/sdb 的手动步骤(需要 sudo):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
Run Code Online (Sandbox Code Playgroud)
这将完全关闭设备并将其与系统分离。在断开连接并重新连接之前,不会再次检测到它。
Ign*_*ams 15
不。他们也不需要。eject用于打开光驱,不能直接拉出介质。
对于 USB/eSATA/etc 来说,卸载就足够了。存储设备。
如果您仔细阅读eject(1)手册页,您会发现有4 种弹出方法:
-r This option specifies that the drive should be ejected using a CDROM
eject command.
-s This option specifies that the drive should be ejected using SCSI
commands.
-f This option specifies that the drive should be ejected using a remov?
able floppy disk eject command.
-q This option specifies that the drive should be ejected using a tape
drive offline command.
Run Code Online (Sandbox Code Playgroud)
当您在 HDD/SCSI 上调用弹出时,它会发出ioctl(fd, SG_IO, (void *)&io_hdr);命令(从eject.c源复制)。
这等同于您在 MS Windows 或 MaxOSX 中安全删除设备。
对于某些设备,这具有特殊意义。例如 Kindle 3 后弹出命令已移至充电模式并允许在设备上浏览,而在屏幕锁定之前。
另一个实用程序做同样的事情,像这样
scsi-spin --force --down /dev/sda
Run Code Online (Sandbox Code Playgroud)
小智 5
在 osx 命令行中,您应该使用diskutil,其中LABEL是 USB 驱动器的标签。
diskutil eject /Volumes/<LABEL>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169982 次 |
| 最近记录: |