1、查看kernel版本:
rpm -qa kernel
[root@centos6 ~]# rpm -qa kernel
kernel-2.6.32-696.el6.x86_64
2、linux :kernel +rootfs
kernel: 进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能
rootfs:程序和glibc
库:
程序:二进制执行文件
3、内核设计流派:
单内核:把所有功能集成于同一个程序 vmlinuz-2.6.32-696.el6.x86_64
微内核:每种功能使用一个单独子系统
4、 linux 内核特点:
支持模块化:.ko(内核对象)
如:文件系统,硬件驱动,网络协议
支持内核模块的动态装载和卸载
[root@centos6 boot]# locate ext4.ko
/lib/modules/2.6.32-696.el6.x86_64/kernel/fs/ext4/ext4.ko
lsmod 加载的模块:
modprobe:
[root@centos6 boot]# lsmod |grep e1000
e1000 134799 0
5、 内核核心文件
[root@centos6 boot]# ll -h /boot/vmlinuz-2.6.32-696.el6.x86_64
-rwxr-xr-x. 1 root root 4.1M Mar 22 2017 /boot/vmlinuz-2.6.32-696.el6.x86_64
centos6/7:辅助的伪跟系统:initramfs-2.6.32-696.el6.x86_64.img
centos5:initrd-2.6.18-164.el5.img
查看:辅助伪跟系统:
[root@rhel5 ~]# cp /boot/initrd-2.6.18-164.el5.img /root [root@rhel5 ~]# mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.gz [root@rhel5 ~]# gzip -d initrd-2.6.18-164.el5.img.gz [root@rhel5 ~]# cpio -tv < initrd-2.6.18-164.el5.img -rw------- 1 root root 29016 Nov 2 2010 lib/ohci-hcd.ko -rw------- 1 root root 96456 Nov 2 2010 lib/mptbase.ko -rw------- 1 root root 146792 Nov 2 2010 lib/ext3.ko
6、模块文件:
[root@rhel5 ~]# ll /lib/modules/2.6.18-164.el5/
7、centos6启动流程:
8、post
9、rpm -qa grub
[root@rhel5 ~]# rpm -qa grub
grub-0.97-13.5
10、启动流程:mbr
第一个阶段:446字节;
第1.5阶段:
[root@centos6 ~]# locate ext4.ko
/lib/modules/2.6.32-696.el6.x86_64/kernel/fs/ext4/ext4.ko
第二阶段:/dev/sda1 976M 40M 886M 5% /boot
第二阶段的配置文件:进入grub之后,读取boot 下vmlinuz 内核文件,初始化内核,随后找根目录
根目录:
cat /boot/grub/grub.conf
根找到了,需要根的文件系统挂载:
问题:要挂载根,根的文件系统在哪,在跟下面:
[root@centos6 ~]# locate ext4.ko
/lib/modules/2.6.32-696.el6.x86_64/kernel/fs/ext4/ext4.ko
解决根的文件系统:
initramfs-2.6.32-696.el6.x86_64.img
[root@centos6 ~]# ls /boot/initramfs-2.6.32-696.el6.x86_64.img 根的文件系统存在initramfs辅助伪根文件系统
[root@centos6 ~]# cpio -tv < initramfs-2.6.32-696.el6.x86_64.img |grep ext4.ko --color -rwxr--r-- 1 root root 646648 Jan 25 09:53 lib/modules/2.6.32-696.el6.x86_64/kernel/fs/ext4/ext4.ko
vmlinuz 存在系统光盘上:
[root@centos6 isolinux]# ll /boot/initramfs-2.6.32-696.el6.x86_64.img vmlinuz -rw-------. 1 root root 26663543 Jan 25 09:54 /boot/initramfs-2.6.32-696.el6.x86_64.img -r-xr-xr-x. 4 root root 4274992 Mar 29 2017 vmlinuz
虚拟文件系统:initramfs-2.6.32-696.el6.x86_64.img
丢失创建initramfs:
mkinitrd /boot/initramfs-`uname -r`.imag `uname -r`
实验:1、[root@centos6 boot]# rm -f initramfs-2.6.32-696.el6.x86_64.img
实验:2、rm -f vmlinuz-2.6.32-696.el6.x86_64
1、光盘引导:ecs按键
2、cd-rom drive
3、进入救援模式:
4、英文
5、不需要设置网络
6、
7、
8、
9、chroot /mnt/sysimage ;mkinitrd initramfs-`uname -r`.img `uname -r` ;sync;sync;
10、mount /dev/sr0 /mnt; cp vmlinuz /boot/vmlinuz-`uname -r`
11、
exit
exit
reboot
12、centos6:
rpm -qf /sbin/init
upstart
rpm -qi upstart (谁提供的包)
centos5;rpm -qf /sbin/init
rpm -qi SysVinit
centos7:which init
rpm -qf /lib/systemd/systemd
rpm -qi systemd
13、
centos6: vim /etc/inittab
0 halt
1 single user mode
2 multiuser (without nfs)
3 multiuser
4 unused
5 x11
6:reboot
id 5 initdefault
14:修改启动内核启动参数: a 字母键 , 1 进入单用户;
15、修改centos6 密码: 进入单用户模式:1, passwd 修改root 密码
16、centos5/6:系统初始化流程: ecs 模式进入启动过程
/etc/rc.d/rc.sysinit -run once at boot time
/etc/rc.d/rc.sysinit :x系统初始化脚本:
1、设置主机名;
2、设置欢迎信息
3、激活udev和selinux
4、挂载/etc/fstab 文件中定义的文件系统
5、检测根文件系统,并以读写方式重新挂载根文件系统
6、设置系统时钟
7、激活swap 设备
8、根据/etc/sysctl.conf文件设置内核参数
9、激活lvm及software raid 设备
10、加载额外设备的驱动程序
11、清理操作
17、ls /etc/rc5.d/ 指向 /etc/init.d/ (软连接的方式,控制服务的启动与停止)
k01smartd
/etc/rc5.d/k01smartd stop
18、独立服务:
ls /etc/init.d
19、 ls /etc/rc5.d/ 5模式下 cpus 是启动的 s 开头
ls /etc/rc1.d/ 1模式下:cpus 是停止的; k 开头
20、服务开机启动:
chkconfig --list atd
chkconfig atd on #开启模式
chkconifg atd off #关闭模式
chkconfig --level 35 atd off #关闭模式
runlevel
chkconfig --list
chkconfig --add testsrv
chkconfig --del testsrv
21、ll /var/lock/subsys 是否有atd 服务; (linux 启动)
subsys=${/etc/rc$runlevel.d/k??}
[ -f /var/lock/subsys/$sybsys -o -f /var/lock/subsys/$subsys.init ] || continue
service atd status
cat /sbin/service
22、服务名次序很重要
s10 network
s55 sshd
23、依赖服务开 关顺序:
s1a s2b s3c 开顺序:
k3c k2b k1a 关顺序:
23、编写服务脚本:
/etc/init.d/atd restart
service atd restart
chkconfig --list
cat /etc/init.d/atd
chkconfig :345(level on) 95(s) 5(k)
vim /etc/inti.d/testsrv #!/bin/bash #chkconfig: 35 96 4 #description:test service source /etc/init.d/functions case $1 in start) [ -f /var/lock/subsys/testsrv ] && action "testsrv is started " touch /var/lock/subsys/testsrv action "testsrv is starting /Starting sshd " sleep 3 ;; stop) rm -f /var/lock/subsys/testsrv action "testsrv is stopped" ;; status) [ -f /var/lock/subsys/testsrv ] && echo testsrv is starting || echo testsrv is stooped ;; *) echo "usage:service test start|stop|status" ;; esac
chmod +x /etc/init.d/testsrv
chkconfig --add testsrv
chkconfig --list testsrv
chkconfig --level 5 testsrv off /chkconfig testsrv off
ls /etc/rc5.d/
k03testsrv
ctrl +alt +delete 重启
24、通用脚本:
ls /etc/rc{1,2,3,4,5}.d/
ll /etc/rc5.d/s99local
/etc/rc5.d/s99local --> ../rc.local
25、cat /etc/rc.local 开机自动启动服务
26、service --status-all
27、centos6:xinetd
telnet-server 依赖与xineted 服务
yum install telnet-server
yum install telnet
telnet :off
chkconfig telnet on 启动服务;
ll /etc/xineted.d/telent
service xineted start 启动xineted 脚本;
ss -nlt 查看监听端口:xineted 监听23 端口;
28、cat /etc/initttab
ctrl+ alt |delete /etc/init/control-alt-delete.conf 重启机器
exec /sbin/shutdown -r now "control-alt-delete pressed "
29、ups :机器停电,提供电池,让机器正常关机,避免出现故障
30、pa aux |grep mingetty (负责登录界面 )
respawn 再生
31、总结:centoss5;
/sbin/init --> (/etc/inittab)--> 设置默认运行级别-->运行胸痛初始化脚本、完成系统初始化--》 (关闭
对应下需要关闭的服务)启动需要启动服务-->--设置登录终端
32、centos6
CentOS 6启动流程:
POST --> Boot Sequence(BIOS) --> Boot Loader --> Kernel(ramdisk) -->
rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认
运行级别 --> 系统初始化脚本rc.sysinit --> 关闭或启动对应级别的服务 --> 启动终端
33、grub 0.97
hexdump -C -n 512 /dev/sda ddi if=/dev/sda of=/dev/data/mbr bs=1 count=446 dd if=/dev/zero of=/dev/sda bs=1 count=446 hexdump -C -n 512 /dev/sda -V reboot
34、修复grub
救援模式:
dd if=/dev/zero of=/dev/sda bs=1 count=446
chroot /mnt/sysimage
grub-install /dev/sda
sync
sync
35、单用户模式:seliux=0
36、grub-install 修复grub
root@centos6 grub]# ls device.map grub.conf minix_stage1_5 stage2 e2fs_stage1_5 iso9660_stage1_5 reiserfs_stage1_5 ufs2_stage1_5 fat_stage1_5 jfs_stage1_5 splash.xpm.gz vstafs_stage1_5 ffs_stage1_5 menu.lst stage1 xfs_stage1_5 [root@centos6 grub]# dd if=/dev/zero of=/dev/sda bs=1 count=446 [root@centos6 grub]# grub-install /dev/sda [root@centos6 grub]# hexdump -C -n 512 /dev/sda
37、1.5阶段修复:
grub-install ;救援模式;需要切根 ;
hexdump -C -n13824 /dev/sda -v (27(扇区)*512=13824)
dd if=/dev/zero of=/dev/sda bs=1 count=10000 skip=512 seek=512
[root@centos6 grub]# hexdump -C -n 13824 /dev/sda -v
进入磁盘救援模式:
grub
root (hd0,0) #第一个磁盘第一个分区
setup (hd0)
exit
exit
reboot
重启机器: ecs 进入单用户模式:a 字符,selinux=0 跳过selinux 检查;
38、
[root@centos6 ~]# cat /boot/grub/grub.conf 配置文件详解:
title CentOS 6 (2.6.32-696.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=rel=aut o KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-696.el6.x86_64.img title centos8 (sun-linux) kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=c07de17f-dc51-47bc-9f43-68 b025026209 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashker nel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img title centos9 (sun-linux) kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 (rhgb 去掉图形界面;quiet 显示内核输出 ) initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img
40、
[root@centos6 ~]# cat /boot/grub/grub.conf 配置文件详解:
title centos9 (sun-linux) initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 (rhgb 去掉图形界面;quiet 显示内核输出 )
启动菜单:
e 编辑 ,d
initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img
o 新增一行:
e 编辑 删掉的那一行:支持自动补全
initrd /initramfs-2.6.32-696.el6.x86_64.img
b 启动
grub 编辑二阶段;
41、
windows 打开剪贴板:mspaint; 像素:640*480
splashimage=(hd0,0)/grub/splash.xpm.gz
[root@centos6 ~]# ls /boot//grub/splash.xpm.gz
gzip -d /boot//grub/splash.xpm.gz
gunzip /boot//grub/splash.xpm.gz
[root@centos6 app]# rpm -qa ImageMag*
ImageMagick-6.7.2.7-6.el6.x86_64
[root@centos6 app]# convert -resize 640x480 -colors 14 win.jpg win.xpm
head win.xpm
[root@centos6 app]# cp win.xpm.gz /boot/grub/
[root@centos6 ~]# vi /boot/grub/grub.conf
splashimage=(hd0,0)/grub/win.xpm.gz
reboot
42、单用户增加密码:
[root@centos6 ~]# vi /boot/grub/grub.conf
default=0
password centos
password --md5 $grub-md5-crypt
password --encrypted $grub-crypt
timeout=5
MD5生成密钥口令;
grub-md5-crypt
grub-crypt