设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 27|回复: 10

快速修复一个Panic的Linux内核的技巧

[复制链接]

3

主题

28

回帖

124

积分

注册会员

积分
124
发表于 2024-4-20 10:30:48 | 显示全部楼层 |阅读模式
感谢脚本之家网友 鸢一雨音 的投稿
写这篇文章是有原因的。为了配置完全的静默启动,笔者对自己的工作计算机上运行的Linux执行了不当的mkinitcpio操作,原因是忽略了mkinitcpio.conf文件中的一处逻辑错误。这使得mkinitcpio生产了新的内核文件,但这个内核文件不能正常工作。重启的时候,内核启动中止于Panic状态。

一般情况下,新内核不能正常工作时,可以通过使用initramfs内核文件的fallback版本来临时启动系统,甚至可以直接将fallback版本覆盖回去以回退更改,但这次要命的是,mkinitcpio同时修改了vmlinuz内核文件,而且vmlinuz没有fallback版本。对于一般用户,可以直接重装系统解决;但是笔者的工作站环境配置相当复杂,这意味着除了可能损失我的工作文件之外,我还需要花费大量额外的时间来重配开发环境。
注意本教程之“修复”,指“尝试回退毁灭性的人为更改”,故不可用于恢复不知原因的内核崩溃。
一、从LiveCD启动并查看磁盘
凭着兼职Linux服务器运维那段时间积累的经验,我立即想到可以用LiveCD启动来获得一个临时的、用于修复内核的Linux环境。
笔者使用的是Arch Linux 64位版,所以我从从Arch Linux的LiveCD启动。正确进入LiveCD内建的root用户之后,我们需要查看自己的主硬盘的设备名。执行fdisk -l,在笔者的情况下,我的主硬盘、挂载至根目录的分区对应的设备文件是/dev/sdb2。
二、chroot至硬盘上的系统根目录
要chroot到硬盘上的系统根目录,并能正常调用硬盘上的系统组件对硬盘上的系统作出更改,我们首先要手动挂载硬盘上的根分区。执行(我的设备文件是/dev/sdb2):
mount /dev/sdb2 /mnt
先不要急。这时候chroot到/mnt虽然能进入硬盘上主系统的bash,但是你几乎不能正确完成任何复杂的任务,因为还有一些重要的目录没有挂载。我们执行指令,分别挂载proc目录、/sys目录、/dev目录和/run目录。进入/mnt,分别执行:
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
mount --rbind /run run/
这些目录的作用分别是:
proc目录:虚拟的、Procfs格式的文件系统,用于存放进程状态文件(在Linux下,这些文件表面看起来都是文本文件,实际上是进程状态的文件映射);
/sys目录:对于Arch Linux,这是一个类似proc目录的、Sysfs格式的虚拟文件系统,用于储存连接到系统的设备文件;对于传统Unix和类Unix,它是一个指向内核代码树的软链接;
/dev目录:储存设备文件,比如你的硬盘就是/dev/sdXY之类的;
/run目录:存放最近的启动之后系统的部分信息;
挂载了这些东西之后,我们可以chroot到我们的主硬盘的根目录了:
chroot /mnt
后悔药++。对于我来说,我只需要修改mkinitcpio.conf文件并重新执行mkinitcpio操作,就能重新生成正确的内核文件。一般的,如果是错误地修改了配置导致的内核Panic,这个环境可以解决大部分问题。
三、一些技巧
1、许多配置文件在LiveCD里的那个系统里有正确的版本或范本,如果不记得正常的时候是什么样子的,可以参照一下它们;
2、对于Arch Linux,可以在不chroot到/mnt的情况下,直接使用pacstrap指令对/mnt这个挂载点进行软件包管理;
3、可以在两个tty下操作,这样在chroot到/mnt下之后依然能从LiveCD的文件系统里向/mnt转移文件。
本教程应该对大部分Linux发行版都可用,希望能对部分Linux用户产生帮助。
相关推荐:
Linux系统怎么配置双显卡?

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1

主题

60

回帖

141

积分

注册会员

积分
141
发表于 2024-4-21 22:08:23 | 显示全部楼层
我不太确定,可能需要再确认一下。

1

主题

40

回帖

104

积分

注册会员

积分
104
发表于 2024-4-22 01:44:24 | 显示全部楼层
太棒了!感谢分享这个信息!

1

主题

58

回帖

137

积分

注册会员

积分
137
发表于 2024-5-5 07:36:05 | 显示全部楼层
说得太好了,完全同意!
  • 打卡等级:即来则安
  • 打卡总天数:20
  • 打卡月天数:0
  • 打卡总奖励:326
  • 最近打卡:2024-05-16 17:31:29

1

主题

33

回帖

461

积分

中级会员

积分
461

热心会员付费会员

发表于 2024-5-6 02:01:11 | 显示全部楼层
牛逼

0

主题

64

回帖

127

积分

注册会员

积分
127
发表于 2024-6-3 05:25:01 | 显示全部楼层
这个话题很有趣,我想多了解一些

4

主题

78

回帖

224

积分

中级会员

积分
224
发表于 2024-6-20 07:46:59 | 显示全部楼层
已测试,非常不错

2

主题

54

回帖

154

积分

注册会员

积分
154
发表于 2024-6-23 15:53:53 | 显示全部楼层
666666666666666666
  • 打卡等级:即来则安
  • 打卡总天数:26
  • 打卡月天数:0
  • 打卡总奖励:576
  • 最近打卡:2024-10-15 07:38:41

0

主题

108

回帖

958

积分

等待验证会员

积分
958
发表于 2024-6-25 02:10:37 | 显示全部楼层
我完全同意你的观点

0

主题

58

回帖

115

积分

注册会员

积分
115
发表于 2024-7-18 21:14:43 | 显示全部楼层
这个话题真是有趣,我也对它感兴趣。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 11:39 , Processed in 0.092850 second(s), 28 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表