linux 系统启动详解 grub故障恢复

来源:互联网 发布:oracle启停数据库 编辑:程序博客网 时间:2024/06/06 00:35

System Initilization  系统初始化

  要点:精确的把握系统启动,对于底层信息要了解

1,系统版本号

/etc/redhat-release (版本信息)

  注意版本号和内核版本的区别

                                         

#uname

-r 显示内核版本(kernel release)

-v 精确显示

-a 显示全部信息

-o 操作系统

-m 硬件平台架构

2runlevel  7个(0-6)表示

 #runleve 

 #N (上一次所在版本级别)3(当前所在版本级别)

 #init NUMBER(0-6) 定义重新初始化,并进入加载

7个级别分表表示的为

 0 –halt  关机

 1 –Single User Mode 加载信息最少,不读取(/etc/passwd,/etc/shadow

  S ,s,single 读取/etc/rc.d/rc.sysinit

  emergency :救援模式,不加载 /etc/rc.d/rc.sysinit

 2—multi user mode,without NFS(网络服务) ubuntu 个人版默认的进入为2

 3—full multiuser text mode

 4—系统预留

 5—full multiuser GUI mode

 6—reboot ,init 6 重启

 

/etc/inittab 之中,重要的配置文件,知音系统启动之后的动作

 

)

3 daemon 分为两类进程

注释:后台运行的进程(background,daemon(守护进程

1: standalone daemon:独立守护进程。(占系统内存,如果为启动状态的则每个进程都有独立的进程)

2transient daemon :短暂守护进程=非独立守护进程。(有个进程代替[超级守护进程],有需要的[超级守护进程]话传递,开始某个transient daemon,而后关闭。)

chkconfig :

 --list 查看所有服务启动状态

 --list –进程名称   >用于只显示该进程的信息

 --level LLL SERVERNAME on|off 管道指定LLL(级别)下的进程状态

                          如果是2345 级别就可以省略

chkconfig 短暂守护进程 on|off  短暂守护进程没有级别之分

但是超级守护进程则有级别

ntsysv 命令,图形化管理进程(默认只控制当前级别)

ntsysv –level LLL* (级别)  定义某些指定级别的进程

 

 

 PC启动的整个过程

post(BIOSCMOS)àboot sequence à MBR[Master Boot Record]:1 sector ,512 bytes,Bootloaderàinit(/etc/inittab)à/etc/rc.localàlogin

详细步骤

1.pc中,引导linux的是从0XFFFF0 处开始的,BIOS的第一个步骤是加电自检POST,是对硬件进行检测。

2.引导一个分区时,是按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备,引导设备可以是CD-ROM、硬盘上的某个分区、网络上的某个设备,甚至是 USB 闪存。

3.通常OS 就会将控制权交Linux是从硬盘上进行引导的,以中主要引导记录(MBR)中包含主导加载程序,MBR是一个512 Bytes大小的扇区位于磁盘上的第一个扇区中(0 0 柱面 1 扇区)。当 MBR 被加载到 RAM 中之后,BI MBR

  MBR

MBR引导有两种引导

1,                LILO LInux Loader 但是这种MBR只可以引导1024柱面之前的分区,现在很少用,多用于java的程序引导。 

 

引导加载程序是446 bytes的主导加载程序,其中包含可执行代码和错误消息文本,剩下的64个字节是分区表,每个分区是16字节,(可以分为四个分区记录),MBR 以两个特殊数字的字节(0xAA55)结束。这个数字会用来进行 MBR 的有效性检查。

2,                GRUB (Grand Unified Bootloader)

1.      识别硬板分区,无论什么接口

(hd0,0)à硬盘接口 IDE(ha[d-z]表示第几块硬盘[数字] SATA,SCSI,USB,SAS (sd[a-z][数字]     

  2. kernel加载内核映像到内存

          如果boot 和跟目录不在同一个分区

                   /….

          如果boot 和根目录在同一个分区

                   /boot/….

    3,initrd 虚拟的根文件系统的镜像到内存

  关于grub.conf 是上面过程的配置文件

#boot=/dev/sda

default=0 设置默认title

timeout=5 设置超时时间

splashimage=(hd0,0)/grub/5.xpm.gz 设置开机的画面(大小640x480 14pic .xpm格式的图片)

hiddenmenu 隐藏选择项目

title  Red  Hat Enterprise Linux Server (2.6.18-164.el5)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet

        initrd /initrd-2.6.18-164.el5.img

title Install Red Hat Enterprise Linux 5

        root (hd0,0)

        kernel /vmlinuz-5 ks=http://192.168.0.254/workstation.cfg ksdevice=eth0 noipv6

        initrd /initrd-5

        password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.

                                                                             

                                                                              

                  

这样就可以对文件系统进行查询了

 

手动进行引导

  如果grub,conf丢失的话系统就不能进行引导了需要手动进行引导

1,制造故障把grub,conf改名字

2,重起linux系统

3,手动进行GRUB引导

 

#cd/boot/grub

#rm grub.conf grub.conf.1

#shutdown –r now

grub>  系统重启之后则进入grub引导这个时候MBR的文件并没有损坏只是grub.conf损坏可以手动引导方法如下图片

boot回车就可以引导进入linux然后手动添加grub.conf文件

 

 

dd if=/dev/zero of=/root/test bs=446 count=1

sync

这样整个GRUB就丢失了

如果整个磁盘上GRUB丢失的话

 如下 如果没重启系统

 #grub

 grub>root (hdx,y) x表示第一块硬盘,Y表示硬盘上的第几个分区

 setup hd0

 quite

 

 

原创粉丝点击