无论是身处学校还是步入社会,大家都尝试过写作吧,借助写作也可以提高我们的语言组织能力。大家想知道怎么样才能写一篇比较优质的范文吗?下面是小编为大家收集的优秀范文,供大家参考借鉴,希望可以帮助到有需要的朋友。
修复linux系统篇一
linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于panic状态,该怎么解决这个问题呢?以下是小编为大家搜索整理的快速修复一个panic的linux内核的技巧,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!
为了配置完全的静默启动,笔者对自己的工作计算机上运行的linux执行了不当的mkinitcpio操作,文件中的一处逻辑错误。这使得mkinitcpio生产了新的内核文件,但这个内核文件不能正常工作。重启的时候,内核启动中止于panic状态。
一般情况下,新内核不能正常工作时,可以通过使用initramfs内核文件的fallback版本来临时启动系统,甚至可以直接将fallback版本覆盖回去以回退更改,但这次要命的是,mkinitcpio同时修改了vmlinuz内核文件,而且vmlinuz没有fallback版本。对于一般用户,可以直接重装系统解决;但是笔者的工作站环境配置相当复杂,这意味着除了可能损失我的工作文件之外,我还需要花费大量额外的时间来重配开发环境。
注意:本教程之“修复”,指“尝试回退毁灭性的人为更改”,故不可用于恢复不知原因的内核崩溃。
凭着兼职linux服务器运维那段时间积累的经验,我立即想到可以用livecd启动来获得一个临时的、用于修复内核的linux环境。
笔者使用的是arch linux 64位版,所以我从从arch linux的livecd启动。正确进入livecd内建的root用户之后,我们需要查看自己的主硬盘的设备名。执行fdisk -l,在笔者的情况下,我的主硬盘、挂载至根目录的分区对应的设备文件是/dev/sdb2。
要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操作,就能重新生成正确的内核文件。一般的,如果是错误地修改了配置导致的内核panic,这个环境可以解决大部分问题。
1、许多配置文件在livecd里的那个系统里有正确的版本或范本,如果不记得正常的时候是什么样子的,可以参照一下它们;
2、对于arch linux,可以在不chroot到/mnt的情况下,直接使用pacstrap指令对/mnt这个挂载点进行软件包管理;
3、可以在两个tty下操作,这样在chroot到/mnt下之后依然能从livecd的文件系统里向/mnt转移文件。
本教程应该对大部分linux发行版都可用,希望能对部分linux用户产生帮助。
s("content_relate");【快速修复一个panic的linux内核的技巧】相关文章:
linux系统删除旧内核的方法
08-18
linux内核源代码的阅读和工具具体介绍09-04
教你快速学会安装linux系统08-15
教你快速了解linux系统下的proc目录08-22
linux命令查看内容的技巧08-30
linux的常识技巧有哪些08-30
excel2003乱码修复的技巧09-23
linux系统中快速查看进程pid的方法08-15
关于linux使用fdisk工具的技巧08-31
优化linux系统的参考技巧方法08-31