Linux 系统的启动
一.启动步骤和 GRUB
1 . Linux 启动过程分析
( 1 ) BIOS 自检
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
3 . GRUB
( 1 ) GRUB 简介
GRUB是一种基于intel平台的功能强大的启动引导器
( 2 ) GRUB 特点
l 支持大硬盘,突破1024柱面的限制
l 支持两种界面(菜单,命令行)
l 开机画面
(3)安装GRUB
l 安装软件包
#rpm –ivh grub-0.934.i386.rpm
l 使用安装命令安装GRUB到MBR
#grub
grub>root (hdx,y)
grub>setup (hdx[,y])
( 4 ) GRUB 的配置
#vi /boot/grub/grub.conf
grub.conf中常用的配置命令有:
default=菜单项序号/saved
设置启动菜单的默认启动项
hiddenmenu
隐藏菜单界面
splashimage =图像文件全路径名
指定某文件作为启动菜单的背景图像
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
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 #!dfdasdf34123!#@$!#@
title RedHat Linux 9.0
root (hd0,2)
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
( 5 ) GRUB 的 FAQ
l 编辑模式的使用
用于临时修改菜单的选项,在菜单界面中按E键进入
菜单主界面
编辑模式
l 命令行模式的使用
利用命令行命令设置GRUB,在菜单界面中按C键进入
命令模式
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]) //安装GURB到MBR/指定分区的引导扇区中
grub>hide 分区 //隐藏分区
grub>cat 文件名 //显示文件内容
grub>find 文件名 //查找文件
l 如果 MBR 中的 GRUB 引导程序被其它程序覆盖,应该如该恢复
1) 放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式,加载硬盘上的LINUX系统到/mnt/sysimage)
2) #grub
grub>root (hdx,y)
grub>root (hdx)
l 恢复 GRUB 的配置文件
由于grub.conf设置的问题,可以采用以下方法进行恢复:
1) 放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式)
2)#vi /mnt/sysimage/boot/grub/grub.conf
l 如何利用 GRUB 进入单用户模式,找回丢失的 root 用户口令
在GRUB菜单界面中按e编辑linux菜单项,给内核后面添加参数single
然后回车再按b进单用户模式、password root就可以了。
l 如何卸载 GRUB
1)#rpm -e grub
2)C:>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文件由若干个记录构成,每条记录格式如下:
ID:RUNLEVEL:ACTION:COMMAND
以下为默认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 |
系统引导则运行,优先于boot或bootwait |
|
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 .用户登录过程
2 .用户登录命令
( 1 ) su
功能 :切换用户登录
格式 :#su [参数] [-] [用户名]
参数:-c 命令 :运行指定的命令
-m :不重新设置环境变量
-s shell路径 :运行指定的shell
- :连同工作环境一起切换
实例 :$su -
#su user1
$su -c /sbin/init 0 root
( 2 ) exit
功能 :退出用户环境(ctrl+d)
格式 :#exit
( 3 ) login
功能 :登录系统
格式:#login [参数] [用户名]
参数:
- p :通知 login 保持现在的环境参数
- h :用来向远程登录的主机传输用户名
实例:#login
( 4 ) logout
功能 :退出用户环境、注消用户
实例:#logout
( 5 ) sudo
功能: 以其它用户执行指定的命令,默认是以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 代表执行文件时不需要要口令
( 6 ) who
功能: 显示登录用户信息
格式:#who [参数]
参数:-l 显示系统登录进程
-b 显示系统最后一次启动时间
实例:#who
#who -l
( 7 ) w
功能: 显示登录用户信息
格式:#w [用户]
实例:#w
( 8 ) whoami
功能 :显示当前终端登录的用户名称
实例 :#whoami
( 9 ) last
功能: 显示最近的用户登录情况
格式:#last [参数]
参数:num 显示指定终端上的用户登录信息
-num 显示最近n次的用户登录信息
-i 显示登录主机的IP地址
实例:#last
#last 3
( 10 ) wall
功能: 向每个用户终端上的用户发送消息
格式:#wall [参数]
参数:-n 不显示消息来源
实例:#wall
#wall -n
( 11 ) write
功能: 向指定终端的用户发送消息
格式:#write 用户名 [终端]
实例:#write user1 tty1
注意:/etc/motd为公告板文件,用于记录所有公告信息;/etc/issue为欢迎信息文件
( 12 ) help
功能: 获取shell内置命令的帮助信息
格式:#help [内置命令名]
实例:#help
#help times
( 13 ) man
功能: 打开命令手册文件
格式:#man [命令名/文件名]
实例:#man su
本文出自 “Linux狱长” 博客,请务必保留此出处http://sswqzx.blog.51cto.com/2494644/1971537
原文:http://sswqzx.blog.51cto.com/2494644/1971537
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!