Ila*_*ste 3 linux mount ubuntu-netbook-remix acer-aspire-one ubuntu
我在这里真正需要知道的唯一一件事是如何在设备繁忙时强制卸载。 umount -f不起作用。以下描述只是我为什么需要这样做的背景,以防有人设法提出更好的解决方案。如果无法执行此卸载,我很乐意接受解释为什么不作为答案。
问题是,每当我将上网本置于睡眠模式时,我的挂载点就会损坏。挂载仍然存在,并且运行mount显示它正常:
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Run Code Online (Sandbox Code Playgroud)
但是,任何读取/写入它的尝试都会失败并显示Input/output error.
如果有任何程序打开,尝试卸载设备,失败
umount: /home/ilari/storage: device is busy
Run Code Online (Sandbox Code Playgroud)
问题似乎是该设备/dev/mmcblk0在睡眠时从系统中消失了。但这就是奇怪的事情发生的地方。以前的设备仍然可用,只是现在变成了/dev/mmcblk1!我可以再次将它安装到同一点,这使得输出mount相当有趣
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
/dev/mmcblk1p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Run Code Online (Sandbox Code Playgroud)
问题是,当我这样做时,挂载点就像睡眠前一样工作!打开的程序可以再次继续使用文件系统,就好像什么都没发生过一样。
但是让系统积累多个(失败的)设备似乎相当粗略。所以我想在将“新”设备重新安装到同一点之前卸载以前的安装点。
设备繁忙时如何强制卸载?最好在唤醒时自动,并自动重新挂载。任何帮助表示赞赏。
(我当然可以关闭所有打开的程序,然后卸载,但这几乎违背了睡眠模式的目的。)
编辑:如评论中所述,最好在睡觉前卸载系统,然后在唤醒时重新安装它。事实上,这似乎甚至会阻止设备更改其索引号,因此它保持为/dev/mmcblk0. 问题是我只能在关闭所有使用它的程序后卸载它。(请注意,这在睡眠后也有效 - 通过关闭所有程序,我总是可以卸载断点。)umount -f也无济于事,使用额外的umount2: Device or resource busy.
我在 Acer Aspire One 上使用 Ubuntu Netbook Remix 9.10。挂载点位于文件系统的 UUID 的 fstab 中(这当然是为什么即使设备名称已更改,重新挂载仍然有效的原因)。当然,对此的替代解决方案是阻止设备更改其编号,但我担心这将是一个更难的问题。