第08章 系统启动管理课件.ppt
,安徽新华邵春林,RedHat Linux服务器操作系统,安徽新华 2009年04月08日,第八讲 系统启动管理,难点:介绍了Linux系统引导程序GRUB的配置重点:掌握Linux系统是如何启动的,使学员在今后的系统排错中能够得以运用。关键词:引导程序init shell,教学目的:掌握GRUB、LILO的操作、inittab文件的设置熟悉Shell的功能、init进程的功能了解Linux启动步骤、Shell特点、熟悉GRUB的配置,Linux系统启动过程,1、BIOS自检(POST)硬件检测及初始化2、引导启动设备(1)软盘(0磁道0扇区)(2)光盘(最外围存储轨道)(3)硬盘(MBR)通常,Linux系统都从硬盘引导,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512Byte的扇区,位于磁盘的第一个扇区(0道0柱面1扇区)。当MBR被加载到RAM后,BIOS就会将控制权交给MBR。,3、启动GRUB 调用Linux引导程序至内存中4、加载Linux内核 加载Linux内核映像到内存中。5、挂装根文件系统6、启动init进程 init进程是系统所有进程的起点,内核在完成核内引导后,即在本进程空间内加载init程序,它的进程号是1。Init进程是所有进程的发起者和控制者,是第一个运行的进程。作用:(1)扮演终结父进程的角色。(2)在进入某个特定的运行级别时运行相应的程序,以次对各 运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。,Linux系统启动过程,7、通过/etc/inittab文件进行初始化 Init的工作是根据/etc/inittab来执行相应的脚本,进行系统初始化,如设置键盘、字体、装载模块,设置网络等。(1)/etc/rc.d/rc.sysinit rc.sysinit是由init进程执行的第一个脚本,它主要完成一些系统初始化工作:激动活交换分区、检查磁盘、加载硬件模块以及其它一些需要优先执行的任务。(2)/etc/rc.d/rcX.d/KS 在rc.sysinit执行后,将返回init,继续执行/etc/rc.d/rc程序,当在每个运行级别中运行完特定守护进程后,rc程序就执行完了,再返回init继续下一步。(3)/etc/rc.d/rc/local 运行级别2、3、5都把/etc/rc.d/rc/local做为初始化脚本中的最后一个。,Linux系统启动过程,8、执行/bin/login程序 login程序会提示使用者输入帐号及密码,接着编码并确认密码的正确性,如果帐号和密码相符,则为使用者初始化环境,并将控制权交给shel l,即等待用户登录。login程序成功后,会向对应的终端再输出最近一次登录的信息(在/var/log/lastlog中有记录),并检查用户是否有新邮件(在/usr/spool/mail/对应用户名目录下),然后开始设置各种环境变量。对于bash来说,系统首先寻找/etc/profile脚本文件并执行它;然后如果用户的主目录中存在.bash_profile文件,就执行它,所有的配置文件执行后,会出现命令提示符,至此整个启动过程就结束了。,Linux系统启动过程,Linux系统启动过程,BIOS,GRUB,kernel boot,init,rc.sysinit,rc,mingetty,shell,login,登录系统,开机,引导装载程序,1、LILO(Linux Loader),2、GRUB(Grand Unified Boot Loader)GRUB提供了正真基于命令行的、先于操作系统启动的环境,比LILO提供了更丰富的功能。GRUB支持LBA(Logical Block Addressing逻辑块寻址)模式。只要系统的BIOS支持LBA模式,GRUB就能够从1024柱面以后的分区中启动操作系统。GRUB能够访问ext3分区。在每次系统启动时GRUB访问 ext3分区中的配置文件/boot/grub/grub.conf。只有当/boot分区的物理位置发生变化时才需要重新安装GRUB到MBR。,引导装载程序,3、GRUB的设置,3、GRUB的设置 GRUB的主配置文件/boot/grub/grub.conf:default=0/设置GRUB默认引导哪个系统 timeout=30/系统如果不作选择,在10秒后就自动引导上面所指定的默认系统;如果设为0,则不出现选择界面,直接引导到默认系统;如果设为-1,则一直等待用户选择所要启动的系统。splashimage=(hd0,0)/grub/splash.xpm.gz/设定开机画面背景图像 hiddenmenu/隐藏GRUB的启动菜单,title RedHat Linux/启动菜单中显示的操作系统名字。root(hd0,0)/设置内核存放的分区kernel/vmlinuz-2.4.20-8 ro root=LABEL=/设置内核文件initrd/initrd-2.4.20-8.img/设置内核映像文件名title Windows Server 2003rootnoverify(hd0,1)/该操作系统在hd0的第二分区,不mount。chainloader+1/从第一个硬盘的第二个分区引导Windows。,实例:要求如下:1)hda上有两个操作系统,分别为RH 和Win2K3RH安装在/BOOT分区号为hda2,Win2K3安装在C:下3)设置GRUB的口令为123且用MD5加密4)锁定每个菜单选项,配置过程:#grub md5-cryptPassword:Retype password:$MQBa#12Q(注意大小写),#vi/etc/grub.conf default=0 timeout=30 plashimage=(hd0,0)/grub/1.jpg password-md5$MQBa#12Q,title RedHat Linuxroot(hd0,1)kernel/vmlinuz-2.4.20-8 ro root=LABEL=/initrd/initrd-2.4.20-8.img locktitle window server 2003 rootnoverify(hd0,0)Chainloader+1 lock,(4)GRUB的命令行,菜单模式,编辑模式的操作 解锁GRUB启动菜单在锁定的启动菜单中选择“p”键输入口令,编辑模式:作用:用于修改菜单的选项热键:e键进入,命令行模式:作用:设置GRUB的选项热键:c键实例:启动Linux grubroot(hdx,y)grubkernel/vmlinuz-版本号 ro root=LABEL=/grubinitrd/initrd-版本号.img grubboot启动Windows grubrootnoverify(hdx,y)/让GRUB不要mount(hd0,0)的分割区 grubchainloader+1/指定此分割区上的第一个扇区来做激活 grub makeactive/要在此分割区上设定active的标记 grubboot/开机,(5)恢复GRUB的配置文件放入第一张安装启动盘,启动计算机:boot:linux rescue#cd/mnt/sysimage#vi/boot/grub/grub.conf 修改grub.conf恢复设置选项,恢复Grub到Mbr 先使用第一张安装启动盘进入grub,或者利用其他linux恢复盘进入linux系统,然后进入grub控制台:grub root(hd0,10)grub kernel/boot/vmlinuz-2.6.9 init 5 ro root=/dev/hda11 grub initrd/boot/initrd-2.6.9.imggrub boot然后开始修复过程:#grubgrub root(hd0,10)grub setup(hd0)grub quit#grub-install hd0,在GRUB的命令行模式下安装GRUB 系统显示启动菜单时按c键,或者系统启动后在命令行执行/usr/sbin/grub程序,进入GRUB的命令行模式。#grub grubroot(hd0,0)/指定启动设备 grubfind/boot/grub/stage1/查找stage1 grub setup(hd0)/安装GRUB到第1块硬盘的MBR grubquit 重启机器,新安装的GRUB生效,grub菜单项丢失,只有字符grub时的处理方法:grubcat/grub/grub.conf/为了看参数。grubroot(hd0,0)grubkernel/vmlinuz-2.4.18-11 ro root=/grubinitrd/initrd-2.4.18-11.img grubboot,系统启动管理,大家记一下自己的系统哈,下面我们做个实验,特别是系统版本不一样的更要记住。把后面三行删掉后保存退出。,系统启动管理,系统启动管理,第一步:运行root(hd0,0)(这是/boot所在的分区),系统启动管理,第二步:执行kernel/vmlinuz-2.6.18-53.el5 ro root=LABEL=/rhgb quiet(用来指定linux内核),系统启动管理,第三步:执行initrd/initrd-2.6.18-53.el5.img(用来指定initrd文件),系统启动管理,第四步:执行boot,系统启动管理,下面我们来点狠的哈,这次我们就要把grub.conf删除掉然后我们重新启动我们的系统哈哈。,系统启动管理,运行root或者find/vmlinuz-2.6.18-53el5(可以使用TAB补全),可以搜索vmlinuz所在分区,也就是/boot所在分区。,系统启动管理,第一步:运行root(hd0,0)(这是/boot所在的分区,其中括号内的信息,就是上面命令的回显.),系统启动管理,第二步:执行kernel/vmlinuz-2.6.18-53.el5 ro root=LABEL=/rhgb quiet(用来指定linux内核),系统启动管理,第三步:执行initrd/initrd-2.6.18-53.el5.img(用来指定initrd文件),系统启动管理,第四步:执行boot,系统启动管理,把/boot分区里的文件全部删除了掉哦,一个也不剩哈(不删boot分区哦,只删除里面文件)rm-rf/boot/*,系统启动管理,把/boot分区里的文件全部删除了掉哦,一个也不剩哈(不删boot分区哦,只删除里面文件)rm-rf/boot/*,系统启动管理,第一步:将RHEL5安装放入光驱并设置从光驱启动系统,系统启动管理,第二步:输入linux rescue 或按F5进入救援模式,系统启动管理,第三步:使用#chroot切换到硬盘的系统,具体命令#chroot/mnt/sysimage/,系统启动管理,第四步:安装kernel,在安装内核时会自动生成initrd。,系统启动管理,第五步:内核和initrd已经有了,然后我们需要安装GRUB。,系统启动管理,第六步:我们发现/boot/grub/目录下没有grub.conf,那就自己写一个。,系统启动管理,其实BOOT分区删了都可以恢复,能够搞定的前提是,df命令里还有/dev/sda1是boot分区的记录,不然就比较危险了,先分区,然后安装内核和GRUB,就可以搞定了。,系统启动管理,现在就参照上面的安装内核和GRUB就可以解决问题了。,Linux 下 grub 密码的设置,GRUB 明口令加密 default=1timeout=10splashimage=(hd0,7)/boot/grub/splash.xpm.gzpassword=123456title Fedora Core(2.4.22-1.2061.nptl)lock root(hd0,7)kernel/boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/initrd/boot/initrd-2.4.22-1.2061.nptl.imgtitle WindowsXP rootnoverify(hd0,0)chainloader+1,Linux 下 grub 密码的设置,GRUB 的md5加密方法 1、用grub-md5-crypt成生GRUB的md5密码#/sbin/grub-md5-crypt Password:在这里输入123456 Retype password:再输入一次123456$1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0,Linux 下 grub 密码的设置,GRUB 的md5加密方法2、更改/etc/grub.conf default=1timeout=10splashimage=(hd0,7)/boot/grub/splash.xpm.gzpassword-md5$1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0title Fedora Core(2.4.22-1.2061.nptl)lockroot(hd0,7)kernel/boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/initrd/boot/initrd-2.4.22-1.2061.nptl.imgtitle WindowsXProotnoverify(hd0,0)chainloader+1,Linux 下 grub 密码的设置,GRUB 的md5加密方法3、使用password,lock命令实现几种加密方法如下:(1)单纯对GRUB界面加密,而不对被引导的系统加密 在timeout一行下面加一行:password md5 PASSWORD(2)对GRUB界面加密,同时对被引导的系统加密 在timeout一行下面加一行:password md5 PASSWORD 在title一行下面加一行:lock(3)同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密)在title一行下面加一行:lock 在lock一行下面紧贴着再加一行:password md5 PASSWORD 注:lock不能单独使用,Linux口令恢复,1、单用户模式:(1)启动GRUB,选择Red Hat Linux的选项,然后键入 e 来编辑;选择以kernel开头的一行,再按e 键,在此行的末尾,按空格键后输入single,以回车键来退出编辑模式;回到了 GRUB 屏幕后,键入 b 来引导进入单用户模式。(2)passwd 程序来设置root的新密码#passwd root#reboot重启系统后,root 密码已被更新。(3)通过修改/etc/shadow 文件,删除root 的密码#vi/etc/shadow将以root 开头的一行中“root:”后和下一个“:”前的内容删除,第一行将类似于“root:”,保存后重启系统,root 密码置为空。,Linux口令恢复,2、紧急修复模式:如果多系统的GRUB 被删除(如重装了Windows 系统后),只能使用Linux 系统安装盘来恢复root 的密码。用第一张Linux 系统安装盘启动,出现boot 提示符后输入:root:linux rescue此时系统进入救援模式,然后根据提示完成:(1)选择语言和键盘格式;(2)选择是否配置网卡,一般系统因网络不需要,所以可以选择否跳过网卡配置;(3)选择是否让系统查找硬盘上的Redhat Linux 系统,选择继续;(4)系统显示硬盘上的系统已经被找到,并挂载在/mnt/sysimage 下;(5)进入拯救状态,可重新设置root 的密码:#chroot/mnt/sysimage(让系统成为根环境)#cd/mnt/sysimage#passwd root,2、系统运行级别0/关机1/单用户模式2/多用户、不支持NFS3/完全多用户模式,文本模式。4/保留5/完全多用户模式,窗口模式。6/重启切换:#init 0-6,runlevel 格式:#runlevel 功能:显示系统当前和上一次的运行级别,如果上次运行级别记录不存在,则显示N,如果都不存在,则显示unknown。,注:(1)shutdown功能:重启/关机格式:#shutdown 选项 time 信息,选项:-r/重启-c/取消一个已经运行的shutdown动作-h/关闭计算机-f/重启时不使用fsck检查文件系统-F/重启时使用fsck检查文件系统 time/设定时间 hh:mm/某时某分+mm/当前时间往后几分钟 now/立即,实例:#shutdown-r now#shutdown-r+5#shutdown-h 18:00#shutdown-h now,(2)halt 功能:调用“shutdown h”命令。格式:#halt 选项 选项:-c/防止sync系统调用,它在fsck修补根分区后,以阻止内核用老版本的超级块覆盖修补过的超级块。-w/不关闭计算机,只是写wtmp(/var/log/wtmp)记录。-f/不调用shutdown而强制关机或者重启。-I/关机(或重启)前,关闭所有网络接口。-p/当关机的时候,顺便做关闭电源(poweroff)的动作。,(3)reboot功能:重启系统格式:#reboot(4)exit(Ctrl+D 键)功能:退出用户环境,一次只能退出一个 格式:#exit,(5)login 功能:注消用户(单用户)格式:#reboot(6)logout 功能:退出用户环境直接注消用户 格式:#reboot,3、inittab文件的分析作用:设置init进程默认级别,设置init的动作格式:#vi/etc/inittab id:runlevels:action:process实例:id:3:initdefault:ca:ctrlaltdel:shutdown-r now,说明:运行的级别:动作:initdefault/启动默认级别 sysinit/sysinit类进程是init进程的第一个子进程,在boot类进程之前运行。wait/wait进程在进入指定级别后运行一次,且init进程要等待其结束,ctrlaltdel:/指按CTRL+ALT+DEL键时的动作 powerfail/用于指当UPS发来断电信号时所运行的命令powerokwait/用于当供电恢复时运行的命令,4、/etc/rc.d 目录说明init.d目录/存放服务启动的脚本rc 文件/调用相应级别中运行目录的程序rc n(16)/存放每个运行级别中要运行的程序(k*:关闭程序,s*:启动服务)rc.sysinit/完成系统初始化 rc.local/存放系统启动时的程序,归纳与总结,通过本节课的学习我们要掌握以下内容:1、GRUB、inittab文件的设置2、Shell的功能、init进程的功能 3、Linux启动步骤、Shell特点、GRUB,问题交流,