- 浏览: 595504 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
很多时候,我们可能因为做了某些配置,或者是因为不正常关机 (例如未经通知的停电等等) 而导致系统的 filesystem 错乱,此时,Linux 可能无法顺利启动成功,那怎么办呢?难道要重灌?当然不需要啦! 进入 run level 1 (单人维护模式) 去处理处理,应该就 OK 的啦!底下我们就来谈一谈如何处理几个常见的问题!
忘记 root 口令的解决之道
大家都知道鸟哥的记忆力不佳,容易忘东忘西的,那如果连 root 的口令都忘记了,怎么办? 其实在 Linux 环境中 root 口令忘记时还是可以救回来的!只要能够进入并且挂载 / , 然后重新配置一下 root 的口令,就救回来啦!这是因为启动流程中,若强制核心进入 runlevel 1 时, 默认是不需要口令即可取得一个 root 的 shell 来救援的。整个动作有点像这样:
1.重新启动!一定要重新启动!怎么重开都没关系;
在启动进入 grub 菜单后, (1)在你要进入的菜单上面点 'e' 进入详细配置; (2)将光棒移动到 kernel 上方并点 'e' 进入编辑画面; (3)然后出现如下画面来处理:
重点就是那个特殊字体的咚咚啦!按下 [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 的情况下这样做:
因为我们指定了核心呼叫的第一支程序 (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 磁碟代号的对应喔! 举例来说,鸟哥的这个文件内容如下:
如果你不清楚如何处理的话,也可以利用 grub-install 的功能喔!例如:
这样 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
忘记 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 ubuntu配置SSH免密登陆
2017-05-05 16:15 4591、安装 Ubuntu14.04默认安装了ssh-client ... -
Linux ubuntu虚拟机连接上网总结
2017-05-05 13:37 5101.首先查看主机的ip信息 ipconfig /all ... -
Linux七个运行级别
2015-03-03 09:20 540运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具 ... -
第二十四章 CentOS 系统配置工具: setup
2014-10-30 20:05 671系统配置除了使用手动 ... -
第二十二章 Boot Loader: Grub
2014-10-27 19:44 566在看完了前面的整个启 ... -
第二十二章 核心与核心模块
2014-10-23 19:28 341谈完了整个启动的流程 ... -
第二十二章 Linux 的启动流程分析
2014-10-22 20:08 389启动不是只要按一下电 ... -
第二十一章 管理的抉择:RPM 还是 Tarball
2014-10-20 19:24 498这一直是个有趣的问题 ... -
第二十一章 YUM 线上升级机制
2014-10-15 19:33 524我们在本章一开始的地方谈到过 yum 这玩意儿,这个 yum ... -
第二十一章 SRPM 的使用 : rpmbuild
2014-10-14 19:44 954谈完了 RPM 类型的软件之后,再来我们谈一谈包含了 Sour ... -
第二十一章 RPM 软件管理程序: rpm
2014-10-13 20:10 448RPM 的使用其实不难,只要使用 rpm 这个命令即可!鸟哥最 ... -
第二十章 函式库管理
2014-10-13 19:25 474在我们的 Linux 操作系统 ... -
第二十章 Tarball 的管理与建议
2014-10-10 19:54 489在我们知道了原始码的 ... -
第二十章 用 make 进行巨集编译
2014-10-09 20:04 527在本章一开始我们提到过 make 的功能是可以简化编译过程里面 ... -
第二十章 开放源码的软件安装与升级简介
2014-10-09 19:47 437如果鸟哥想要在我的 Lin ... -
第十九章 分析登录文件
2014-10-08 19:34 406登录文件的分析是很重要的!你可以自行以 vi 进入登录文 ... -
第十九章 登录文件的轮替(logrotate)
2014-10-08 19:28 511假设我们已经将登 ... -
第十九章 syslogd :记录登录文件的服务
2014-09-28 20:11 678刚刚提到说 Linux 的登录文件主要是由 syslogd 在 ... -
第十八章 系统开启的服务
2014-09-25 19:33 714好了,现在假设你已经知道了 daemons 的启动文件放置的目 ... -
第十八章 服务的防火墙管理 xinetd, TCP Wrappers
2014-09-24 19:47 548一般来说,系统的防火 ...
相关推荐
在Linux驱动程序开发中,第22章通常会聚焦于驱动程序的调试技术与工具,这对于理解和优化系统性能至关重要。本章将深入探讨如何利用Linux内核提供的工具以及一些通用的调试方法来诊断和修复驱动问题。 首先,我们...
通过 Hadoop 管理工具和日志文件持续监控系统状态,及时发现并解决问题。 #### 1.5.2. 实验任务二:HA 的测试 在 HA 集群启动后,测试故障切换机制,模拟主 NameNode 或 ResourceManager 故障,观察备用节点是否能...
《疯狂Android讲义第二版》是一本深受Android开发者喜爱的技术书籍,其附带的光盘源码对于深入理解和实践书中讲解的知识至关重要。这次分享的是该书第十六到十九章的源代码,涵盖了Android开发中的关键概念和技术。...
#### 第二十二题:页式存储管理的特点 题目解释了在页式存储管理中,作业被分页的具体时机是在装入内存时,由操作系统自动完成。这种方式使得程序员无需关注具体的分页细节。 #### 第二十三题:动态链接与分段存储...
接下来,通过实践编写多线程程序,理解线程的生命周期,掌握多线程的同步处理和同步问题解决方法。在实际编码时,选择合适的构造方式,通过继承Thread类或者实现Runnable接口来创建线程,并且注意线程的启动和执行...
第二十二章:文件权限与所有权 Linux系统中的文件和目录都有严格的权限设置,这章将深入讨论`chmod`、`chown`和`chgrp`命令。`chmod`用于改变文件或目录的权限,`chown`和`chgrp`则用于更改文件所有者和组。同时,...
10. 第十题分析了汽车启动过程中的动力学问题。汽车的位移、速度和功率的变化提供了求解牵引力、阻力、最大速度以及时间的信息。 11. 第十一题通过机械能随高度变化的图像,我们可以分析物体的运动状态和能量转换。...
《发展经济学》马工程课件中的第十二章探讨了资本形成与金融发展的重要主题,这是理解经济发展不可或缺的要素。资本形成是指储蓄转化为投资的过程,它对于经济增长起着至关重要的作用。 首先,我们要区分广义和狭义...
GUI应用程序开发第十二章主要探讨了使用.NET Framework进行GUI应用的构建和部署。GUI,即图形用户界面,是用户与计算机交互的主要方式,通常包括窗口、按钮、文本框等控件。在本课件中,重点是讲解如何利用.NET ...
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章理论题汇总及解答】 1. 信息(information)是指反映物质及其运动属性及特征的原始事实。它不是数据本身,也不是人们关心的事情的消息,更不是记录下来的可鉴别的符号。 2. 信息资源的开发和利用已经...
根据PMI的《项目管理知识体系指南》(PMBOK),项目管理包含了五个过程组:启动过程组、规划过程组、执行过程组、监控过程组和收尾过程组。每个过程组都包含了一系列相互关联的活动,确保项目的顺利进行。 三、项目...
第二阶段(Stage2)则多用C语言实现,进行更复杂的硬件初始化、内存检测、内核和文件系统镜像的加载,以及设置内核启动参数。 在具体的微处理器系统中,比如三星的S3C2440,可以通过OM[1:0]引脚设置启动方式,支持从...
执行异议则是当事人、利害关系人或第三人在执行过程中对执行行为或执行标的提出的异议。根据性质,异议可分为程序性和实体性两种。程序性异议通常涉及执行行为的合法性,由执行案件当事人或利害关系人在执行程序开始...
《51单片机C语言教程》第二十章聚焦于ISD400x系列语音芯片的应用,这一章深入探讨了如何使用51单片机进行语音处理与控制。51单片机作为微控制器领域中的经典型号,以其简单易用、性价比高的特点广泛应用于各类电子...
计算机操作系统课后答案第九章习题解答.pdf 本资源是计算机操作系统课程的第九章习题解答,涵盖了MS-DOS操作系统的基本概念、存储管理、进程管理、文件系统和设备管理等方面的知识点。 一、MS-DOS操作系统的基本...
### 操作系统第三章课后答案解析 #### 第三章 处理机调度与死锁 **1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?** **高级调度的主要任务:** 高级调度是操作系统内核管理部分的重要功能之一,...
### 第十二章 危机型公共关系实务 #### 危机公共关系定义 危机公共关系是指在发生危机事件时,组织采用公共关系手段来减少危机对其自身及公众带来的负面影响,寻求公众的理解和支持,以重塑和维护组织形象的过程。 ...