2
在Ubuntu中强制卸载,以解决上网本睡眠模式后的问题
我实际上唯一需要了解的是如何在设备繁忙时强制卸载。 umount -f不起作用。下面的描述只是我为什么需要这样做的背景,以防万一有人设法提出更好的解决方案。如果无法进行此卸载,我很乐意接受为什么不这样做的解释。 问题是,每当我将上网本置于睡眠模式时,挂载点都会损坏。该安装仍然存在,并且运行时mount将其正常显示: /dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal) 但是,任何尝试对其进行读/写操作均会失败,并带有Input/output error。 如果有任何打开的程序试图卸载设备,则失败并显示 umount: /home/ilari/storage: device is busy 问题似乎是该设备/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) 问题是,当我这样做时,挂载点的工作方式与睡眠前一样!打开的程序能够再次使用文件系统,就像什么也没发生一样。 但是让系统累积多个(发生故障的)设备似乎很粗略。因此,我想先卸载先前的安装点,然后再将“新”设备重新安装到同一点。 设备繁忙时如何强制卸载?最好在唤醒时自动执行并自动重新安装。任何帮助表示赞赏。 (我当然可以关闭所有打开的程序,然后卸载,但是无论如何这还是违反了睡眠模式的目的。) 编辑:如评论中所述,在睡眠之前先卸载系统,然后在唤醒时重新安装系统可能是一个好主意。实际上,这似乎甚至阻止了设备更改其索引号,因此它仍为/dev/mmcblk0。问题是我只能在关闭所有正在使用它的程序之后才能卸载它。(请注意,这也可以在睡眠后起作用-通过关闭所有程序,我可以随时卸载断点。)umount -f也无济于事,附加一个umount2: Device or resource busy。 我在Acer Aspire One上使用Ubuntu Netbook Remix 9.10。挂载点位于文件系统的UUID的fstab中(这当然就是即使设备名称已更改,重新挂载仍然有效的原因)。自然,另一种解决方法是阻止设备更改其编号,但是我担心这将是一个更加困难的问题。