系统启动和内核管理 --centos5/centos6

网友投稿 320 2022-11-10

系统启动和内核管理 --centos5/centos6

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:开源、可重用的软件堆栈支持CbM的实时处理和算法开发
下一篇:java实现简单石头剪刀布小游戏
相关文章

 发表评论

暂时没有评论,来抢沙发吧~