• 系统初始化


    目标:
    。探讨引导次序
    。掌握GRUB的角色
    。掌握init的角色
    。控制System V的服务
    
    引导次序概述:
    。BIOS初始化(基本输入输出系统,主板)
    。引导装载器
    。内核初始化
    。启动init之后通过执行以下次序进入到设定的运行级别:
        。/etc/rc.d/rc.sysinit
        。/etc/rc.d/rc和/etc/rc.d/rc?.d/
        。/etc/rc.d/rc.local
        。如果需要还将启动X
    
    引导装载器的组件
    。引导装载器
        。第一阶段 -小,驻留在MBR或引导磁道中(硬盘中一小部分)
        。第二阶段-从引导分区中引导(fdisk -l中有”*“标记的那一部分
    。为Linux的最小配置:
        。标题,内核,操作系统根以及初始化内存磁盘(initrd)
    。其他系统的最小配置:
        。标题,引导设备

    内核损坏修复方法:
    1.装载内核;
    当系统进入grub>模式的情况下输入kernel (hd0,0)/vmlinuz-2.6... ro root=/dev/vo10/root等。。。
    2.接着装载initrd:grub>initrd (hd0,0)/initrd...
    3.boot
    之后进入系统之后修复grub.conf文件

    进入系统之后还需要修复一下文件:
    #cd /boot/grub
    之后编辑grub.conf文件
    文件内容:
      title Redhat enterprise Linux 5.8 X86_64
        kernel (hd0,0)/vmlinuz-...
        initrd  (hd0,0)/initrd...img
    之后保存退出。重启系统即可。
    GRUB和grub.conf
    。GRUB ”the GRand Unified Bootloader“
        。在引导提示符提供命令行的界面
        。可以从ext2/ext3,ReiserFS,JFS,FAT,minix,或FFS文件系统引导
        。支持MD5密码保护
    。/boot/grub/grub.conf
    。改变grub.conf立即生效
    。如果在/dev/hda的MBR破损,重新安装引导装载器的第一阶段:
        /sbin/grub-install /dev/hda

    #fdisk -l  //查看当前设备,找到启动设备sda1
    #mount | grep sda1  //查看sda1设备挂载的分区
    #cd /boot/grub 接着进入查看grub.conf文件
    查看grub.conf文件介绍
      title 描述信息
      kernel (hd0,0)/vmlinuz第一块硬盘第一个分区 ro root=/dev/vol0/root
      initrd (hd0,0)/initrd
    启动引导过程:GRUB
    。选择镜像文件
        。在引导启动界面是通过上/下箭头选择
    。传递参数
        。在菜单编辑模式改变现有的参数
        。在GRUB命令行中输入boot命令

    单用户模式破解密码
    进入GRUB界面输入e,选择第二条编辑
    在kernel这行最后面加入single,之后输入b引导。
    之后输入passwd修改密码即可完成密码修改。
    可以通过#cat /proc/cmdline查看怎么启动的,之后reboot重启即可。

    #info grub  //查看grub文档
    可以在timeout之后设置password,或者在title下面设置password
    设置grub加密
    ①.在grub.conf文件中加上一行  
      password --md5 加密的字符串,也就是②中加密的字符串拷贝过来。
    ②.#grub-md5-crypt
    也可以通过vim编辑grub.conf文件,之后输入:read !grub-md5-crypt直接输入两次密码回车来保存。
    init初始化:
    。init读取他的配置文件:/etc/inittab
        。初始化运行级别
        。系统初始化脚本
        。指定运行级别脚本的目录
        。截取一些按键次序
        。定义不间断电源故障和恢复脚本
        。gettys 唤醒虚拟控制台
        。在运行级别5时初始化X
    /etc/inittab里面格式:
      描述信息:运行级别:系统参数:脚本
    运行级别
    。init定义了0-6,s,应急几种运行级别
    。选择运行级别可以通过下面的任意一种方法:
        。默认值定义在/etc/inittab
        。由引导装载器传递参数
        。使用命令init new_runlevel
    。显示当前和之前的运行级别
        /sbin/runlevel
    
    /etc/rc.d/rc.sysinit(系统初始化文件)
    。包括重要任务:
        。激活udev和selinux
        。按照/etc/sysctl.conf设置内核参数
        。设置系统时钟
        。装载键盘布局
        。启动交换分区
        。设置主机名
        。检测根分区并重新装载
        。激活RAID和LVM设备
        。启用磁盘配额
        。检查并挂在其他文件系统
        。清楚锁和进程ID文件
    引用下大佬之前写的:https://www.cnblogs.com/SZxiaochun/p/7726527.html
    /etc/rc.d/init.d/rc{0..6}.d/* 这个里面的K开头的文件代表杀死的优先级,S开头文件代表启动的优先级
    自定义启动引导过程:
    ①.在/etc/inittab中添加一行
    #tw:3:wait:/root/testwait.sh
    ②.在/root/testwait.sh脚本中输入脚本信息

    /etc/rc.d/init.d;rc{0..6}.d;rc.local
    System V 运行级别
    。不同的运行级别启动的服务不相同
        。每个运行级别有一个相对应的目录:
    。/etc/rc.d/rcX.d
        。System V 初始化脚本保存在:
    。/etc/rc.d/init.d
        。在运行级别的目录中的软连接使用start或stop调用init.d下的脚本
    
    控制服务
    。工具用来控制默认启动的服务
        。system-config-services:需要X的图形配置工具
        。ntsysv:基于ncurses的工具可以用在虚拟控制台
        。chkconfig:快速,多功能的命令行工具,用于脚本和Kickstart安装中
    。手工控制服务工具
        。service:立即启动或停止一个独立的服务
        。chkconfig立即启动或停止受xineted管理的服务。
    通常使用#servcie sshd stop这种启停服务的方式都可以通过/etc/init.d/sshd stop来操作,因为其中的sshd实际上就是/etc/init.d/sshd
    #chkconfig --list  | grep sshd //查看sshd服务在不同运行级别下是启动还是停止的信息;同时可以看到sshd在2级别是启动状态,接下来让sshd在2级别状态关闭
    #find /etc/rc.d/ -name "*sshd"  //查看rc.d目录下面sshd的文件
    #chkconfig --level 2 sshd off

    #find /etc/rc.d/ -name "*sshd"  //查看rc.d目录下面sshd的文件是否已经由s开头变成了k开头的文件。

     上图中使用bluetooth服务举例,通过删除rc3.d中的S25bluetooth快捷方式,然后重新建立一个K75bluetooth快捷方式只想/init.d/bluetooth,之后chkconfig检查发现k开头的情况下,在级别3下此服务为off

    respawn反复唤醒,如tty进程,我们反复kill,却一直有心进程出现

    x:5:respawn:/etc/X11/prefdm -nodaemon    //其中的x代表服务 

    /etc/rc.d/rc.local
    。运行在运行级别特定的脚本之后
    。通常放置自定义的指令
    。在很多情况下推荐在/etc/rc.d/init.d创建一个System V的初始化脚本,除非你启动的是一个不是很重要的服务器。可以作为启动方式执行现有的脚本。  

    BOIS-MBR-GRUB(grub.conf)kernel---vmlinz和initrd.img---welcome进入系统第一个进程/sbin/init(/etc/inittab),id:3:initdefault---rc.sysinit---rc3.d目录启动对应的服务。---rc.local启动。  

      

      

      

      

      

      

      

      

  • 相关阅读:
    PHP定时任务实现(计划任务 vs node.js)
    第三方支付,代支付接口调用
    iframe调用页面中的局部部分
    树状数据删除(TP5)
    PHP 代码编写注意事项总结归纳
    MySQL 存储过程与事物
    radio与checkbox的选中事件
    简单十步让你全面理解SQL
    生成条形码
    使2个div 在一行上显示
  • 原文地址:https://www.cnblogs.com/hongjinping/p/13765630.html
Copyright © 2020-2023  润新知