标签:user root 逻辑 list sync swap 计算机 display 自己的
ROM:BIOS,Basic Input and Output System,保存着计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序
RAM:保存各项参数的设定
Windows:ntloader 仅是启动OS
Linux: 提供菜单; 转交系统控制权; 直接指向内核文件
GRUB: GRandUnified Bootloader
secondary boot loader:2 stage,分区文件
bootloader的1stage是在MBR内进行的,1.5stage是再0面0磁道0扇区的后续扇区,2stage是在/boot分区上边
1stage是 寻找/boot分区的文件系统驱动
1.5stage内就是/boot分区文件系统驱动,识别/boot分区
2stage是/boot分区相关操作
/boot/grub下的stage类文件(除了stage2)都是备份
ramdisk:使用缓存或缓冲来加速对磁盘上文件的访问
自己创建initramfs文件
mkinitrd [-v] [-with=模块名称] initrd文件名 内核版本-v 显示mkinitrd的过程 --with=[模块名称]:模块名称指的是模块的名字,不需填写文件名 如果在救援模式下,需要切根,因为救援模式下好多库文件不存在
解压缩内核到内存中,
加载可识别的所有硬件设备(以自己的功能重新检查一次硬件,不一定适用BIOS的检测结果)
加载硬件驱动
以只读方式挂载根系统
运行用户空间的第一个程序:/sbin/init
内核内容
0 系统直接关机
1 单用户模式下,用在系统出问题时的维护
2 类似下面的runlevel 3,但无NFS服务
3 纯文本模式;多用户模式
4 系统保留功能;与上面的runlevel 3基本没有差异
5 图形界面
6 重新启动
切换等级:init #
查看等级: runlevel who -r
/etc/inittab文件相关知识
id : runlevel : action : process
id:代表init的主要工作选项,只是简单代表说明
runlevel:在那些等级下运行
action: initdefault:代表默认的runlevel设置值
sysinit:代表系统初始化的操作选项
ctrlaltdel:代表ctrl+alt+del三个按键是否可以重新启动
wait:代表后面设置的命令项目必须要执行完毕才能继续下面的其他操作
respawn:代表后边字段的命令可以无限制的重新启动
process:可以进行的命令
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc0
l1:1:wait:/etc/rc.d/rc1
1:2345:respawn:/sbin/mingetty tty
x:5:resawn:/etc/prefdm -nodaemon x window 则是这行决定的
/etc/init/*.conf
取得网络环境与主机类型:/etc/sysconfig/network
设置显示与启动过程中的欢迎界面(textbanner)
检查根文件系统,并以读写方式重新挂载根文件系统
挂载/etc/fstab文件中定义的文件系统
设置系统时间:读入/etc/sysconfig/clock设置值 修改时区的话,把/user/share/zoneinfo/Asia Shanghai复制到/etc/local下
激活udev和selinux
激活swap设备
初始化软件磁盘阵列、初始化lvm文件系统、、磁盘配额
加载内核相关设置:/etc/sysctl.conf
用户自定义模块加载:/etc/sysconfig/modules.conf设置
清除启动过程中产生的临时文件
将启动相关信息加载到/var/log/dmesg中
各个运行级别脚本所在目录:
/etc/rc.d/rc 0.d
/etc/rc.d/rc 1.d
/etc/rc.d/rc 2.d
/etc/rc.d/rc 3.d
/etc/rc.d/rc 4.d
/etc/rc.d/rc 5.d
/etc/rc.d/rc 6.d
脚本文件运行规则:
进入到某个运行级别的脚本目录/etc/rc.d/rcN.d
k: k##: ##运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务
s: S##:##运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务
s开头的文件,运行
k开头的文件,关闭
查看服务所在级别的启动或关闭情形
chkconfig [--list] name
添加服务给chkconfig管理
SysV的的服务脚本放置于/etc/init.d
chkconfig --add name
服务脚本格式信息
\# chkconfig: 345 95 5 #345表示在3,4,5模式下为开启,95为S95,5为K5 \# description: #描述,在CentOS5必须加上,在CentOS6以及之后的版本可不加
删除
chkconfig --del name
修改制定的链接类型
chkconfig [--level levels] name <off|on|reset>
--level LLLL:省略是表示2345
正常情况下,最后启动一个服务S99local没有链接至/etc/init.d下的脚本,而是指向了/etc/rc.d/rc.local脚本
不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中
1:2345:respawn:/usr/sbin/mingettytty1
2:2345:respawn:/usr/sbin/mingettytty2
...
6:2345:respawn:/usr/sbin/mingettytty6
mingetty会自动调用login程序
x:5:respawn:/etc/X11/prefdm -nodaemon
BIOS加载硬件信息--》post加电自检--》加载MBR里grub信息--》stage1.5--》stage2--》initramfs--》 rootfs-->init-->/etc/inittab-->设置默认运行级别-->初始化/etc/rc.d/rc.sysinit-->/etc/rc.d/rc#.d-->/etc/rc.local
补充:
chkconfig --list #查看xinetd服务
chkconfig 服务名称 on #启动这个服务(这一步相当于修改了它的配置文件,还需要激活才能生效 )
service xinetd start #激活xinetd服务
拿telnet服务来所:
vim /etc/xinetd.d/telnet
disable = no #表示不禁用,等于yes表示禁用
service 服务 start|stop|restart
service --status-all
chkconfig tftp on
mv /etc/fstab /root/fstab #fstab文件移动到root家目录下的fstab中
mkdir /root/boot && mv /boot/* /root/boot #将boot下的所有文件移动到家目录下的boot中(boot需要创建)
sync*3 #同步数据到磁盘
reboot #重启
进入救援模式
df #查看挂载,发现并没有被挂载!
[](http://i.imgur.com/RMtLBfO.png)
ls /dev/mapper && #mapper是所有LVM存放的地方,我们可以查看有没有逻辑卷存在
lvdisplay #使用lvdisplay命令查看LVM状态,发现都是不可用状态,并且很用容易看出根目录在哪个逻辑卷中
vgchage -ay #激活vg,也就是激活逻辑卷
lvdisplay #再次确认LVM状态
ls /dev/mapper #查看LVM设备
mount /dev/mapper/VolGroup-lv_root /mnt/sysimage #根据查看到的信息将根挂载到/mnt/sysimage(sysimage可以是其他挂载点)下
cd /mnt/sysimage #切换到操作系统根目录下
ls #查看是否是操作系统根目录
vi etc/fstab #在当前目录下的etc下创建fstab文件,注意是当前目录而不是/
:r! ls /dev/mapper #在末行模式下使用r!读取出LVM的名字
/dev/sda1 /boot ext4 defaults 0 0
/dev/mapper/VolGroup-lv_root / ext4 defaults 0 0
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0 #注意,所有的LVM信息都需要写入
wq #保存退出
sync*3 #同步磁盘,sync输入三次
exit #退出bash,进入菜单reboot重启,必须退出重启
进入救援模式
chroot /mnt/sysimage/ #切根
mount /dev/cdrom /mnt #挂载光盘到/mnt
rpm -ivh /mnt/Packages/kernel-2.6.32-642.e16.x886_64.rpm --force #安装kernel包
ls /boot #查看boot下文件是否恢复
grub-install /dev/sda #修复grub
退出并重启
在grub后输入
kernel /vmlinuz-2(tab补全) root=/dev/mapper/VoGroup-lv_root selinux=0
initrd /init(tab补全)
boot #启动
#注意,修复grub.conf文件时临时有效,如果想永久修复需要重新编辑/boot/grub/grub.conf
default=0
timeout=5
title CentOS68
kernel (hd0,0)/vmlinuz-.... ro root=/dev/vg0/root
initrd /initramfs-...img
标签:user root 逻辑 list sync swap 计算机 display 自己的
原文地址:http://www.cnblogs.com/lijing-1/p/6848735.html