刚刚我干了一件蠢事,导致一台 Linux 工控机再也没法正常启动,引以为戒 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
villivateur
1.56D
V2EX    程序员

刚刚我干了一件蠢事,导致一台 Linux 工控机再也没法正常启动,引以为戒

  •  2
     
  •   villivateur 2023-04-20 09:42:59 +08:00 9769 次点击
    这是一个创建于 906 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司一台 Linux 工控机需要排障,我准备把 /etc/profile.d/ 里面的一个脚本取消加载。用脚趾头想了一下,自信地在那个脚本开头加了一行 exit 0……

    于是我重启后再也登录不了任何账户了……

    也许安全模式能解决,但我现在在拆硬盘。

    63 条回复    2023-04-21 17:19:35 +08:00
    hefish
        1
    hefish  
       2023-04-20 09:44:32 +08:00
    rescue 模式,挂硬盘,然后改回来吧。。。
    cephei
        2
    cephei  
       2023-04-20 09:51:52 +08:00   5
    找个 U 盘,放个 Ubuntu 进 LiveCD 模式,挂载硬盘修改一下就可以了吧
    jayeli
        3
    jayeli  
       2023-04-20 09:57:47 +08:00
    我一般是改文件后缀
    lingeo
        4
    lingeo  
       2023-04-20 09:58:25 +08:00
    6 ,我之前也搞过一次,在客户那离线装环境,配置 vsftp 的时候不小心改了啥,开机直接进不去桌面,命令行操作所有命令无效报不存在,好在用绝对路径执行 /bin 目录下的命令还有用,赶紧改了回来。
    fengleiyidao
        5
    fengleiyidao  
       2023-04-20 10:01:34 +08:00   15
    曾经在一台好几年都没人动过的机器上,pacman -Syu 了一下。
    结果公司内部的存储、日历等服务全崩了。整了 1 周才恢复回去。
    iloveayu
        6
    iloveayu  
       2023-04-20 10:04:53 +08:00 via iPhone
    进单用户改回去呗
    proxytoworld
        7
    proxytoworld  
       2023-04-20 10:07:58 +08:00
    @fengleiyidao 说明,能跑就不要动,是有道理的
    kkk123
        8
    kkk123  
       2023-04-20 10:08:15 +08:00
    @fengleiyidao 不厚道的笑出声
    blankmiss
        9
    blankmiss  
       2023-04-20 10:12:26 +08:00
    挂载个 livecd 就能救活了
    boris1993Jr
        10
    boris1993Jr  
       2023-04-20 10:13:07 +08:00 via iPhone
    @fengleiyidao #5 槽点太多以至于不知道从哪开始笑
    公司服务器用 arch ,你还敢动它……
    Reficul
        11
    Reficul  
       2023-04-20 10:13:07 +08:00   3
    @fengleiyidao #5 勇士,几年没滚的也敢滚。 另外,啥公司用 Arch ?
    liubaicai
        12
    liubaicai  
       2023-04-20 10:16:15 +08:00   2
    刚工作第一年就把公司异地机房的 windows 服务器网卡禁用了
    mrzx
        13
    mrzx  
       2023-04-20 10:21:10 +08:00   2
    这算什么,我们公司还有人 rm -rf /*
    还有人把 /etc/fstab 全部删光,然后重启不了,过来问我们怎么解决的。
    这都是我们公司的程序员干的。。你以为实在听故事,尤其是第一条。。
    villivateur
        14
    villivateur  
    OP
       2023-04-20 10:25:09 +08:00
    @cephei 我傻了,一时没想到。但不清楚这个工控机支不支持 USB 引导
    fengleiyidao
        15
    fengleiyidao  
       2023-04-20 10:28:44 +08:00
    @kkk123 @boris1993Jr @proxytoworld @Reficul
    系统是以前的人装的,我也不造为啥用 arch 啊。
    纯手欠,恢复到"能用"的状态后之后再也不敢动了。
    zzzxxyyxgv
        16
    zzzxxyyxgv  
       2023-04-20 10:30:44 +08:00
    @liubaicai 那怎么办,出差过去开?
    ryan4yin
        17
    ryan4yin  
       2023-04-20 10:32:29 +08:00
    @fengleiyidao 你司服务器用 arch 也是可以的
    ruidoBlanco
        18
    ruidoBlanco  
       2023-04-20 10:34:40 +08:00   6
    Grub 界面,按 e ,编辑启动行,添加「 break 」,ctrl-x 启动,会到 initramfs 的提示符停住,mount 系统盘,编辑你的文件,重启。
    flyqie
        19
    flyqie  
       2023-04-20 10:37:47 +08:00
    @fengleiyidao #15

    震惊, 原来真的有人用 arch 做正经服务器, 太厉害了。。。
    duke807
        20
    duke807  
       2023-04-20 10:49:23 +08:00 via Android
    敢用 arch 做服务器也是牛
    我司用 gentoo 做服务器
    mrzx
        21
    mrzx  
       2023-04-20 10:55:04 +08:00
    @duke807 说明你们公司规模不大。有折腾的时间,早期淘宝也是的,
    realpg
        22
    realpg  
    PRO
       2023-04-20 10:56:27 +08:00
    @flyqie #19
    信教的人,干出什么事儿都不意外
    qzwmjv
        23
    qzwmjv  
       2023-04-20 11:00:29 +08:00   4
    你脚趾头真聪明
    xiri
        24
    xiri  
       2023-04-20 11:51:36 +08:00 via Android
    这种都是小问题了,挂个 ubuntu live cd 改回来就好了。

    我上次手欠清理自己开发环境虚拟机已卸载内核遗留下来的 /lib/modules/xxx 文件夹,不小心多复制了个空格,直接把整个 /lib/modules 目录给删掉了,后面因为没有驱动,重启后文件系统都加载不起来(嵌入式 linux ,虚拟机里有几百个 G 的代码和 SDK 文件,从头配置环境会很麻烦)。

    不过最后我启动了个 ubuntu live cd ,直接挂载原硬盘,chroot 进去,把所有的 linux-image 都给卸载了,然后重新安装最新的成功给救回来了
    ianEros
        25
    ianEros  
       2023-04-20 12:00:15 +08:00
    我之前有一次要搭个啥环境,提示 glibc 要升级,我就吧 glibc 删了,然后所有命令失效,退出登录再也登不上了
    duzhuo
        26
    duzhuo  
       2023-04-20 12:02:50 +08:00   1
    什么 现实世界里居然不能用 SL 大法 !
    villivateur
        27
    villivateur  
    OP
       2023-04-20 12:15:28 +08:00
    @ianEros ssh 还连着的话,可以找一个 glibc 二进制传上去
    Les1ie
        28
    Les1ie  
       2023-04-20 12:20:26 +08:00   3
    两天前,服务器 50T 的数据盘突然满了,我看日志找到了当事人,他说他清理下数据。

    过了三分钟,他给我说他把根目录删了。本来想输入 rm -rf ./*的,结果少写了个 . 惊出一身汗,还好他按 ctrl C 足够快,删了几秒钟就发现问题了。此时 /usr 和 /bin 路径已经被干掉了,啥命令都不好使。万幸的是,看日志能发现数据盘空间和 /home 占用没变,数据还在,去机房进 liveCD 把原来 /home 的数据拷到数据盘,重做系统,除了浪费了点时间,基本没啥损失。
    下次谁也不给 root 权限了 :(
    liuzhedash
        29
    liuzhedash  
       2023-04-20 12:27:29 +08:00
    @villivateur

    之前在知乎还是哪看过一个帖子,这种情况其实传都不好传,因为没法新建 ssh 连接了。最后是把一个静态链接的 busybox 的每个字节用 printf 重定向到一个文件里
    fuge
        30
    fuge  
       2023-04-20 12:39:16 +08:00
    @duzhuo 什么是 SL 大法,google 了一下只搜到了游戏相关。
    kennyCoretek
        31
    kennyCoretek  
       2023-04-20 12:58:09 +08:00
    @Les1ie 我一直以为这只是个段子...
    corcre
        32
    corcre  
       2023-04-20 13:11:29 +08:00
    @fuge #30 就是那个游戏相关的...进行有风险的操作之前先保存, 凉了就读档
    misaka
        33
    misaka  
       2023-04-20 13:11:33 +08:00
    工控机用 arch ?真的假的
    misaka
        34
    misaka  
       2023-04-20 13:12:08 +08:00
    @fengleiyidao 公司内部服务器用 arch 还行
    corcre
        35
    corcre  
       2023-04-20 13:16:18 +08:00   2
    我在老东家的时候, 有个客户说空间满了, 存不了数据了, 然后某运维(老板的亲戚, 专业不相关, 没有相关运维经验), 拿着硬盘就跑到客户那里, 带电从客户的 NAS 里面拔了一个硬盘下来...然后接新硬盘无法启动, 把原来的硬盘接回去还是无法启动, 数据丢没丢忘了, 反正那天从主管到大老板一个个的轮流跑到客户那里挨骂
    mrzx
        36
    mrzx  
       2023-04-20 13:22:05 +08:00
    这年头什么人都有,

    我们做运维的见过程序员离奇的操作多了去了。。。最后还要帮他们擦屎,今年我去学开发去了,说实话,公司里面的程序员们给我了很大的信心。。
    nba2k9
        37
    nba2k9  
       2023-04-20 13:34:55 +08:00
    Linux 环境中敲命令真的得慎重,哎
    mosliu
        38
    mosliu  
       2023-04-20 13:37:35 +08:00
    还以为一条指令把硬件废了呢 还想着进来学习下技术。
    能修复叫啥再也没法正常启动啊。。。
    DCELL
        39
    DCELL  
       2023-04-20 13:43:44 +08:00
    @Les1ie 您说的这个操作不就是我么~ 这一天我都冷汗直冒,饭都没吃
    adoal
        40
    adoal   2023-04-20 13:45:23 +08:00
    @ianEros 我以前有个同事把 Linux 的 libc 上传到远程服务器覆盖了 Solaris 的 libc……
    lovelylain
        41
    lovelylain  
       2023-04-20 13:45:54 +08:00 via Android
    去年翻出一个旧笔记本,里面有个 arch 系统,5 年没用过了,ssh 支持的密码协议比较老旧不支持在用的客户端程序,于是想升级到最新系统,之前装的 yaourt 已经淘汰多年,直接 pacman 也不兼容新的包格式,参考网上帖子下载静态库的 pacman ,能用,于是更新了 pacman ,但是更新系统时挂了,因为部分库被替换后无法 dns 解析,没法继续下载,后来试着挂了个代理绕过 dns ,果然有效,顺利更新到了最新版本。
    lovelylain
        42
    lovelylain  
       2023-04-20 13:52:20 +08:00 via Android
    @duzhuo btrfs 的快照不就相当于 SL 大法么,我的 openwrt 就是这么折腾的
    fantathat
        43
    fantathat  
       2023-04-20 13:52:29 +08:00 via iPhone
    工控机是啥?工业上控制东西的机器吗?
    为啥 linux 一碰就死,灵活度太大了吗
    cstj0505
        44
    cstj0505  
       2023-04-20 13:59:06 +08:00
    折腾显卡驱动把内核删了
    在一个目录下删除,结果 cd 打错没切过去,直接 rm -rf *把 home 目录删除了,这台机器是我的工作电脑
    xiaoranj
        45
    xiaoranj  
       2023-04-20 14:02:18 +08:00
    @fengleiyidao 6 ,服务器也滚着玩儿
    Rooger
        46
    Rooger  
       2023-04-20 14:22:05 +08:00
    @mrzx 导致执行 rm / 的结果可能有很多

    最常见的就是 rm $LOG_PATH/,结果 LOG_PATH 环境变量并未设置,有很多小白用户用的正好是 root 用户,或者是在命令前面加了 sudo
    flush9f
        47
    flush9f  
       2023-04-20 14:33:56 +08:00
    @duke807 我司也用 gentoo ,客户机器太多已经没办法维护了。
    dddd1919
        48
    dddd1919  
       2023-04-20 14:35:43 +08:00
    以前用 ubuntu 开发,下班后到生产服务器上更新个配置文件,然后习惯性的 shutdown -h now ,等了会发现电脑没反应。。。
    ruidoBlanco
        49
    ruidoBlanco  
       2023-04-20 14:50:49 +08:00   1
    @dddd1919 这锅基本得 systemd 背,我用 arch 也偶有这种事情。
    xsen
        50
    xsen  
       2023-04-20 15:49:39 +08:00
    曾经误操作做: sudo rm -rf /lib 。。。。。。
    其实我本意是:sudo rm -rf ./lib

    最后还是通过 livecd 进入系统,然后从别的系统拷贝 lib 过来
    mrzx
        51
    mrzx  
       2023-04-20 16:37:16 +08:00
    @Rooger 我还是是小白的时候,知道个最简单的人生道理,不要碰自己不熟悉的东西,或者说最起码弄懂了在去碰.
    villivateur
        52
    villivateur  
    OP
       2023-04-20 17:04:41 +08:00
    @misaka 是 Ubuntu 系的,arch 是下面有人评论的
    user100saysth
        53
    user100saysth  
       2023-04-20 17:13:10 +08:00 via iPhone
    @liubaicai 我是打开了一下防火墙,然后屏幕就转圈了。
    bluetree2039
        54
    bluetree2039  
       2023-04-20 17:49:39 +08:00 via iPhone
    @mrzx 我刚毕业出现过这个问题,不是直接写这个命令,是脚本有 bug 导致动态生成了这个命令并执行了。客户的网站没了,
    还好老板技术能力强,通宵搞定了
    flyqie
        55
    flyqie  
       2023-04-20 20:43:55 +08:00
    @ruidoBlanco #49

    魔怔了?

    啥事都往 systemd 上推。。。

    shutdown -h now 本来不就是关机吗,有啥问题??
    flyqie
        56
    flyqie  
       2023-04-20 20:48:52 +08:00
    @dddd1919 #48

    哈哈哈,似曾相识的操作,命令发错机器。
    zfjdif
        57
    zfjdif  
       2023-04-21 01:15:16 +08:00
    曾经在自己玩儿的服务器上搞过 mv /*
    glouhao
        58
    glouhao  
       2023-04-21 08:16:22 +08:00
    @zfjdif 握手
    wm5d8b
        59
    wm5d8b  
       2023-04-21 08:35:53 +08:00 via Android
    @mrzx 大多数所谓的程序员,只是根据《 xxx 语言入门》这本手册敲击键盘,并不知道自己在干嘛,至于为什么当程序员,因为 朋友 /公众号 /培训班 都说这份敲键盘的活赚得多
    XuanYuan
        60
    XuanYuan  
       2023-04-21 09:31:07 +08:00   1
    突然想起,某次在一个展会上,亲眼看着有人用蓝牙鼠标关掉了 iMac 的蓝牙。
    Senorsen
        61
    Senorsen  
       2023-04-21 11:43:58 +08:00 via iPhone
    哈哈,上大学时在自己笔记本 Linux 上做过一模一样的事情,后来好像也是找了个 U 盘启动 Live CD 进去,挂盘把文件改回来。拆硬盘也太麻烦了点
    genicsoft123
        62
    genicsoft123  
       2023-04-21 1205:13 +08:00
    所以,全部虚拟化然后,安全不够,快照来凑
    akzmmd
        63
    akzmmd  
       2023-04-21 17:19:35 +08:00
    改过 ssh 文件,直接导致没法远程登录了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3581 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:08 PVG 08:08 LAX 17:08 JFK 20:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86