Ubuntu 20.04因sshfs挂载依赖无法启动的问题排查与解决求助
Ubuntu 20.04因sshfs挂载依赖无法启动的问题排查与解决求助
嘿,这个问题我碰到过好几次了——明显是sshfs的自动挂载在搞鬼!系统启动的时候网络还没完全就绪,或者远程主机连不上,它就一直傻等挂载完成,直接卡壳了。别慌,咱们一步步来解决:
一、先把系统救回来,正常启动
1. 进入救援模式获取权限
重启电脑,在GRUB启动菜单(如果没看到,重启时按住Shift键不放)里选「Ubuntu高级选项」,然后挑「recovery mode」,接着选「root shell prompt」。要是提示文件系统是只读的,先敲这个命令改成可写:
mount -o remount,rw /
2. 找到并关掉自动挂载的sshfs配置
大概率是你不小心把sshfs挂载写到了自动启动的地方:
- 先查
/etc/fstab,这是最常见的坑:
要是看到对应cat /etc/fstab | grep sshfs/mnt/wdblue4a或/mnt/wdblue4b的条目,直接在开头加个#注释掉,或者删掉这行。 - 再检查启动脚本,比如
/etc/rc.local、全局bash配置/etc/bash.bashrc,或者systemd服务目录/etc/systemd/system/下有没有相关的挂载服务。找到自动执行sshfs的命令,直接注释掉就行。
3. 重启验证
敲reboot重启,正常情况下系统就能顺利进入桌面了。
二、彻底避免以后再踩坑
既然你本来是手动用脚本挂载的,那就要确保只有你主动触发时才挂载,别让系统启动时瞎忙活:
- 保持手动挂载,但加个前置检查:修改你的手动挂载脚本,先确认网络和远程主机能连上再挂载,比如加一行:
这样连不上的话脚本直接退出,不会白等。ping -c 2 你的远程主机IP || exit 1 - 如果想自动挂载但不卡启动:要是之后想实现自动挂载,用systemd服务来配置才靠谱。新建一个服务文件
/etc/systemd/system/sshfs-mount.service,内容如下(替换成你的实际信息):
然后执行这两个命令生效:[Unit] Description=Mount my SSHFS drives After=network-online.target Wants=network-online.target [Service] Type=oneshot User=你的用户名 ExecStart=/usr/bin/sshfs 远程用户@远程IP:/目标路径 /mnt/wdblue4a ExecStart=/usr/bin/sshfs 远程用户@远程IP:/另一个路径 /mnt/wdblue4b TimeoutSec=5 RemainAfterExit=yes [Install] WantedBy=multi-user.target
这样系统会等网络完全就绪后才尝试挂载,就算挂不上,5秒超时后也会继续启动,不会卡壳。systemctl daemon-reload systemctl enable sshfs-mount.service - 非要写fstab?加这两个选项:如果坚持要把sshfs写进fstab,一定要加
nofail和_netdev选项,示例条目:sshfs#远程用户@远程IP:/路径 /mnt/wdblue4a fuse defaults,nofail,_netdev,user 0 0_netdev告诉系统这是网络设备,等网络起来再挂载;nofail保证挂载失败不影响系统启动。
备注:内容来源于stack exchange,提问作者Phoenix
相关产品推荐
相关产品推荐

