排错troubleshooting:分4部分。
http://www.dbtan.com/2009/10/linux-troubleshooting.html ⑴ boot 启动问题。 ⑵ local 系统本地问题。 ⑶ network 网络问题。 ⑷ server 服务问题。
这里只先总结前3部分问题的排错,server服务问题会在搭建服务器时提及。 一、boot 启动问题:
启动步骤:BIOS→bootloader(启动引导器,grub)→kernel→init。 始前时代:init之前是始前时代。
⒈ bios读取MBR时,MBR坏掉了,进行修复。
注:MBR前446字节MBC(主引导代码)坏时,如同新的硬盘什么都没写一样,此时,是可修复的。如果,之后的64字节(DPT分区表)坏了就无法修复了。 破坏MBR方法:
[root@newrhel5: ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out
446 bytes (446 B) copied, 0.000557676 seconds, 800 kB/s
修复方法:(2种:①光盘引导启动;②U盘引导启动)
① 用光盘引导启动,进入rescue修复模式→chroot重新挂载/根分区→grub-install /dev/sda 重装sba,修复MBR。 方法1: ⑴ 破坏MBR:
[root@newrhel5: ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1
1+0 records in 1+0 records out
446 bytes (446 B) copied, 0.000557676 seconds, 800 kB/s ⑵ 光盘引导启动:
光盘rescue修复模式已经init了,有udev(在内核中,加设备文件) 进入linux rescue修复模式。
⑴ 进入linux rescue修复模式 ⑵ 选择美式键盘
⑶ 选择语言为英语 ⑷ 安装网络
⑸ 设置网络IP地址 ⑹光盘rescue修复模式会自动把/根分区挂载到/mnt/sysimage/目录下。
⑺ 看光盘修复模式自动挂载的分区 ⑻ 切换/根分区;重装sda,修复MBR sh-3.1#chroot /mnt/sysimage sh-3.1#grub-install /dev/sda
此时,重启系统即开正常引导进入系统!!! 方法2:
⑴ 如果在MBR被损坏前已把MBR备份到第三方存储设备中(如:U盘中)。 [root@newrhel5: ~]# dd if=/dev/sda of=/mnt/u/mbr.file bs=446 count=1 1+0 records in 1+0 records out
446 bytes (446 B) copied, 0.00138103 seconds, 323 kB/s ⑵ 用光盘引导进入rescue修复模式,再dd还回/dev/sda即可。 sh-3.1#dd if=/mnt/u/mbr.file of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out
446 bytes (446 B) copied, 0.00138103 seconds, 323 kB/s 此时,重启系统即开正常引导进入系统!!!
② 用做好的U盘引导盘引导系统,手动挂载进行修复MBR。
sh-3.1# mount -n -o remount,rw / -n:则不更新/etc/mtab sh-3.1# cd /mnt sh-3.1# mkdir boot sh-3.1# PATH=/bin:/sbin
sh-3.1# mount /dev/sda2 /mnt 挂载/根分区与/boot分区 sh-3.1# mount /dev/sda1 /mnt/boot sh-3.1# mount -t proc none /proc
sh-3.1# mknod /dev/sda b 8 0 创建设备文件 sh-3.1# mknod /dev/sda1 b 8 1 sh-3.1# mknod /dev/sda2 b 8 2
sh-3.1# /usr/sbin/chroot /dev/sda 切换/根分区 sh-3.1# /sbin/grub-install /dev/sda 重装sda,修复MBR 此时,重启系统即开正常引导进入系统!!! ⒉ bootloader启动引导器的修复。 修改/boot/grub/grub.conf配置文件
[root@newrhel5: ~]# vim /boot/grub/grub.conf # grub.conf generated by anaconda #
# Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-version.img
#boot=/dev/sda default=1 timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu
title Red Hat Enterprise Linux Server (2.6.24) root (hd0,0)
kernel /vmlinuz-2.6.24 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.24.img
title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.18-8.el5.img
⒊ init的修复。(用单用户模式都可搞定) ⑴ 设置/etc/inittab配置文件 说明:默认有7种运行级别。
此配置文件是以“:”分隔的4段格式。 例:
l1:1:wait:/etc/rc.d/rc 1 第一段:标记(ID):1~4字符。 第二段:runlevel 运行级别。
第三段:描述,有wait、sysinit、respawn可重生。 第四段:要执行的脚本。 深入学习要看以下系统脚本: