操作系统损坏恢复记录
使用 rsync 方式升级 os(ubuntu12.04 -> ubuntu18.04),升级期间误按 Ctrl-C。之后再执行 rsync 命令,报错如下:
-bash: /usr/bin/rsync: No such file or directory
其他命令也是一样的报错。
想到使用 busybox, busybox ls
是好用的,busybox rsync
不好用,查看了 busybox 中没有 rsync 命令。
试了使用 busybox sh
进入到 busybox 的 shell,执行 rsync 命令,一样的报错。
也试了使用 nc -l -p 20000 -e sh
, 但是对端连过来,依然使用的是本机的命令,还是不 OK 的
查看同步日志,在同步 /lib/systemd 时断开的, 那么 /lib/x86_64-linux-gnu 这个目录还没有同步到。这个目录正好就是库函数的目录,按道理也应该是库的问题导致。就想把这个目录同步过来
发现 nc 不能同步目录(其实 nc 可以写文件,可以通过在两边应用tar和管道,实现传输目录),我就先同步个 glibc,仍然没有把系统修复好。
后来想到可以先把 /lib/x86_64-linux-gnu 压缩,nc 传过去,再解压。这样系统就可以正常执行命令了。
后面测试了下,使用 tar 加 管道的命令如下:
nc -l -p 20000 |tar zxf - -C x86/ # 目标机器
tar zcvf - ./* | nc 目标机器 20000 # 正常的机器