`

第二十二章 启动过程的问题解决

 
阅读更多
很多时候,我们可能因为做了某些配置,或者是因为不正常关机 (例如未经通知的停电等等) 而导致系统的 filesystem 错乱,此时,Linux 可能无法顺利启动成功,那怎么办呢?难道要重灌?当然不需要啦! 进入 run level 1 (单人维护模式) 去处理处理,应该就 OK 的啦!底下我们就来谈一谈如何处理几个常见的问题!

忘记 root 口令的解决之道

大家都知道鸟哥的记忆力不佳,容易忘东忘西的,那如果连 root 的口令都忘记了,怎么办? 其实在 Linux 环境中 root 口令忘记时还是可以救回来的!只要能够进入并且挂载 / , 然后重新配置一下 root 的口令,就救回来啦!这是因为启动流程中,若强制核心进入 runlevel 1 时, 默认是不需要口令即可取得一个 root 的 shell 来救援的。整个动作有点像这样:

1.重新启动!一定要重新启动!怎么重开都没关系;

在启动进入 grub 菜单后, (1)在你要进入的菜单上面点 'e' 进入详细配置; (2)将光棒移动到 kernel 上方并点 'e' 进入编辑画面; (3)然后出现如下画面来处理:

grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet single


重点就是那个特殊字体的咚咚啦!按下 [enter] 再按下 b 就能够启动进入单人维护模式了。

进入单人维护模式后,系统会以 root 的权限直接给你一个 shell ,此时你就能够运行『 passwd 』这个命令来重建 root 的口令啦!然后直接『 init 5 』就可以切换成为 X 窗口介面罗!就是这么简单。

init 配置档错误

前一个 root 口令挽救的方法其实可以用在很多地方,唯一一个无法挽救的情况,那就是 /etc/inittab 这个文件配置错误导致的无法启动!根据启动流程,我们知道 runlevel 0~6 都会读取 /etc/inittab 配置档, 因此你使用 single mode (runlevel 1) 当然也是要读取 /etc/inittab 来进行启动的。那既然无法进入单人维护模式, 就表示这题无解罗?非也非也,既然默认的 init 无法运行,那我们就告诉核心不要运行 init ,改呼叫 bash 啊! 可以略过 init 吗?可以的,同样在启动进入 grub 后,同样在 grub edit 的情况下这样做:

grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet init=/bin/bash


因为我们指定了核心呼叫的第一支程序 (init) 变成 /bin/bash,因此 /sbin/init 就不会被运行。 又根据启动流程的说明,我们知道此时虽然可以利用 root 取得 bash 来工作,但此时 (1)除了根目录外,其他的目录都没有被挂载; (2)根目录被挂载成为唯读状态。因此我们还需要进行一些动作才行!如下所示:

tu

鸟哥仅下达两个命令,『 mount -o remount,rw / 』用途是将根目录重新挂载成为可读写,至於『 mount -a 』则是参考 /etc/fstab 的内容重新挂载文件系统! 此时你又可以启动进行救援的工作了!只是救援完毕后,你得要使用『 reboot 』重新启动一次才行!

BIOS 磁碟对应的问题 (device.map)

由於目前硬盘很便宜啊,所以很多朋友就想说:『那我能不能将 Windows 安装在 /dev/hda 而 Linux 安装在 /dev/hdb , 然后调整 BIOS 的启动装置顺序,如此则两套系统各有各的 loader 安装在个别硬盘的 MBR 当中了!』。 这个想法非常好,如此一来两者就不会互相干扰,因为每颗磁碟的 MBR 个别有不同操作系统的 loader 嘛! 问题是,grub 对磁碟的装置代号使用的是侦测到的顺序啊! 也就是说,你调整了 BIOS 磁碟启动顺序后,你的 menu.lst 内的装置代号就可能会对应到错误的磁碟上了!啊!真想哭!

没关系的,我们可以透过 /boot/grub/device.map 这个文件来写死每个装置对 grub 磁碟代号的对应喔! 举例来说,鸟哥的这个文件内容如下:

[root@www ~]# cat /boot/grub/device.map
(fd0)   /dev/fd0
(hd0)   /dev/hda


如果你不清楚如何处理的话,也可以利用 grub-install 的功能喔!例如:

[root@www ~]# grub-install --recheck /dev/hda1


这样 device.map 就会主动的被升级了!这样了解乎?

因文件系统错误而无法启动

如果因为配置错误导致无法启动时,要怎么办啊?这就更简单了!最容易出错的配置而导致无法顺利启动的步骤,通常就是 /etc/fstab 这个文件了,尤其是使用者在实作 Quota 时,最容易写错参数, 又没有经过 mount -a 来测试挂载,就立刻直接重新启动,真要命!无法启动成功怎么办? 这种情况的问题大多如下面的画面所示:

tu

看到最后两行,他说可以输入 root 的口令继续加以救援喔!那请输入 root 的口令来取得 bash 并以 mount -o remount,rw / 将根目录挂载成可读写后,继续处理吧!其实会造成上述画面可能的原因除了 /etc/fstab 编辑错误之外,如果你曾经不正常关机后,也可能导致文件系统不一致 (Inconsistent) 的情况, 也有可能会出现相同的问题啊!如果是磁区错乱的情况,请看到上图中的第二行处, fsck 告知其实是 /dev/md0 出错, 此时你就应该要利用 fsck 去检测 /dev/md0 才是!等到系统发现错误,并且出现『clear [Y/N]』时,输入『 y 』吧!

这个 fsck 的过程可能会很长,而且如果你的 partition 上面的 filesystem 有过多的数据损毁时, 即使 fsck 完成后,可能因为伤到系统槽,导致某些关键系统文件数据的损毁,那么依旧是无法进入 Linux 的。此时,就好就是将系统当中的重要数据复制出来,然后重新安装,并且检验一下, 是否实体硬盘有损伤的现象才好!不过一般来说,不太可能会这样啦~ 通常都是 fsck 处理完毕后,就能够顺利再次进入 Linux 了。

利用 chroot 切换到另一颗硬盘工作

仔细检查一下,你的 Linux 里面应该会有一个名为 chroot 的命令才对!这是啥? 这是『 change root directory 』的意思啦!意思就是说,可以暂时将根目录移动到某个目录下, 然后去处理某个问题,最后再离开该 root 而回到原本的系统当中。

举例来说,补习班中心最容易有两三个 Linux 系统在同一个主机上面,假设我的第一个 Linux 无法进入了,那么我可以使用第二个 Linux 启动,然后在第二个 Linux 系统下将第一个 Linux 挂载起来, 最后用 chroot 变换到第一个 Linux ,就能够进入到第一个 Linux 的环境当中去处理工作了。

你同样也可以将你的 Linux 硬盘拔到另一个 Linux 主机上面去,然后用这个 chroot 来切换, 以处理你的硬盘问题啊!那怎么做啊?粉简单啦!

用尽任何方法,进入一个完整的 Linux 系统 ( run level 3 或 5 );

假设有问题的 Linux 磁碟在 /dev/hdb1 上面,且他整个系统的排列是:
挂载点   装置档名
/     → /dev/hdb1
/var  → /dev/hdb2
/home → /dev/hdb3
/usr  → /dev/hdb5
若如此的话,那么在我目前的这个 Linux 底下,我可以创建一个目录,然后可以这样做:
挂载点           装置档名
/chroot/      → /dev/hdb1
/chroot/var/  → /dev/hdb2
/chroot/home/ → /dev/hdb3
/chroot/usr/  → /dev/hdb5
全部挂载完毕后,再输入『 chroot /chroot 』嘿嘿!你就会发现,怎么根目录 (/) 变成那个 /dev/hdb1 的环境啦!这样说明,了了吗? ^_^


转自:http://vbird.dic.ksu.edu.tw/linux_basic/0510osloader_4.php
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linux驱动 第22章

    在Linux驱动程序开发中,第22章通常会聚焦于驱动程序的调试技术与工具,这对于理解和优化系统性能至关重要。本章将深入探讨如何利用Linux内核提供的工具以及一些通用的调试方法来诊断和修复驱动问题。 首先,我们...

    第6章-Hadoop HA集群启动.pdf

    通过 Hadoop 管理工具和日志文件持续监控系统状态,及时发现并解决问题。 #### 1.5.2. 实验任务二:HA 的测试 在 HA 集群启动后,测试故障切换机制,模拟主 NameNode 或 ResourceManager 故障,观察备用节点是否能...

    疯狂Android讲义第二版光盘源码(第十六到十九章)

    《疯狂Android讲义第二版》是一本深受Android开发者喜爱的技术书籍,其附带的光盘源码对于深入理解和实践书中讲解的知识至关重要。这次分享的是该书第十六到十九章的源代码,涵盖了Android开发中的关键概念和技术。...

    操作系统第三章内存管理习题详细解答

    #### 第二十二题:页式存储管理的特点 题目解释了在页式存储管理中,作业被分页的具体时机是在装入内存时,由操作系统自动完成。这种方式使得程序员无需关注具体的分页细节。 #### 第二十三题:动态链接与分段存储...

    九年级物理全册第二十二章第4节能源与可持续发展习题课件新版新人教版

    在九年级物理的全册中,第二十二章第4节“能源与可持续发展”为我们提供了相关知识的启蒙和探索,本节通过详细的内容讲解和习题练习,帮助学生深入理解能源转化的方向性、能源的分类、未来能源的理想特征、能源消耗...

    Java语言程序设计教程课件第十一章多线程程序设计

    接下来,通过实践编写多线程程序,理解线程的生命周期,掌握多线程的同步处理和同步问题解决方法。在实际编码时,选择合适的构造方式,通过继承Thread类或者实现Runnable接口来创建线程,并且注意线程的启动和执行...

    Linux命令从入门到精通二十一到三十章

    第二十二章:文件权限与所有权 Linux系统中的文件和目录都有严格的权限设置,这章将深入讨论`chmod`、`chown`和`chgrp`命令。`chmod`用于改变文件或目录的权限,`chown`和`chgrp`则用于更改文件所有者和组。同时,...

    天津汇森中学高中物理必修二第八章《机械能守恒定律》检测题(答案解析).pdf

    10. 第十题分析了汽车启动过程中的动力学问题。汽车的位移、速度和功率的变化提供了求解牵引力、阻力、最大速度以及时间的信息。 11. 第十一题通过机械能随高度变化的图像,我们可以分析物体的运动状态和能量转换。...

    《发展经济学》马工程课件 12.第十二章 资本形成与金融发展.ppt

    《发展经济学》马工程课件中的第十二章探讨了资本形成与金融发展的重要主题,这是理解经济发展不可或缺的要素。资本形成是指储蓄转化为投资的过程,它对于经济增长起着至关重要的作用。 首先,我们要区分广义和狭义...

    GUI应用程序开发第十二章

    GUI应用程序开发第十二章主要探讨了使用.NET Framework进行GUI应用的构建和部署。GUI,即图形用户界面,是用户与计算机交互的主要方式,通常包括窗口、按钮、文本框等控件。在本课件中,重点是讲解如何利用.NET ...

    第3章 Hadoop 2 3.1. 简介 2 3.1.1. 概述 2 3.2. 环境搭建 2 3.2.1. 搭建过程总览 2

    3.2.11. 第二台和第三台虚拟机重复以上设置 10 3.2.12. 三台机器拍摄快照 10 3.2.13. 三台虚拟机关闭防火墙 11 3.2.14. 三台虚拟机关闭selinux 13 3.2.15. 三台虚拟机设置免密登陆 14 3.2.16. 三台虚拟机设置时钟...

    计算机第1章理论题汇总及解答.doc

    【计算机第1章理论题汇总及解答】 1. 信息(information)是指反映物质及其运动属性及特征的原始事实。它不是数据本身,也不是人们关心的事情的消息,更不是记录下来的可鉴别的符号。 2. 信息资源的开发和利用已经...

    PMP思维导图第一章引论

    根据PMI的《项目管理知识体系指南》(PMBOK),项目管理包含了五个过程组:启动过程组、规划过程组、执行过程组、监控过程组和收尾过程组。每个过程组都包含了一系列相互关联的活动,确保项目的顺利进行。 三、项目...

    微处理器系统结构与嵌入式系统第十一章PPT学习教案.pptx

    第二阶段(Stage2)则多用C语言实现,进行更复杂的硬件初始化、内存检测、内核和文件系统镜像的加载,以及设置内核启动参数。 在具体的微处理器系统中,比如三星的S3C2440,可以通过OM[1:0]引脚设置启动方式,支持从...

    51单片机C语言教程 第二十章ISD400x系列语音芯片应用

    《51单片机C语言教程》第二十章聚焦于ISD400x系列语音芯片的应用,这一章深入探讨了如何使用51单片机进行语音处理与控制。51单片机作为微控制器领域中的经典型号,以其简单易用、性价比高的特点广泛应用于各类电子...

    21第二十一章执行程序的特别规则.pptx

    通过这些规则的合理运用,不仅可以预防和解决执行过程中的问题,还能增强司法公信力,维护法律的严肃性和权威性。随着法律实践的不断深入,我们有理由相信,对这些规则的进一步理解与运用将有助于构建更加完善的执行...

    计算机操作系统课后答案第九章习题解答.pdf

    计算机操作系统课后答案第九章习题解答.pdf 本资源是计算机操作系统课程的第九章习题解答,涵盖了MS-DOS操作系统的基本概念、存储管理、进程管理、文件系统和设备管理等方面的知识点。 一、MS-DOS操作系统的基本...

    操作系统第三章课后答案

    ### 操作系统第三章课后答案解析 #### 第三章 处理机调度与死锁 **1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?** **高级调度的主要任务:** 高级调度是操作系统内核管理部分的重要功能之一,...

Global site tag (gtag.js) - Google Analytics