- 主题:记一次作死小插曲
前几天在家里给树莓派写镜像,同一个terminal里的另一个tab中正在ssh到另一台机器上干活,在这一背景下,发生了如下几件事情:
1. 输入命令的时候,没有注意切错了tab,导致我本该在本机上打开etcher(一个图形界面的类dd工具),却输入到了远程ssh session中,但是可能是etcher的保护机制,打开失败
2. 我以为是etcher出了问题,然后就以飞快的速度输入了dd if=xxx.img of=/dev/sda。这条命令在本机上是有效的,因为本机上只有ssd,sda对应于插入的tf卡, which正是我要写入的目标。然而这条命令实际上是在远端机器上执行的。
3. 不知道因为什么原因,dd命令运行了不到10秒钟就结束了,也没有报错。但是这条命令本来要运行大概5分钟的。我注意到了这一异常,以为是tf卡有问题,于是又重复运行了几遍dd命令。
4. 几秒钟后我惊觉我的命令输入在了远端的机器上, on which /dev/sda1是我的home分区!!
5. 但是当时对分区的访问并没有出现明显的问题,我侥幸认为系统有某种保护机制。
6. 为了确认这一点,我运行了一下gdisk,该命令报告说gpt分区表corrupted,问我要不要恢复,于是我就确认让它恢复,并正常退出。
7. 由于我平时在三台机器之间是设置了实时同步的(用syncthing),所以并不是很担心。
8. 然后我就重启了远端的机器,果不其然,home分区mount不上了,于是就现场写了一个live cd usb key,把机器启动起来,运行fsck
9. 报了一大堆错误,我就无脑点了修复,经过大概半小时的漫长等待,修复终于结束
10. 我把经过“修复”的home分区给mount进来,进取一看,原来的目录结构和文件名都不见了(法克!),所有的东西都被命名为一串数字,平铺在lost+found里面(顺便我终于知道这个目录是干什么用的了),那我还要这个盘干什么???
11. 于是我就重新mkfs.ext4,fs2tune恢复uuid,重新恢复数据
12. 3个小时候之后,我的远端的机器终于基本恢复如初了
从这件小事中我认识到,手不能太快,真是一个难忘而有意义的下午啊!
--
修改:blitz FROM 159.226.171.*
FROM 159.226.171.*
我是在pc上给将要用于启动树莓派的micro SD卡写镜像的时候出的事故。
我用的是sudo,但是输密码也一气呵成,没有给我任何犹豫的空间。
不知道sudo能不能禁止远程干这种危险操作?
【 在 Dazzy (大懒虫,脱焦省却磨皮) 的大作中提到: 】
: 嵌入式设备,都用单用户系统?
: 如果是正常多用户系统,我觉得平时不轻易用su,要用sudo,可能在你这个例子里会加道防线。
: --来自微水木3.5.10
: ...................
--
FROM 159.226.171.*
我应该研究一下udev规则,别把内置和外置的盘编在一起
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 我格式化硬盘的时候都把不用的u盘sd卡拔掉的。。
--
FROM 159.226.171.*