• 系统启动-服务-登录流程-内核参数-selinux


      过程 首先经过加电自检,POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测,并且通过BIOS确定一个引导设备,然后就去加载这个设备的前512个字节(MBR表),前446字节 bootloader,中间64字节 分区表,最后2字节 55AA。

    bootloader就是启动时所需要运行的程序,对于Linux来说bootloader就是GRUB,启动GRUB由两阶段组成,第一阶段在MBR的前446字节中,第二阶段在 /boot/GRUB/,GRUB目的就是找到内核文件(内核最核心的文件就是 核心文件:/boot/vmlinuz- VERSION -release),/boot/grub/grub.conf 文件就写的有 内核文件在哪里。然后就加载内核文件。

        查看硬盘的前512字节 : hexdump  -C  -n  512  /dev/sda

        lsmod 查看当前加载到内存中的所有驱动

        卸载模块  rmmod  ext3

    centos6 系统启动过程

    • 1.加载BIOS的硬件信息,获取第一个启动设备
    • 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
    • 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
    • 4.核心执行init程序,并获取默认的运行信息
    • 5.init程序执行/etc/rc.d/rc.sysinit文件
    • 6.启动核心的外挂模块
    • 7.init执行运行的各个批处理文件(scripts)
    • 8.init执行/etc/rc.d/rc.local
    • 9.执行/bin/login程序,等待用户登录
    • 10.登录之后开始以Shell控制主机

    在GRUB的过程中会加载内核,很重要就是加载  /boot/vmlinux与/boot/initramfs.img文件

    加载内核文件,内核文件就在光盘中存在的,和光盘中的文件对比,看得出文件一模一样,所以如果你这个文件丢了,还可以通过光盘找回,initramfs.img 文件其实是一个小的操作系统,在启动的时候需要找到他加载驱动程序,如果他丢了也是通过光盘救援找到,  1 rescue mode   2 chroot /mnt/sysimage  3 mkinitrd /boot/initramfs-`uname -r`.img `uname -r`   4 exit;exit;reboot  以上四步可以找到。

         

     救援模式

    首先连接光盘,然后开机,在加载进度条的时候,按下ESC键,使用光盘启动,在实际工作中,按F2或者DEL,调出BIOS,设置光盘启动

          

     然后选择1.

            

     df查看当前挂载情况,做完操作之后,然后exit退出就行了自动重启。

     运行 init进程时  就会加载  /etc/initab

     系统运行级别

     

    /etc/inittab 文件定义了系统的默认启动方式,同时也指定了,每个系统运行级别,后面有个参数,就是指定要去加载那个rc#.d/下面的脚本,比如当前运行级别为3,就会加载rc3.d下面的脚本文件,这些服务脚本,主要是K/S 开头的,K表示停止,S表示运行。数字的含义就是表示顺序。越大表示越后面。而在每个rc#.d/下面都有一个S99local-->rc.local。所以/etc/rc.d/rc.local的作用就是,开机你想运行的脚本 扔在这里就可以了。而对于Centos7就要加上X权限才可以使用

    自己编写Centos6 服务脚本

    版本6

    Service atd restart   service 其实就是 运行一个脚本  /etc/init.d/SCRIPT

    chkconfig  --list  查看系统服务列表(自启情况)

        on 表示 开启 off表示关闭

    chkconfig vsftpd  on/off   全开 在2 3  4 5 状态下开启

     /etc/rc.d/rc.local     /etc/rc.local   这两个文件 开机就会运行,所以也可以把启动命令写在这里,就可以做到开机自启

    xinetd 瞬态服务

    对于一些访问量不大的服务来讲,你还要跑,因为有很少一部分还是需要用到的,你服务一直开启也是一个浪费,所以会有xinetd服务去代理,这些访问量不大的服务都由xinetd去代理,平常只有xinetd服务开启,当有用户访问服务时,由xinetd去唤醒对应的服务提供服务,当服务完成时,对应的服务就会关掉,但是xinetd服务会一直开启。而在CentOS7上已经没有xinetd了,由systemd完成的。

     Centos7来讲,系统第一个进程已经不是init,而是systemd,它不再去读取inittab文件

    版本7

    /usr/lib/systemd/system:每个服务最主要的启动脚本设置,类似于之前的 /etc/init.d/ 

    /usr/lib/systemd/system/atd.service

    命令:systemctl COMMAND name.service 

    • 重载或重启服务:先加载,再启动  systemctl reload-or-restart name.service 
    • 查看某服务当前激活与否的状态:  systemctl is-active name.service
    • 查看所有已经激活的服务:  systemctl list-units --type|-t service 
    • 查看所有服务:  systemctl list-units --type service --all|-a 
    • 查看所有服务的开机自启状态:  chkconfig --list ==> systemctl list-unit-files --type service 
    • 用来列出该服务在哪些运行级别下启用和禁用  chkconfig sshd –list ==>      ls /etc/systemd/system/*.wants/sshd.service
    • 查看服务是否开机自启:  systemctl is-enabled name.service
    • systemctl    restart  atd.service 
    • systemctl disable crond.service
    •  systemctl enable crond.service

    Centos7添加服务到 systemctl管理中

    注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此 配置文件,而后可以选择重启  systemctl  daemon-reload  

    开机默认 运行级别

     

    用户登录流程

    全局配置: 

      /etc/profile 

      /etc/profile.d/*.sh 

      /etc/bashrc

    个人配置: 

      ~/.bash_profile 

      ~/.bashrc

    用户登录脚本执行顺序

        执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

     

    全局:  /etc/profile, /etc/profile.d/*.sh 

    个人:   ~/.bash_profile 

    功用:  (1) 用于定义环境变量  (2) 运行命令或脚本

    全局:/etc/bashrc 

    个人:~/.bashrc 

    功用:  (1) 定义命令别名和函数  (2) 定义本地变量 

      修改profile和bashrc文件后需生效 

         source  /etc/profile

    退出任务

      ~/.bash_logout文件中(用户)     创建自动备份    清除临时文件

     

     内核参数

    /proc/sys/ 系统内核各种参数  如 /proc/sys/net/ipv4

    因为这些都是在内存中的,所以修改了不能保存,所以可以通过工具 sysctl工具进行修改内核参数,

    sysctl -a 查看系统所有内核参数

    /etc/sysctl.conf 配置文件管理的就是/proc/sys中的内核参数

    /etc/sysctl.conf 配置文件中 将需要的参数写进去就可以保存了,sysctl  -p重新生效

     1为开启 0为关闭

    SELinux

    getenforce   获取selinux状态,

          enforceing代表开启,

          permissive代表警告

          disabled代表关闭

    临时关闭或开启     setenforce 0    //关闭  ;  setenforce 1    //开启

    /etc/selinux/config

           SELINUX=enforcing 改为 SELINUX=disabled

    sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

    要有多努力才能对得起奔波的脚步和身上的期望
  • 相关阅读:
    紫微斗数诸星分级及分类
    n次独立重复试验暨伯努利试验
    信息系统项目管理师上午综合知识试题解析: 项目集治理
    三点估算和PERT技术
    自己写操作系统---bootsector篇
    硬盘分区表知识—详解硬盘MBR
    如何在自定义端口上运行 Spring Boot 应用程序?
    查询所有同学的学号、姓名、选课数、总成绩
    查询平均成绩大于60分的同学的学号和平均成绩
    查询“001”课程比“002”课程成绩高的所有学生的学号;
  • 原文地址:https://www.cnblogs.com/hxfcodelife/p/12024815.html
Copyright © 2020-2023  润新知