zoukankan      html  css  js  c++  java
  • Linux系统启动流程及grub重建(1)

    日志系统

    Linux系统启动流程

    PC: OS(Linux)

    POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab)


    启动的服务不同:
        运行级别:0-6
            0:halt
            1: single user mode, 直接以管理员身份切入, s,S,single
            2:multi user mode, no NFS
            3: multi user mode, text mode
            4:reserved
            5: multi user mode, graphic mode
            6: reboot

    详解启动过程
        bootloader(MBR)
            LILO: LInux LOader
            GRUB: GRand Unified Bootloader
                Stage1: MBR
                Stage1_5:
                Stage2: /boot/grub/

    grub.conf            

    default=0  # 设定默认启动的title的编号,从0开始
    timeout=5  # 等待用户选择的超时时长,单位是秒
    splashimage=(hd0,0)/grub/splash.xpm.gz  # grub的背景图片
    hiddenmenu # 隐藏菜单
    password redhat
    password --md5 $1$HKXJ51$B9Z8A.X//XA.AtzU1.KuG.    (说明:使用grub-md5-crypt杂质加密)
    title Red Hat Enterprise Linux Server (2.6.18-308.el5)  # 内核标题,或操作系统名称,字符串,可自由修改
        root (hd0,0)  # 内核文件所在的设备;对grub而言,所有类型硬盘一律hd,格式为(hd#,N);hd#, #表示第几个磁盘;最后的N表示对应磁盘的分区;
        kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/vol0/root rhgb quiet   # 内核文件路径,及传递给内核的参数
        initrd /initrd-2.6.18-308.el5.img # ramdisk文件路径
        password --md5 $1$HKXJ51$B9Z8A.X//XA.AtzU1.KuG.
    title Install Red Hat Enterprise Linux 5
        root (hd0,0)
        kernel /vmlinuz-5 ks=http://172.16.0.1/workstation.cfg ksdevice=eth0 noipv6
        initrd /initrd-5
        password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.



    查看运行级别:
    runlevel:
    who -r

    查看内核release号:
        uname -r


    破坏grub,bootloader
    dd if=/dev/zero of=/dev/sda count=1 bs=400
    sync 同步到磁盘

        
    安装grub stage1:
    # grub
    grub> root (hd0,0)
    grub> set (hd0)

    安装grub第二种方式:
    # grub-install --root-directory=/path/to/boot's_parent_dir  /PATH/TO/DEVICE

    grub.conf文件损坏
    grub> find
    grub> root (hd#,N)
    grub> kernel /PATH/TO/KERNEL_FILE
    grub> initrd /PATH/TO/INITRD_FILE
    grub> boot
    启动后重建grub.conf



    Kernel初始化的过程:
    1、设备探测
    2、驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)
    3、以只读挂载根文件系统;
    4、装载第一个进程init(PID:1)


    /sbin/init:(/etc/inittab)
        upstart: ubuntu, d-bus, event-driven
        systemd:

    id:runlevels:action:process
    id: 标识符
    runlevels: 在哪个级别运行此行;
    action: 在什么情况下执行此行;
    process: 要运行程序;

    id:3:initdefault:

    si::sysinit:/etc/rc.d/rc.sysinit    


    ACTION:
    initdefault: 设定默认运行级别
    sysinit: 系统初始化
    wait: 等待级别切换至此级别时执行
    respawn: 一旦程序终止,会重新启动



    /etc/rc.d/rc.sysinit完成的任务:
    1、激活udev和selinux;
    2、根据/etc/sysctl.conf文件,来设定内核参数;
    3、设定时钟时钟;
    4、装载键盘映射;
    5、启用交换分区;
    6、设置主机名;
    7、根文件系统检测,并以读写方式重新挂载;
    8、激活RAID和LVM设备;
    9、启用磁盘配额;
    10、根据/etc/fstab,检查并挂载其它文件系统;
    11、清理过期的锁和PID文件;



    for I in /etc/rc3.d/K*; do
      $I stop
    done

    for I in /etc/rc3.d/S*; do
      $I start
    done




    ##: 关闭或启动的优先次序,数据越小越优先被选定
    先关闭以K开头的服务,后启动以S开头的服务;

  • 相关阅读:
    vmware 连网问题
    js控制表单非法输入时提交
    简单的jsp&servlet 购物车项目
    html引入css不显示问题
    每天学点java_反射作用
    java选择特定的值2--抽象enum
    java选择特定的值
    1 小时 SQL 极速入门(一)
    460004600146002MNCMCCIMSI
    网络中存在2台DHCP服务器问题
  • 原文地址:https://www.cnblogs.com/jjzd/p/5812639.html
Copyright © 2011-2022 走看看