V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
villivateur
V2EX  ›  程序员

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

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

    公司一台 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  
       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 12:05:13 +08:00
    所以,全部虚拟化然后,安全不够,快照来凑
    akzmmd
        63
    akzmmd  
       2023-04-21 17:19:35 +08:00
    改过 ssh 文件,直接导致没法远程登录了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.