Linux系统的启动

一.启动步骤和GRUB

1Linux启动过程分                                                             

1BIOS自检

l  硬件检测及初始化

l  引导启动设备

2)引导启动设备

l  软盘(0磁道第一个扇区)

l  光盘(最外围存储轨道)

l  硬盘(MBR

l  USB存储设备

3)调用Linux引导程序至内存中

l Linux的引导程序可以使用GRUB/LILO等引导软件

l GRUB/LILO可以安装在MBR/引导分区的引导扇区中

4)运行Linux内核

l 内核放在/boot目录中,Linux系统可以同时支持多版本内核

l 解压缩内核

l 检测硬件

l 加载root文件系统

5)执行init进程(按“i”单步运行)

l 启动新进程或关闭进程

l 选择启动模式

l 建立虚拟终端

6)用户登录

l 输入用户名及口令

l 加载用户配置文件

l 加载shell程序

2.引导盘的创建

方法一:安装过程中创建

方法二:mkbootdisk

#mkbootdisk  --device  /dev/fd0    2.4.20-8

方法三:使用dd命令

# dd   if=/boot/vmlinuz  of=/dev/fd0

3GRUB

1GRUB简介

     GRUB是一种基于intel平台的功能强大的启动引导器

2GRUB特点

l  支持大硬盘,突破1024柱面的限制

l  支持两种界面(菜单,命令行)

l  开机画面

        3)安装GRUB

l  安装软件包

#rpm –ivh  grub-0.934.i386.rpm

l  使用安装命令安装GRUBMBR

#grub

grub>root (hdx,y)

grub>setup (hdx[,y])

4GRUB的配置

#vi  /boot/grub/grub.conf

grub.conf中常用的配置命令有:

default=菜单项序号/saved

设置启动菜单的默认启动项

hiddenmenu

隐藏菜单界面

splashp_w_picpath =图像文件全路径名

指定某文件作为启动菜单的背景图像

timeout=延迟秒数

设置启动菜单的启动延时

title 菜单项名称

开始一个菜单项的配置,设置菜单项的名称

root (hdx,y)

设置GRUB的根设备为linux内核所在的分区

kernel  内核文件名称

指定内核文件的名称及加载内核所需的参数

initrd initrd文件名

指定镜像文件的位置

map  (hdx[,y])  (hdx[,y])

建立虚拟磁盘

rootnoverify (hdx,y)

指定windows启动引导器的位置

makeactive

标识指定分区为活动分区

chainloader +n/文件名称

调用指定windows启动文件

password 口令/--md5  口令密文

设置GRUB启动菜单和菜单项口令

lock

利用password设置的全局口令锁定菜单项

savedefault

保存当前启动菜单项为默认启动

文件实例:

# grub-md5-crypt(产生口令的MD5密文)

           # vi  /etc/grub.conf

        default=0                  

             timeout=50               

             splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz 

             password  --md5  #!dfdasdf34123!#@$!#@                        

             title  RedHat Linux 9.0          

             root   (hd0,)              

             kernel  /Vmlinuz-2.4.20-8  ro root=/LABEL=/

             initrd   /initrd-2.4.20-8.img       

             password  linux

             tile  windows 2000

             rootnoverify  (hd0,0)         

             chainloader  +1                 

             lock

5GRUBFAQ

l  编辑模式的使用

用于临时修改菜单的选项,在菜单界面中按E键进入

Linux用户管理(五)Linux系统的启动_第1张图片

菜单主界面

Linux用户管理(五)Linux系统的启动_第2张图片

编辑模式

l  命令行模式的使用

利用命令行命令设置GRUB,在菜单界面中按C键进入

Linux用户管理(五)Linux系统的启动_第3张图片

命令模式

grub命令行中常用的命令有:

grub>root  (hdx,y)       //设置根设备所对应的分区

            grub>kernel 内核文件     //设置内核文件的名称

            grub>initrd 镜像文件名 //设置镜像文件名

            grub>boot               //启动指定操作系统

            grub>rootnoveify (hdx,y)  //设置根设备所对应的分区,但不检查加载点

            grub>chainloader  文件名//加载指定的文件

grub>help               //获取帮助

grub>reboot             //重启系统

grub>md5-crypt         //生成口令的MD5密文

grub>setup (hdx[,y])    //安装GURBMBR/指定分区的引导扇区中

grub>hide 分区      //隐藏分区

grub>cat 文件名     //显示文件内容

grub>find 文件名     //查找文件

l  如果MBR中的GRUB引导程序被其它程序覆盖,应该如该恢复

1)  放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式,加载硬盘上的LINUX系统到/mnt/sysp_w_picpath

2)  #grub

grub>root  (hdx,y) 

grub>root  (hdx)

l  恢复GRUB的配置文件

由于grub.conf设置的问题,可以采用以下方法进行恢复:

1)  放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式)

2#vi   /mnt/sysp_w_picpath/boot/grub/grub.conf

l  如何利用GRUB进入单用户模式,找回丢失的root用户口令

GRUB菜单界面中按e编辑linux菜单项,给内核后面添加参数single

然后回车再按b进单用户模式、password root就可以了。

l  如何卸载GRUB

1#rpm  -e grub

2C:\>fisk/mbr

二.init 进程

1.        init进程的作用

init进程是系统启动第一个进程,它负责加载其它进程、管理系统的其它进程

2.        系统运行级别

运行级别

说明

0

关机

1

单用户模式

2

多用户模式、不支持NFS

3

多用户模式

4

保留

5

X-WINDOWS

6

重启

可以使用init在各个运行级别中进行切换,init命令格式如下:

#init  <0-6,a,s,q>

3.        inittab文件的分析

/etc/inittab文件用于设置init进程在执行时加载哪些程序,inittab文件由若干个记录构成,每条记录格式如下:

IDRUNLEVELACTIONCOMMAND

以下为默认inittab文件内容:

id:3:initdefault:

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

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

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

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

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

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

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

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

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

pf::powerfail:/sbin/shutdown  -f  -h+2  “power failure;power shutting down”

pr:12345:powerokwait:/sbin/shutdown–c  “power  restored;shutdown cancelled”

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

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

说明:

(1)Action用于设置调用进程的方式 

Respawn

只要进程停止,该进和便重新启动

Wait

进程运行一次,init等待到它停止

Once

进程运行一次

Boot

系统引导过程中,进程运行,忽略等级

Bootwait

系统引导过程中,进程运行,init等待结束

Off

无任何行动

Initdefault

系统默认运行等级

Sysinit

系统引导则运行,优先于bootbootwait

Powerwait

电源故障后发送信号给init,等待进程终止

Ctrlaltdel

init收到SIGINT信号时,该进程运行

Powerokwait

UPS恢复则向init发送SIGINT信号

2 修改/etc/inittab文件,可以设置默认启动模式、各运行级别所加载的程序、CTRLALTDEL的动作、开设虚拟用户终端

4.        /etc/rc.d 的目录内容

1/etc/rc.d/init.d目录

l  保存所有运行等级需要的所有脚本

l  启动、停止、重启某些服务

2/etc/rc.d/rc

l  系统改变运行等级,通过此脚本检查/etc/rc.d/rcX.d目录和文件可存在,以及是否正在运行等,以及运行/etc/rc.d/rcX.d中所有S开头的脚本

3/etc/rc.d/rcX.d目录

l  存放每一运行等级默认启动项,该目录中的文件链接到:/etc/rc.d/init.d

l  文件名格式为K{Two-digit number}  {script name}S{Two-digit number} {script name},K:stop参数运行,S:start参数运行;Two:数字代表执行顺序

4/etc/rc.d/rc.local

l  该脚本在2,3,5运行等级结束时执行

5/etc/rc.d/rc.sysinit

l  系统初始脚本,用于设置系统的时钟、加载键盘、加载系统字体、加载其他文件系统、激活交换分区、生成日志文件

三.用户登录

1.用户登录过程

 Linux用户管理(五)Linux系统的启动_第4张图片



2.用户登录命令

1su

功能:切换用户登录

格式#su  [参数]  [-]  [用户名]

参数:-c  命令      :运行指定的命令

      -m          :不重新设置环境变量

      -s shell路径 :运行指定的shell

      -             :连同工作环境一起切换

实例$su  -

#su  user1

$su  -c /sbin/init 0   root

2exit

功能:退出用户环境(ctrl+d

格式#exit

3login

功能:登录系统 

格式:#login  [参数]  [用户名]

参数:

p:通知login保持现在的环境参数

h:用来向远程登录的主机传输用户名

实例:#login

4logout

功能:退出用户环境、注消用户

实例:#logout

5sudo

功能:以其它用户执行指定的命令,默认是以root身份,只有/etc/sudoers文件中指定的用户有权执行

格式:#sudo [参数命令

参数:

-b  在后台执行指令

-H 将HOME环境变量设为新身份的HOME环境变量。
-k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l  列出目前用户可执行与无法执行的指令。
-p  改变询问密码的提示符号。
-s  执行指定的shell
-u<用户>  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v  延长密码有效期限5分钟。
实例:#sudo /sbin/init 0

说明:/etc/sudoers文件格式为:user  host=[all/nopasswd/run as 用户名]  command lint;其中All代表所有文件,nopasswd代表执行文件时不需要要口令

6who

功能:显示登录用户信息

格式:#who  [参数]

参数:-l   显示系统登录进程

-b   显示系统最后一次启动时间

实例:#who

      #who  -l

7w

功能:显示登录用户信息

格式:#w  [用户]

实例:#w

8whoami

功能:显示当前终端登录的用户名称

实例#whoami

9last

功能:显示最近的用户登录情况

格式:#last  [参数]

参数:num    显示指定终端上的用户登录信息

      -num  显示最近n次的用户登录信息

  -i   显示登录主机的IP地址

实例:#last

#last 3

10wall

功能:向每个用户终端上的用户发送消息

格式:#wall [参数]

参数:-n   不显示消息来源

实例:#wall

#wall -n

11write

功能:向指定终端的用户发送消息

格式:#write 用户名 [终端

实例:#write  user1   tty1

注意:/etc/motd为公告板文件,用于记录所有公告信息;/etc/issue为欢迎信息文件

12help

功能:获取shell内置命令的帮助信息

格式:#help  [内置命令名]

实例:#help

      #help times

13man

功能:打开命令手册文件

格式:#man  [命令名/文件名]

实例:#man  su

微信扫一扫 、关注公众号

   不定时分享资料视频

Linux用户管理(五)Linux系统的启动_第5张图片