zoukankan      html  css  js  c++  java
  • linux /boot目录下的文件分析

    一. Linux 启动流程

    首先说一下Linux系统大概的启动过程:

    1. 主机加电后, 系统首先加载BIOS, 这个BIOS是以写在主板上的.

    2. BIOS启动后,执行一些例如开机自检,硬件初始化等工作,然后读取硬盘的第一个扇区,这个扇区被称为MBR.这个扇区中存储了

     一个小程序,叫做boot loader.MBR很小,只有446B. 最常见的一种boot loader叫 grub.

    3. boot loader程序主要做两件事,一个是将内核加载到内存中,另一个是启动一个虚拟文件系统.内核文件是/boot/vmlinuz*,虚拟文件

    系统文件是/boot/initrd*.

    4.这个两个文件加载到内存中后,系统会加载真正的文件系统,然后启动1号进程init.这样一个系统就启动了

    下面主要分析一下/boot/vmlinuz和/boot/initrd文件的内容

    二. vmlinuz分析

    a. mkdir /tmp/vmlinuz&&cp /boot/vmlinuz-4.4.0-21-generic  /tmp/vmlinuz/

    b. cd /tmp/vmlinuz/

    c. od -t x1 -A d vmlinuz-4.4.0-21-generic | grep "1f 8b 08"

    本质上,vmlinuz-4.4.0-21-generic 是一个gzip压缩文件,但是不能直接用gzip指令解压,因为在这个文件的开头嵌入了gzip的代码.

    所以首先用指令c找到真正的压缩文件的头部.这个指令的输出形如:

    0018864 ac fe ff ff 1f 8b 08 00 00 00 00 00 02 03 ec fd
    然后执行下面的指令,其中的18868就是 18864+4,这里4是指1f 8b 08前面有4个字节.

    dd if=vmlinuz-4.4.0-21-generic bs=1 skip=18868 | zcat > vmlinuz-gakki

    objdump -D vmlinuz-gakki >> result

    我们可以看到,最终得到的result就是一个汇编文件.而vmlinuz-gakki文件本质上是一个可执行程序.可以尝试

    执行他, chmod +x vmlinuz-gakki &&./vmlinuz-gakki .

    显示Segmentation fault

    二. intrid分析

    首先将/boot/intird.img文件复制到/tmp文件夹下

    执行file /tmp/initrd.img-4.4.0-21-generic,得到的结果如下:

    /tmp/initrd.img-4.4.0-21-generic: gzip compressed data, last modified: Fri Jun 15 13:57:43 2018, from Unix
    可以看到本质上这是一个gzip格式的压缩文件

    cd /tmp

    mv initrd.img-4.4.0-21-generic initrd.img-4.4.0-21-generic.gz

    gzip -d initrd.img-4.4.0-21-generic.gz

    file initrd.img-4.4.0-21-generic

    得到的结果为:

    initrd.img-4.4.0-21-generic: ASCII cpio archive (SVR4 with no CRC)
    这是一个cpio文件

    执行 cpio -idmv < initrd.img-4.4.0-21-generic

    这样,我们可以看到它最终生成了一个小型的文件系统.

  • 相关阅读:
    bzoj4734
    51nod1056
    51nod1048
    51nod1248
    51nod1044
    51nod1132
    51nod1146
    51nod1226
    Spring Boot: Jdbc javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
    sqlserver命令创建数据库和表 demo
  • 原文地址:https://www.cnblogs.com/elnino/p/9235761.html
Copyright © 2011-2022 走看看