我有一个文件系统,其中有两个硬盘和几个分区,分别在本地安装。
/root
,,,,,,,位于单独的分区上/home
,/usr
并且都是“ext3” /var
。/local/share
/home/bernhard/fotos/bilder
/backup
卸载过程中出现消息“卸载本地文件系统“不再出现,并且在启动所有分区时,除了根分区之外,必须重新加载日志,这表明卸载不正确。根分区和 /usr 在 sda 上,其他在 sdb 或其他 usb 安装设备上。唯一没有问题的卸载分区似乎是 sda4 上的根分区。
我想知道卸载所有设备的脚本是否有“等待成功“循环或脚本本身已损坏。但是,昨天我升级到 11.04,错误仍然存在。
pmount 看起来不太合适,因为设备不是热插拔的,只是在系统启动时安装。显然,安装 /usr 和之后的 /usr/local/share 以及 /home 和之后的 /home/bernhard/fotos/bilder 会给 umount 带来问题;设备可能很忙,因此无法正确卸载。
有人知道用脚本有序地组织卸载吗?如何等待卸载辅助挂载?您是否也知道将这样的脚本放在哪里以代替原始的 umount 命令?
可能是一个通用的解决方案。
答案1
我这里没有 11.04 可以进行实验,但在我看来/etc/init.d/umountfsumount
脚本应该执行卸载。您会发现,所有常规挂载点都在一次调用中传递。剩下的就是umount
按照合理的顺序处理这些,在我看来,它应该能够做到这一点。该脚本中似乎没有“等待成功”循环。即使某些设备未成功卸载,也umount -r
应该以只读方式挂载这些文件系统,因此不需要日志重放。
为了获得有关此问题的更多信息,您可能希望通过以下一种或多种方式编辑该脚本:
- 设置
VERBOSE=yes
以便您将看到更多输出 sleep 20
在 的开头和结尾放置do_stop
,每个前面都加上一个合适的echo
。这样,您将看到该脚本的输出,并有时间在关机时实际读取它。当然,您应该禁用启动画面,这样您才能真正看到此输出。- 或许还可以做一个,
set -x
这样你就可以看到 shell 脚本的内部工作原理,特别是传递给 umount 的参数。 - 甚至在其中生成一个 shell,这样您可以在关机期间进行实验,例如找出某些文件系统繁忙且无法卸载的原因。
- 尝试添加您自己的排序逻辑,使用常规 bash 语法对 umount 的参数进行排序或执行 umount 的多次调用。我认为如果脚本按预期工作,则不需要这样做,如果它没有按预期工作,则应该会出现某种错误消息。因此,只有在没有其他线索可以知道哪里出了问题时,我才会实施这一点。