kernel panic如何修复 如何修复一个Panic的Linux内核

如何修复一个Panic的Linux内核?Linux是一个一体化内核(monolithic kernel)系统 , 一些用户在操作Linux系统的过程中 , 有时候由于操作不当 , 会导致Linux内核不能正常工作 。最近就有一位用户由于操作问题 , 使得内核启动中止于Panic状态 , 那么要如何修复一个Panic状态的Linux内核呢?下面我们一起来看看 。
问题描述:
为了配置完全的静默启动 , 用户对工作计算机上运行的Linux执行了不当的mkinitcpio操作 , 原因是忽略了mkinitcpio 。conf文件中的一处逻辑错误 。这使得mkinitcpio生产了新的内核文件 , 但这个内核文件不能正常工作 。重启的时候 , 内核启动中止于Panic状态 。
一般情况下 , 新内核不能正常工作时 , 可以通过使用initramfs内核文件的fallback版本来临时启动系统 , 甚至可以直接将fallback版本覆盖回去以回退更改 , 但这次要命的是 , mkinitcpio同时修改了vmlinuz内核文件 , 而且vmlinuz没有fallback版本 。对于一般用户 , 可以直接重装系统解决;但是该用户的工作站环境配置相当复杂 , 这意味着除了可能损失用户的工作文件之外 , 用户还需要花费大量额外的时间来重配开发环境 。
注意:本教程之“修复” , 指“尝试回退毁灭性的人为更改” , 故不可用于恢复不知原因的内核崩溃 。
如何修复一个Panic的Linux内核?
一、从LiveCD启动并查看磁盘
【kernel panic如何修复 如何修复一个Panic的Linux内核】凭着兼职Linux服务器运维那段时间积累的经验 , 立即想到可以用LiveCD启动来获得一个临时的、用于修复内核的Linux环境 。
使用的是Arch Linux 64位版 , 所以从从Arch Linux的LiveCD启动 。正确进入LiveCD内建的root用户之后 , 我们需要查看自己的主硬盘的设备名 。执行fdisk -l , 在的情况下 , 的主硬盘、挂载至根目录的分区对应的设备文件是/dev/sdb2 。
二、chroot至硬盘上的系统根目录
要chroot到硬盘上的系统根目录 , 并能正常调用硬盘上的系统组件对硬盘上的系统作出更改 , 我们首先要手动挂载硬盘上的根分区 。执行(的设备文件是/dev/sdb2):

    推荐阅读