Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式

本文详细解析了Linux系统从加载BIOS到启动级别的整个流程,包括引导扇区、GRUB、内核加载、init进程等关键步骤。同时,介绍了启动故障的常见类型,如MBR问题和GRUB菜单故障,并提供了相应的解决方法,如重建MBR、修复GRUB配置等。
摘要由CSDN通过智能技术生成

Linux系统中启动的流程:

1.加载bios的硬件信息以及进行自我检测  并根据设置取得第一个启动的设备

2.若以硬盘方式引导  读取并执行引导扇区 MBR

3.加载grub(引导程序)启动菜单(/\)

4.+加载内核(以只读方式进行挂载)

5.挂载根目录系统  启动init进程(所有进程的鼻祖)

6.读取/etc/inittab配置文件

7.执行/etc/rc.d/rc.sysint脚本

8.根据/etc/initab文件下的启动级别执行/etc/rc.d/rc下的脚本

9.执行/etc/rc.d/rc.local(开机脚本  期望开机自动执行的指令可以放在这个脚本里)

分析/etc/inittab文件

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 #

2 # inittab       This file describes how the INIT process should set up

3 #               the system in a certain run-level.

4 #

5 # Author:       Miquel van Smoorenburg, 

6 #               Modified for RHS Linux by Marc Ewing and Donnie Barnes

7 #

8

9 # Default runlevel. The runlevels used by RHS are:

10 #   0 - halt (Do NOT set initdefault to this)#(10-16行指的是启动级别)#关机

11 #   1 - Single user mode#单用户模式  通常用于维护系统

12 #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#多用户模式 但是无网络

13 #   3 - Full multiuser mode#多用户模式(字符界面)

14 #   4 - unused#用户定义  ,未定义情况下与3级别相同

15 #   5 - X11#图形界面

16 #   6 - reboot (Do NOT set initdefault to this)#系统重启

17 #

18 id:3:initdefault:

#第一列表示表示怎么表示无所谓    第二列表示启动级别  第三列表示动作  第四列

表示参数   如果级别列无任何标示表示任何级别    该句话表示默认启动级别为三

19

20 # System initialization.

21 si::sysinit:/etc/rc.d/rc.sysinit

#参考十八行  第一列表示标示   第二列无表示 代表进入任何级别都要执行该指令    第三行表示动作  表示进行初始化   第四行表示执行/etc/rc.d/rc.sysinit脚本

22

23 l0:0:wait:/etc/rc.d/rc 0

24 l1:1:wait:/etc/rc.d/rc 1

24 l1:1:wait:/etc/rc.d/rc 1

25 l2:2:wait:/etc/rc.d/rc 2

26 l3:3:wait:/etc/rc.d/rc 3

27 l4:4:wait:/etc/rc.d/rc 4

28 l5:5:wait:/etc/rc.d/rc 5

29 l6:6:wait:/etc/rc.d/rc 6

#参考十八行   最后一个数字表示将此数字传递给/etc/rc.d/rc脚本

如传递3那么就会执行/etc/rc.d/rc3.d

30

31 # Trap CTRL-ALT-DELETE

32 ca::ctrlaltdel:/sbin/shutdown -t3 -r now

#参考十八行 表示在任何级别下都可以使用ctrl+alt+del执行/sbin/shutdown -r表示关机并重新启动系统,默认三秒后立即执行

33

34 # When our UPS tells us power has failed, assume we have a few minutes

35 # of power left.  Schedule a shutdown for 2 minutes from now.

36 # This does, of course, assume you have powerd installed and your

37 # UPS connected and working correctly.

38 pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

#系统断电后 执行/sbin/shutdown -h表示关机之后不重新启动-f表示重新启动不执行fsck 2分钟之后执行  并显示 提示信息

39

40 # If power was restored before the shutdown kicked in, cancel it.

41 pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

#电力恢复之后取消已经运行的shutdown指令  并提示信息

42

43

44 # Run gettys in standard runlevels

45 1:2345:respawn:/sbin/mingetty tty1

46 2:2345:respawn:/sbin/mingetty tty2

47 3:2345:respawn:/sbin/mingetty tty3

48 4:2345:respawn:/sbin/mingetty tty4

49 5:2345:respawn:/sbin/mingetty tty5

50 6:2345:respawn:/sbin/mingetty tty6

#/sbin/mingetty  表示产生字符终端  共六个字符终端respawn表示再生的意思  即当前的终端注销后  仍然在一个终端里

51

52 # Run xdm in runlevel 5

53 x:5:respawn:/etc/X11/prefdm -nodaemon

~

~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

~启动故障:

可分为两大阶段:

1.系统引导扇区MBR出现问题

2.Grub菜单出现问题

1.模拟MBR扇区出现故障

创建一个文件覆盖整个硬盘

[root@localhost ~]# dd  if=/dev/zero  of=/dev/sda   bs=446  count=1

1e9965205940370424ea391325ee28a8.png

MBR扇区被覆盖 引导程序抹掉了

3ba8a511e06336d7c7683ad72d36a527.png

解决方式:

重建MBR用可安装光盘引导

f8b36cd9dc7f4968ff6e4bdae1d11307.png

在此界面下进入急救模式输入linux  resuce

201962153adfe26f9da76f50fef438a2.png

选择语言

7bfab816aeb6f4f993fd1ed726a18db1.png

鼠标键盘类型

fa1ad1e90f666da9d92275bbd26d3d7b.png

是否启动网络功能  没有必要

0da9084b31d54807dcd34dcdc235e90a.png

关于急救模式的提示硬盘将会挂载在/mnt/p_w_picpath

8d4a0ea88aae787d0b04fea95acd7c61.png

提示将./mnt/sysp_w_picpath当做系统根目录使用chroot指令指定硬盘的根目录#chroot   /mnt/sysp_w_picpath

a215650b027c0aa264b7816c7b750a0e.png

修复分区表  执行grup指令#grub

3904d2fd8b147e8653dbd7fad167f1e2.png

1.先指明引导系统  执行root指令

#root (hd0,0)  (第一块硬盘,第一块分区)

783ac5afd25292616afbf140cc8edaa2.png

2.执行setup可以帮助重新建mbr#setuo  hd0

717b65bf94d1a20f2047494a3fce64e0.png

执行一次quit两次exit系统进行重新启动

1e1b36a5eda43a575667cca43fa8954e.png

二.GRUB引导菜单出现故障

查看/boot/grub

[root@localhost ~]# ll /boot/grub

b68d3534953af2ab11660ef70e5b3387.png

在所有文件中最为重要的是grub.conf文件

a8c09d8c40d54fdb282614295b29f7e3.png

----------------------------------------------------------------------------------------------------------------------

1 # grub.conf generated by anaconda

2 #

3 # Note that you do not have to rerun grub after making changes to this file

4 # NOTICE:  You have a /boot partition.  This means that

5 #          all kernel and initrd paths are relative to /boot/, eg.

6 #          root (hd0,0)

7 #          kernel /vmlinuz-version ro root=/dev/sda2

8 #          initrd /initrd-version.img

9 #boot=/dev/sda

10 default=0#默认操作系统

11 timeout=5#超时时间5s

12 splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz#grub菜单背景图片

13 hiddenmenu

14 title Red Hat Enterprise Linux Server (2.6.18-164.el5)#标签

15         root (hd0,0)#引导分区MBR

16         kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet

#内核文件位置  以只读方式进行 系统启动后根目录变成文件系统的根quiet静默

17         initrd /initrd-2.6.18-164.el5.img#驱动

故障一.

故障1.删除了grub.conf

[root@localhost ~]# rm  /boot/grub/grub.conf

rm: remove regular file `/boot/grub/grub.conf'? y

[root@localhost ~]# cd  /boot/grub

ce3d09cf2d15f3b8f1d5c58888ef3f95.png

重启

ac1cd925c7cfd2a5738e1641c3ffa057.png

Grub直接启动表明第二阶段有问题

指明引导分区#root(hd0,0)  (第一块硬盘,第一块分区)

47a52cfd80556c7470b28cd4ef9234d3.png

grub>help可以查看可以执行的指令

66771ad83ae01ff52aeeef224eddb570.png

查看根目录grup > find /

f6e1ba2a05c82ce3244359af660dd67a.png

执行kernel  /vmlinuz-2.6-164.e15  ro  root=/dev/sda2 quit

Initrd /initrd-2.6.18-164.e15.img

445bd164b70b64bdede9e62c5ef6f8b5.png

执行完成后启动   grub>boot

bb24e1ce84c69af7f3533ad3d55ced71.png

启动完成

进入系统后使用grub-install产生二阶段的其他文件

--------------------------------------------------------------------------------

[root@localhost ~]# grub-install

install_device not specified.

Usage: grub-install [OPTION] install_device

Install GRUB on your drive.

-h, --help              print this message and exit

-v, --version           print the version information and exit

--root-directory=DIR    install GRUB p_w_picpaths under the directory DIR

#指明这些文件的目录

instead of the root directory

--grub-shell=FILE       use FILE as the grub shell

--no-floppy             do not probe any floppy drive

--force-lba             force GRUB to use LBA mode even for a buggy

BIOS

--recheck               probe a device map even if it already exists

This flag is unreliable and its use is

strongly discouraged.

INSTALL_DEVICE can be a GRUB device name or a system device filename.

grub-install copies GRUB p_w_picpaths into the DIR/boot directory specfied by

--root-directory, and uses the grub shell to install grub into the boot

sector.

Report bugs to .

[root@localhost ~]# grub-install  --root-directory=/boot/grub  /dev/sda

Grub.conf文件丢失需重新编写

a2ce9eb48d5ce381f11eeaf44b86420d.png

重启:

b0347bc2088821decb0ada2cf685f049.png

故障二  /boot目录下的所有内容被删

a.删除/boot下的所有内容rm   -rf  /boot/*

2a60ae47d4b823bc470b962affe4b414.png

b.重启

16d4c1bd7617702caf1254a3622555eb.png

c.进入bios设置  将光驱设置为首先启动

c7ec8105d1892c1185538b95065c8bf2.png

d.进入救援模式:linux  rescue

f5b723258b8bef98df4b108dd74abdf1.png

e.使用chroot指令切换到硬盘的目录Chroot  /mnt/sysp_w_picpath

23be2544ec45f34f356eb7fc90200163.png

f.切换到boot目录并查看内容cd  /boot && ls

ea12e37e570cea2532aedd29203fdf5d.png

g.挂载光驱Mount     /dev/hdc  /mnt

04f3d4ec259fd1b967159340c8641521.png

h.安装内核  内核安装完成后会自动安装initrd

Rpm  -ivh  --force  /mnt/Server/kernel-2.6.18-164.e15.i686.rpm

5385a7e792ff939139733b6d2c57e190.png

i.内核安装完成之后我们安装grub    grub-install   /dev/sda

d4494f9155e94d232742c7ecb02814a3.png

j.再次查看/boot目录下的内容

48c626aa27529d730164d06b25907f58.png

k.查看grub的内容发现缺少grub.conf重新编写grub.conf

#cd  /boot/grub/#touch   grub.conf#vim grub.conf

ebd5361a3bbe5510b3626320241201f7.png

205162a8e613009b2b9ebbaaa86e88d0.png

f75efe059726bf9681585ecb34ecef40.png

l.两次exit退出重启  重启要设置bios为硬盘启动

1515553ea6a4ee1e1c4fa77003d72b07.png

故障三 删除了/grub下的内容

依据故障二重复第a.c.e.j.l即可

故障四:文件系统表改变

vim  /etc/fstab

f0decf6af14bd7fd38cc794e278462b3.png

如果误操作其中一个例如

ce1873cefb79e605a4ba1d91c1afe549.png

重新启动后会出现

22fdc23d7b457fb4353f4ddb0cb82ba1.png

输入管理员密码

ed51784838776609a8216e1ab1a7362c.png

编辑vim  /etc/fstab

a55012a1d4c16be9fcd139a6b1991ad8.png

重新挂载 mount -o remount  /  然后再编辑

f2db882ce5bd3214ccb28bc0d91b1b89.png

重启

6a1ec4ee52b318d4bb0d3b0ecefcf2ab.png

e19004f758ba9d4200952215c3935a94.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值