重点回顾

开机流程主要是 BIOS MBR Loader kernel+initrd /sbin/bin等流程

Loader具有提供选择菜单、加载核心档案、转交控制权给其他loader等功能

ls --format=single-column -F /boot

列出来的

initramfs-2.6.32-431.23.3.el6.x86_64.img 虚拟文件系统档

vmlinuz-2.6.32-431.23.3.el6.x86_64 核心档案

boot loader 可以安装在MBR或者每个分割槽的boot sector 区域中

initrd 可以提供核心在开机过程中所需要的最重要的模块,通常与磁盘及文件系统有关的模块

如果你的linux是安装在IDE接口的硬盘上,并且使用默认的ext2/ext3文件系统,那么需要initrd,如果根目录在特殊的磁盘接口(USB SATA SCSI),或者是你的文件系统为特殊(LVM,RAID),则需要

init的配置文件为 /etc/initab,此档案可以设定默认 runlevle ,系统初始化脚本,不同执行等级的服务启动等

0关机 6 重启

level 1 单人维护模式,用在系统出问题时维护

level 3 完整含有网络功能的纯文本模式

level 5 与3相似,但加载使用 x window

vim /etc/inittab

id:3:initdefault: //默认是3

ca::ctrlaltdel:/sbin/shutdown -t3 -r now //是否允许按下ctrl+alt+del 就重新启动的设定项目

init的处理流程

1.取得runlevel ,5

2.使用/etc/rc.d/rc.sysinit进行系统初始化

如取得网络环境与主机类型

测试与挂载内存装置/proc 及USB装置

决定是否使用selinux

设置系统时间 /etc/sysconfig/clock

用户自定义模块的加载 /etc/sysconfig/modules/

/etc/sysconfig/

authconfig //主要是规范使用者的身份认证的机制

clock //linux主机的时区

i18n //设定一些语系的使用方面

network //可以设定是否启动网络,以及主机名还有通信闸

network-scripts/ 设定网络卡

3.由于runlevel是5,则进行 l5:5:wait:/etc/rc.d/rc5.d/

rc5.d/K?? 开头的档案,并进行 stop动作

rc5.d/S?? 开头的档案,并进行start动作

/etc/rc.d/rc.local //用户自定义开机启动程序

4.设定好ctrl+alt+del 组合键

5.设定不断电系统的pf pr 两种机制

6.启动mingetty的六个终端

7.最终以/etc/X11/perfdm -nodaemon

核心与核心模块

核心 /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64

核心解压缩所需RAM DISK /boot/initramfs-2.6.32-431.23.3.el6.x86_64.img

核心模块 /lib/modules/{版本}/kernel/ 或者 lib/module$(uname -r)/kernel

核心原始码 /usr/src/linux(要安装才会有)

额外的装置与模块对应,可写入 /ec/modprobe.conf

核心模块管理

depmod //建立档案

例如

cp a.ko /lib/module/$(uname -r)/kernel/drivers/net

depmod

————————————————————

lsmod //查看目前加载的模块

————————————————————

modinfo

例子

modinfo mii //列出mii这个模块的相关信息

————————————

insmod //

例子

insmod /lib/modules/$(uname -r)/kernel/fs/cifs/cifs.ko //尝试加载这个模块

lsmod |grep cifs


rmmod

rmmod cifs //模块移除

————————————————————

modprobe

modprobe cifs //加载cifs模块,不需要完整的模块文件名

grub的配置文件与相关文件系统定义档大多与/boot/grub目录中,配置文件名为menu.list(为grub.conf的软连接)

grub是目前实用最广泛的linux开机管理程序。

grub对磁盘的代号设定与linux不同,主要透过侦测的顺序来给予设定。如果(hd0)及(hd0,0)

menu.list内每个选择菜单与tile有关,直接指定核心开机时,至少需要 kernel及initrd两个选择

menu.list内设定loader控制权移交时,最重要者为chainloader+1这个项目

查看menu.list

vim /boot/grub/menu.lst

default=0 //默认开机选项,使用第一个开机选单

timeout=5 //五秒未动键盘,使用默认选单开机

splashimage=(hd0,0)/boot/grub/splash.xpm.gz//背景图示所在的档案

hiddenmenu //读秒期间是否显示完整的选单画面

title CentOS (2.6.32-431.23.3.el6.x86_64)

    root (hd0,0) //核心档案的位置

    kernel /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet  //核心的档案名

    initrd /boot/initramfs-2.6.32-431.23.3.el6.x8664.img //initrd制作出 RAM DISK的档案名

若想要重建initrd,可使用mkinitrd处理

例如

mkinitrd -v initrd$(uname -r) $(uname -r) //新建

ll initrd_*

mkinitrd -v --with=8139too initrd_actiontest $(unamr -r) //增加这个模块到档案

重新安装grub到MBR或boot sector时,可以利用grub shell来处理

例子

grub-install /dev/hda

grub-install --root-directory=/home /dev/hd3

安装grub到MBR上面去

info grub

例子

grub

grub>root(hd0,0)

grub>find /grub/stage1

grub>setup (hd0)

grub>setup (hd0,0)

grub>quit

为个别选单加上密码

grub-md5-crypt //生成密码复制到

vim /etc/boot/grub/menu.lst ,粘贴到 title 底下第一行

如果整体加,则在timeout 后面

password --md5 生成的密码

若要进入救援模式,可与开机选菜单过程中,在kernel的项目后面加入 single 或者 init=/bin/bash 等方式来进入救援模式

可以对grub的个人选单给予不同的密码

忘记root密码

开机进入grub选单后,在你想要进入的选单上面点'e'进入详细设定

grub edit > kernel /vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=LABLE=/rhgb quiet single //进入单人维护模式

init配置文件错误

grub edit > kernel /vmlinuz-2.6.32-431.23.3.el6.x86_64 ro root=LABLE=/rhgb quiet init=/bin/bash

mount -o remount,rw /

mount -a