- 主题:记一次作死小插曲
- 前几天在家里给树莓派写镜像,同一个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.*
 
- 嵌入式设备,都用单用户系统?
 如果是正常多用户系统,我觉得平时不轻易用su,要用sudo,可能在你这个例子里会加道防线。
 【 在 blitz 的大作中提到: 】
 : 前几天在家里给树莓派写镜像,同一个terminal里的另一个tab中正在ssh到另一台机器上干活,在这一背景下,发生了如下几件事情:
 : 1. 输入命令的时候,没有注意切错了tab,导致我本该在本机上打开etcher(一个图形界面的类dd工具),却输入到了远程ssh session中,但是可能是etcher的保护机制,打开失败
 : 2. 我以为是etcher出了问题,然后就以飞快的速度输入了dd if=xxx.img of=/dev/sda。这条命令在本机上是有效的,因为本机上只有ssd,sda对应于插入的tf卡, which正是我要写入的目标。然而这条命令实际上是在远端机器上执行的。
 : ...................
 --来自微水木3.5.10
 --
 FROM 119.130.153.*
 
- 我是在pc上给将要用于启动树莓派的micro SD卡写镜像的时候出的事故。
 
 我用的是sudo,但是输密码也一气呵成,没有给我任何犹豫的空间。
 
 不知道sudo能不能禁止远程干这种危险操作?
 【 在 Dazzy (大懒虫,脱焦省却磨皮) 的大作中提到: 】
 : 嵌入式设备,都用单用户系统?
 : 如果是正常多用户系统,我觉得平时不轻易用su,要用sudo,可能在你这个例子里会加道防线。
 : --来自微水木3.5.10
 : ...................
 --
 FROM 159.226.171.*
 
- 远程用户不是sudo组即可。要方便还是安全的权衡问题。
 
 不同机器的sudo用户名和密码都不同也可以,一旦到输入sudo密码环节,你就知道目标错了。
 
 如果头脑不清醒,只凭屏幕提示的用户名,就条件反射键入密码,那就没办法了。
 【 在 blitz 的大作中提到: 】
 : 我是在pc上给将要用于启动树莓派的micro SD卡写镜像的时候出的事故。
 :
 : 我用的是sudo,但是输密码也一气呵成,没有给我任何犹豫的空间。
 : ...................
 --来自微水木3.5.10
 --
 FROM 119.130.153.*
 
- 对,我几台机器的密码都不同,就为了防止搞错。
 
 【 在 Dazzy (大懒虫,脱焦省却磨皮) 的大作中提到: 】
 : 远程用户不是sudo组即可。要方便还是安全的权衡问题。
 : 不同机器的sudo用户名和密码都不同也可以,一旦到输入sudo密码环节,你就知道目标错了。
 : 如果头脑不清醒,只凭屏幕提示的用户名,就条件反射键入密码,那就没办法了。
 : ...................
 --
 FROM 123.116.83.*
 
- 恭喜人生完整了
 【 在 blitz (blitz) 的大作中提到: 】
 : 前几天在家里给树莓派写镜像,同一个terminal里的另一个tab中正在ssh到另一台机器上干活,在这一背景下,发生了如下几件事情:
 : 1. 输入命令的时候,没有注意切错了tab,导致我本该在本机上打开etcher(一个图形界面的类dd工具),却输入到了远程ssh session中,但是可能是etcher的保护机制,打开失败
 : 2. 我以为是etcher出了问题,然后就以飞快的速度输入了dd if=xxx.img of=/dev/sda。这条命令在本机上是有效的,因为本机上只有ssd,sda对应于插入的tf卡, which正是我要写入的目标。然而这条命令实际上是在远端机器上执行的。
 : ...................
 --
 FROM 210.162.8.*
 
- 我格式化硬盘的时候都把不用的u盘sd卡拔掉的。。
 
 【 在 blitz (blitz) 的大作中提到: 】
 : 前几天在家里给树莓派写镜像,同一个terminal里的另一个tab中正在ssh到另一台机器上干活,在这一背景下,发生了如下几件事情:
 : 1. 输入命令的时候,没有注意切错了tab,导致我本该在本机上打开etcher(一个图形界面的类dd工具),却输入到了远程ssh session中,但是可能是etcher的保护机制,打开失败
 : 2. 我以为是etcher出了问题,然后就以飞快的速度输入了dd if=xxx.img of=/dev/sda。这条命令在本机上是有效的,因为本机上只有ssd,sda对应于插入的tf卡, which正是我要写入的目标。然而这条命令实际上是在远端机器上执行的。
 : ...................
 --
 FROM 114.87.209.*
 
- 我应该研究一下udev规则,别把内置和外置的盘编在一起
 【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
 : 我格式化硬盘的时候都把不用的u盘sd卡拔掉的。。
 --
 FROM 159.226.171.*
 
- 你们真讲究,我树莓派之类的小设备上都是root,ssh秘钥登录
 
 【 在 Dazzy (大懒虫,脱焦省却磨皮) 的大作中提到: 】
 : 嵌入式设备,都用单用户系统?
 : 如果是正常多用户系统,我觉得平时不轻易用su,要用sudo,可能在你这个例子里会加道防线。
 : --来自微水木3.5.10
 : ...................
 --
 FROM 115.171.202.*
 
- 当然是看设备重要性,不是事事如此。
 我家局域网内那些测试用的vm实例,就没必要讲究。
 【 在 cppbuilder 的大作中提到: 】
 : 你们真讲究,我树莓派之类的小设备上都是root,ssh秘钥登录
 :
 : 【 在 Dazzy (大懒虫,脱焦省却磨皮) 的大作中提到: 】
 : ...................
 --来自微水木3.5.10
 --
 FROM 119.129.237.*