转自https://blog.csdn.net/dulin201004/article/details/7396968

一、/boot/目录中的文件和目录

Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有:

(1)系统Kernel的配置文件;

(2)启动管理程序GRUB的目录,里面存放的都是GRUB在启动时所需要的画面、配置及各阶段(stage1, stage1.5, stage 2)的文件。见下图。

(3)Initrd文件,是系统启动时的模块供应的主要来源;

(4)System.map文件时系统Kernel中的变量对应表;

(5)vmlinuz是在启动过程中最重要的一个文件,因为这个文件就是实际系统所使用的kernel。

二、/boot/grub目录

2.1 grub.conf文件

这个文件其实是启动管理程序GRUB的配置文件。在同一层目录下面(/boot/grub/)还有一个它的镜像文件menu.lst。而在SUSE中menu.lst是GRUB实际用到的文件。

下面这个文件是我系统上摘录的。

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda2

# initrd /initrd-version.img

# boot=/dev/sda default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Linux (2.4.20-8) root (hd0,0) A kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ B initrd /initrd-2.4.20-8.img C

说明:

A: root(hd0,0)表示/boot/的路径。我的/boot/位于/dev/sda1,也就是BIOS检测到的第0号硬盘的0号扇区。

B: 告诉GRUB到哪里去找vmlinuz-2.4.20-8这个kernel,这里的“绝对路径”其实是/boot/vmlinuz-2.4.20-8,而文件的物理位置                       在/dev/sda1上。后面的ro表示以只读的方式读取该文件,而“root=LABEL=/”表示以标签名称为“/”的文件系统为根文件系统。这个               根文件系统与/boot/的位置是两个概念,这里的root是加载Kernel时的一个参数,目的是告诉Kernel,根文件系统在哪里。

实际上/boot/可以挂载到其他的硬盘上。只要在A的位置说明准确就可以了,如root(hd1,0)表示/boot/在第2块硬盘上。

C: 告诉GRUB到哪里去取文件initrd,它的“绝对路径”也是/boot/initrd-2.4.20-8.img。

2.2 其他文件

毫无疑问,grub.conf文件最重要。但在/boot/grub/中还有其他一些文件,我们也可以看看它们的作用。

2.2.1 stages文件

* stage1:它是硬件引导扇区(MBR)的备份文件。

* xxx_stage1_5:这些文件的作用是连接stage1到stage2的一个通道,里面唯一存放的是该系统文件的格式,所以只要被支持的文件,就会预先存放一个格式文件在其中。

* stage2:该文件是GRUB的核心程序,它的主要功能是:

  • 提供菜单
  • 读取配置文件
  • 连接下一个boot sector

2.2.2 device.map

该文件直接侦测目前的硬件来假设BIOS所记录的实体磁盘有哪些,默认值是安装系统时就记录好的。在之后加入的磁盘,在该文件中没有显示。

2.2.3 splash.xpm.gz

启动时的背景图片。

三、System.map文件

System.map文件是一个索引文件,它记录了kernel中的symbols的位置,symbols包括有变量或函数名称。

[root@patrickxia boot]# head -10 System.map-2.4.20-8 c0100000 A _text c0100000 t startup_32 c01000a5 t checkCPUtype c0100133 t is486 c0100142 t is386 c010018c t L6 c010018e t ready c010018f t check_x87 c01001b6 t setup_idt c01001d3 t rp_sidt

这些symbols在内核中的位置对于从事内核编程的人员有重要的意义。

四、kernel及initrd

4.1 kernel文件

kernel主要负责的是北桥、南桥、CPU及内存,可见它们都是整个主机最重要的硬件核心部分,kernel如果处了问题,系统肯定无法启动起来。

4.2 initrd文件

initrd的全名是initial ram disk,就是启动系统所需加载的虚拟磁盘。

在系统启动过程中,kernel、initrd和system module是依次加载的。initrd包含一部分内核模块,主要是一些关键的外部硬件,如SATA、SCSI和USB等外设。它如果失败当然也会影响系统启动。

而system module这些系统中的模块,是与支持和启动无很大关系的硬件有关,如果没有这些硬件设备的支持,系统也可以启动完成,只是存在功能上的缺失,如声卡、网卡、显卡等。这些系统模块也可以在启动后,以modprobe的方式载入模块使用。

---------------------------------->人生犹如负重致远,不可急于求成。 自律使人自由!

Linux中 /boot 目录介绍的更多相关文章

  1. Linux中 /boot 目录介绍 【转载】

    Linux中 /boot 目录介绍 转自:点击打开链接 一./boot/目录中的文件和目录 Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有: (1)系统Kernel的配置文件 ...

  2. linux中各目录及详细介绍

    一.Linux文件系统的层次结构 在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构,如图: 二.目录 1.目录的定义 目录相当于Windows中的文件夹,目 ...

  3. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  4. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

  5. Linux课程---13、linux中任务计划介绍(任务计划分类)

    Linux课程---13.linux中任务计划介绍(任务计划分类) 一.总结 一句话总结: 1.一次性任务计划:at 2.周期性任务计划:crontab 1.linux中如何添加一次性任务计划? at ...

  6. Unix/Linux中/usr目录的由来

    在Linux系统中,有一个很重要的目录——/usr目录.关于这个目录名称的由来,网上主要有下面几种说法: user的缩写 User Shareable Read-only的缩写 Unix/User S ...

  7. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  8. Linux中一些目录名称的含义

    挖Linux中的古老缩略语[2005-06-22 15:23][Nigel McFarlane][TechTarget] Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世纪是相对于计算机 ...

  9. Linux中各个目录作用

    对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦.比如没有C盘,没有分盘符,一大堆不知道用途的文件 ...

随机推荐

  1. layui的跳转链接实现分页low

    layui.use(['laypage', 'layer'], function(){ var laypage = layui.laypage ,layer = layui.layer; laypag ...

  2. 2020牛客寒假算法基础集训营6 E.立方数(唯一分解定理 素数筛)

    https://ac.nowcoder.com/acm/contest/3007/E 放下题解 #include<bits/stdc++.h> using namespace std; t ...

  3. js秒数倒计时

    代码 /** * 调用回调函数 * @param callback 回调函数体 * @param args 参数 */ execCallback: function (callback, args) ...

  4. 一些PC小软件/工具/神器备份

    小巧.有用的工具,提升工作效率. 以下所有软件均在吾爱破解可以找到(善用搜索) everything(本机文件搜索神器) 天若OCR文字识别(强无敌) QQ拼音截屏工具(从QQ拼音/QQ中独立拿出来的 ...

  5. JDK 动态代理的实现

    JDK 动态代理的实现 虽然在常用的 Java 框架(Spring.MyBaits 等)中,经常见到 JDK 动态代理的使用,也知道了怎么去写一个 JDK 动态代理的 Demo,但是并不清楚实现原理. ...

  6. Luogu4316 | 绿豆蛙的归宿 (期望DP)

    题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都 ...

  7. npm 升级到最新版本

    先npm -v查看自己的npm 是否是最新版本,如果不是则进入安装node的文件夹,可通过 where node 查找该文件夹. 进入之后使用: npm i npm -g 之后使用: npm -v 查 ...

  8. Git下载GitHub仓库里的某一个文件夹或某一个文件

    从Github上下载github上的整个项目,可以用下面指令: git clone https://github.com/XXX/xxxxx.git 其中:XXX是用户在Github上的用户名 xxx ...

  9. DOM操作节点对象集合

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  10. AE开发常见问题总结

    一. Arcgis10.0 组件初始化失败解决方法: ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.EngineOrDe ...