Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3696881
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2018-05-28 14:20:40

1 开机后BIOS自检

    由BIOS判断磁盘上有哪些引导程序之后加载

    常见bootloader   –>   grub lilo syslinux/isolinux

2 由(bootloader)ISOLINUX 进行安装引导(第一阶段)

    由引导程序isolinux.bin启动系统

    启动时默认读取cdrom中的isolinux.cfg(配置文件)

    列出认为最重要的部分

   

    需在最后添加  inst.ks=kickstart配置文件所在位置(如果要实现自动安装)

    menu label 为安装时的引导选项 kernel 要加载的内核· initrd=initrd.img是定义内核的挂在器是initrd.img(不是很懂 望高人指点) inst.stage2镜像所在位置

3 由bootloader 加载vmlinuz映像(第二阶段)

    vmlinuz包含有linux内核的静态链接的可执行文件

    bootloader 释放内核映像到内存 开始内核引导过程

    内核加载部分硬件驱动(通过devtmpfs)     

    并且释放initramfs

4 由内核判断initrd.img的格式如果是cpio则释放到rootfs(加载必要的驱动)

    会被bootloader加载到内存中,并且启动init程序(所有进程的父进程  PID为1)。之后它会被复制到RAM中并挂载到系统上,并作为临时根文件系统使用

    并且加载相关模块驱动,从而找到真正的根文件系统。

    cpio-initrd( >= 2.6 ) image-initrd( 2.4 < )

    最主要区别为image-initrd的运行的第一个程序为linuxrc

    在运行完毕后又重新将系统控制权交给内核

    cpio-initrd运行的第一个程序为init

    之后不会将系统交给内核而是完全由init程序操作

5 执行initrd.img里的init程序进行初始化

    ./usr/sbin/anaconda-diskroot  查找kickstart文件

    以下为./usr/sbin/fetch-kickstart-disk函数输出

    ./usr/sbin/dmsquashfs-live-root程序挂载squashfs.img

    Init程序停止initrd文件系统

    并且重新remount到真实文件系统

    直到init程序到达basic system

6 运行squashfs中的usr/bin/anaconda程序 启动安装

    安装时anaconda读取kickstart中的内容进行安装

    以上为镜像安装时的全部启动过程,若有不对的地方还望指出。


阅读(3062) | 评论(0) | 转发(0) |
0

上一篇:C中printf 和write的区别

下一篇:isolinux制作

给主人留下些什么吧!~~