V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
shuiguomayi
V2EX  ›  Linux

manjaro 滚挂之后排查问题的线索?

  •  
  •   shuiguomayi · 349 天前 · 1609 次点击
    这是一个创建于 349 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果不小心已经把 manjaro 滚挂了, 经过调研,排查蛛丝马迹有

    1. 进入 grub 界面后修改内核参数, 去掉 quiet, 并且加上 verbose 和 single 参数, 让系统进入单用户模式, 并且展示详细的启动信息. 一般情况下, 这个方法能够获得很好的调试信息. 不过很不幸, 我这次滚挂了, 输出信息一直卡在"::running early hook [plymouth]", 就没有然后了. 此时轻按电源键, 显示"hibernate 你 consist memory map detected", "PM: hibernation: Image mismatch: architecture specific data", 然后几秒钟后关机.
    2. 使用 USB live 进入系统后, 用 manjaro-chroot 将损坏的系统 mount 进来, 去查看/var/log/boot.log, 这个可能是最好的线索了. 不过我这里很不幸, 里面全是 ok 的信息, 没有一条 warning 或者 error 的信息.
    3. 查看 dmesg,这个我觉得应该没有价值, 因为运行 dmsg 命令展示的是当前用 USB live 启动系统的信息.
    4. 使用 journalct -b 查看启动信息, 这个我也觉得应该没有价值, 查看的也是当前用 USB live 启动系统的信息.

    群友们, 还有其他调试线索可以看么?

    9 条回复    2023-12-30 03:57:15 +08:00
    hefish
        1
    hefish  
       349 天前
    重装。
    nlfiasel
        2
    nlfiasel  
       349 天前
    一般来说,先不用管 log ,不用 manjaro 所以不太清楚具体的操作。
    对于 arch 的话,把原系统挂在到 mnt 上,然后参照安装指南( https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97)走一部分(就是重新安装基础部分)
    一般就,执行一下 pacstrap -K /mnt base linux linux-firmware 就行
    另外 chroot 后 journalctl 看的是原系统的信息吧
    jasonyang9
        3
    jasonyang9  
       349 天前 via Android
    换 nixos 没烦恼😀
    wxyrrcj
        4
    wxyrrcj  
       348 天前
    一般不会挂吧 用了快两年还没遇到过
    dbskcnc
        5
    dbskcnc  
       348 天前
    我以前挂过一次,usb-live 进入 manjaro-chroot 重新 pacman -Syu 一次就 OK ,我那次是显卡驱动问题.

    前几天有个同事的 arch 是 zsh 不见了,而它的默认 shell 正好是 zsh,导致进入不了桌面,刚好有另外一个用户默认是 bash,进去后把 zsh 安装上就好了
    showgood163
        6
    showgood163  
       348 天前
    manjaro 不太清楚

    arch 底下,用 usb-live 启动,mount 分区之后,看/var/log/pacman.log 里面最后一次更新了哪些包
    然后去找 arch mirror archive ( tuna 就有)把相应包退回之前的版本就行
    keepwalk2020
        7
    keepwalk2020  
       348 天前
    如果只是正常滚挂,还可以进命令行的话,99%是因为显卡驱动,对应方法
    1 ,ctrl + shif + F3 进命令行,并登录, 如果开机就是命令行,忽略此步
    2 ,停 GDM 服务 sudo systemctl stop lightdm (要停的服务也可能是 gdm 或别的,取决于你装的是哪种桌面)
    3 ,用 wget 去官网下最新的 nvidia linux 驱动 :NVxxxxxx.run (也可以在别的电脑上下好驱动 copy 过来)
    4 ,sudo chmod +x Nvxxxxxx.run
    5, 安装驱动 sudo ./Nvxxxxxxxx.run
    重启

    如果是自己删了不应该删的库,那得找个高人才能恢复,费时费力,自己能做的就是用 manjaro'启动盘引导系统,插外接硬盘,把 home 下需要的文件备份到外接硬盘上,重装系统
    yanqiyu
        8
    yanqiyu  
       348 天前 via Android
    这个 hibernate 很可疑,我感觉是在试图从坏掉的 swap 来 resume ,要不你把 resume 相关的内核参数干掉看看,不行的话:


    加参数 splash=off plymouth.enable=0 disablehooks=plymouth 顺带去掉 quiet 之类的参数看看完整的日志

    要是在出现一堆绿色 OK 前就卡住了说明是 initrd 就炸了,否则是 rootfs 炸了,我不熟悉 Arch 的 initrd 但是这种情况下大概率只能设置 init 进去看发生了什么(手动触发 hook ,看到谁卡了,这时候我就会怀念 systemd ,可以 break 进去)

    要是 rootfs 炸了其实 journalctl 有用,可以告诉 journalctl 读取另外的目录的 journal 而不是 liveusb 的

    不我我同意上面说的,先试试切换 tty 看看是不是只是 gui 卡了
    yanqiyu
        9
    yanqiyu  
       348 天前 via Android
    disablehooks=resume 大概就能干掉 resume 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.