![停止/切换 eSATA 热插拔磁盘](https://linux22.com/image/1041772/%E5%81%9C%E6%AD%A2%2F%E5%88%87%E6%8D%A2%20eSATA%20%E7%83%AD%E6%8F%92%E6%8B%94%E7%A3%81%E7%9B%98.png)
我想知道安全启动/停止/切换 eSATA 磁盘的最佳做法是什么。
首先:我读过这篇文章:安全移除 eSATA 磁盘但给出并接受的答案对我不起作用。起初我想寻求澄清,但我读到这是应该避免的,所以我唯一的选择是提出另一个问题。
我正在运行 kUbuntu 13.04。我的 bios 支持 AHCI,并且我专门为连接到我的 eSATA 托架的 SATA 端口启用了热插拔。我的 eSATA 底座有一个电源按钮。
启动似乎很容易。如果我将磁盘插入托架,然后打开电源,该磁盘将自动安装为“fuseblk”磁盘(至少对于我测试的磁盘,看起来这是 NTFS 磁盘的报告方式)
但是,我想知道如何在不停止计算机的情况下停止磁盘,可能安装另一个磁盘,同时避免数据丢失和物理磁盘损坏,最好以(半)自动化的方式,这样我就不必每次都打开命令行。
我目前发现的情况:
- sdparm 似乎没有任何用处,即使它应该是正确的工具(磁盘是 /dev/sda),但却
sdparm -C stop
什么也不做 - 另一方面,hdparm 确实会使磁盘进入休眠状态,
sudo hdparm -Y /dev/sda
从而使磁盘停止旋转。但是,磁盘仍处于挂载状态,如 mount -l 所报告的那样 sudo echo 1 > /sys/block/sda/device/delete
会给我一个权限被拒绝的错误(即使我使用了 sudo)- 如果我右键单击 Dolphin 中的磁盘,会出现一个“弹出”图标,它将卸载磁盘,但磁盘不会停止旋转(而且我当然不想物理移除旋转的磁盘)
因此,目前,我使用“弹出”按钮卸载磁盘,然后让磁盘进入睡眠状态。但是,我对硬盘管理了解不够,无法确定“睡眠”是否足够。没有真正的“停止”或“关机”命令吗?当操作系统要关闭时,它是否只是让驱动器进入睡眠状态,这是否足以进行安全处理。
此外,按照上述步骤操作然后切换到另一个磁盘时,磁盘有时会显示为 /dev/sde 而不是 /dev/sda,这让我相信有些资源没有正确释放。也许这正是该sudo echo 1 > /sys/block/sda/device/delete
命令的意义所在,但由于我无法运行它,即使使用 sudo,它也没什么用。
还有其他我应该注意的命令并添加到序列中吗?
至于如何实现自动化,我想我可以编写一个 shell 脚本,但如果我有一个多分区磁盘怎么办。使用 umount /dev/sda1 不会卸载其他分区,而且我认为不可能仅使用 /dev/sda 来卸载,对吗?它可以与 /dev/sda* 一起使用吗?目前我手头上唯一的多分区磁盘是我的系统磁盘,所以我无法尝试卸载它并查看会发生什么。
答案1
如果您遇到包含正在安装的卷的旋转磁盘的情况,则必须按照正确的顺序组合所有元素。
卸载此磁盘上的所有卷,例如:
sudo umount /path/to/mount/point
使用 验证它是否已卸载
grep sda /proc/mounts
。对物理磁盘上的其他卷重复此操作。停止驱动器,例如:
sudo hdparm -Y /dev/sda
告诉 SATA 控制器您想要拔掉它:
sudo sh -c "echo 1 > /sys/block/sda/device/delete"