Openwrt一条命令把整个路由器搞蹦了

对于rm -rf这条命令以前吃过一次亏了,这次又没有长记性。。。

以前本来想删除某个目录下所有的c文件删掉,但是cd到该目录时少进了一级目录,结果啊把其他人忙活里几天的代码全搞没了。。。

我只想说一下:当某种破坏已经造成,并且破坏没有继续,而你又一时不知所措时,最好的办法就是保持冷静,保护现场,在你没有确保任何有效的解决方法之前,不要乱试临时想起的方法,否则后果可能更严重,原本可能解决的路径都有可能因为继续的误操作而被堵死。。。。。。

我之前的一次误删除之后,就下意识的又把该文件夹又压缩里一份,而后来上网查如何恢复数据时,别人说这种情况下最好不要再往磁盘写数据,因为删除之后文件数据还在磁盘上记录着,而写磁盘就有可能真的把被删掉文件的数据覆盖掉,这样就不肯能找回来了。而自己偏偏手贱,压缩里一份。。。

而这次是想删除一个目录下的bin文件夹,本来是rm -rf ./bin,手贱输入了rm -rf /bin,结果呢整个/bin目录都没了,之后就是你所有的常用命令都一命唔呼了,什么ls,cp,mount命令都没有了,其实这些都不重要,无非恢复出厂设置就ok了,重要的是我在里面添加里许多设置和自己的程序,找不会来就苦逼了。。。。。。

后来又是手贱,想想重启一下怎么样,结果再也起不来了。。。(这里说的起来是指用ssh root@192.168.1.1登录路由器)因为/bin没有里 ash也就没有了。许多服务自然也没有了。没办法了,只能把路由器拆掉,接上串口看能不能通过console挽回。费了半天劲才拆开接上里串口。启动之后有点失望,被来想通过uboot搞一下累,可是他妹的uboot是自动引导里,根本没有给你控制console的机会!而是直接引导内核了!

真是有点失望了,后来继续往下看,才找到了点希望:

原来openwrt提供里一种保护机制,叫做 failsafe模式,这种模式只挂载squash文件系统,它是只读文件系统,在系统提示按【f】的地方立马按 f 键然后回车就进入了failsafe模式,终于进入了系统,有点里希望。但是后面又陷入里自相矛盾的困境:

在这种模式下,系统是没有挂载jffs2文件系统(/overlay),也就读不到里面的文件(空的文件夹),虽然有cp等命令。为了恢复数据只能执行mount_root命令挂载jffs2文件系统,此时可以访问到/overlay下面的文件,也就是我们用户自己写的文件,但是此时没有任何可以操作文件的命令可以使用,都是找不到命令,搞了半天真是醉了,后来想里半天才找到一种解决办法:

1.进入failsafe模式:cp -r /bin /tmp (虽然squash是只读文件系统,但是/tmp下面挂载的是另外一个文件系统tmpfs,它是可以写的)

2.mount_root:挂载jffs2文件系统(此时原来的/bin目录已经没有了)

3.进入/tmp目录:cd /tmp

此时下面有了bin!此时可以执行cp命令了!接下来可以做两个操作来挽回:

(1)rm -rf /overlay/upper/bin(大哥,这个命令不要再用错了!),此时问题已经解决,重新上电路由器原来的/bin目录又恢复了!

(2)cp -r /overlay ./ (将用户数据保存到/tmp文件夹)或者 "scp -r 主机目录 /overlay",完全将数据保存在主机上。

thank godness!可以睡个安稳觉了!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值