转自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. Cloudera Manager和CDH版本的对应关系

    来源:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#c ...

  2. [ERR] Node goodsleep.vip:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

    解决方案 以前的cluster节点信息 保留 要删除 dump.rdb node.conf集群启动时自动生成文件

  3. dos命令获取系统时间与变量定义

    1.获取系统时间及格式化 参考文章: 1.1 cmd下获取系统时间 1.2 获取系统时间的DOS命令 2.变量定义 https://www.jb51.net/article/49197.htm 3.使 ...

  4. 实现Windows数据更新

    一.枚举 枚举是一组描述性的名称 定义一组有限的值,不能包含方法 对可能的值进行约束 .定义枚举类 public enum Gender { Male,Female } .使用枚举表示整数值 publ ...

  5. .Net Core的总结

    一.什么是.NET Core .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案 ...

  6. 【巨杉数据库Sequoiadb】点燃深秋,巨杉数据库亮相DTC数据技术嘉年华大会

    2019年11月15日,第九届数据技术嘉年华大会在北京隆重召开,本次大会以  “开源 • 智能 • 云数据 - 自主驱动发展 创新引领未来” 为主题,探索数据价值,共论智能未来.SequoiaDB 巨 ...

  7. 查看Spark与Hadoop等其他组件的兼容版本

    安装与Spark相关的其他组件的时候,例如JDK,Hadoop,Yarn,Hive,Kafka等,要考虑到这些组件和Spark的版本兼容关系.这个对应关系可以在Spark源代码的pom.xml文件中查 ...

  8. java8的ConcurrentHashMap为何放弃分段锁,为什么要使用CAS+Synchronized取代Segment+ReentrantLock

    原文地址:https://cloud.tencent.com/developer/article/1509556 推荐一篇 ConcurrentHashMap 和 HashMap 写的比较的的文章 j ...

  9. Appium+Python移动端(Android)自动化测试环境搭建

    一.安装JDK 下载好jdk安装包后直接下一步直至安装完成即可,安装完JDK后配置环境变量 :计算机→属性→高级系统设置→高级→环境变量: 系统变量→新建 JAVA_HOME 变量 变量值填写jdk的 ...

  10. C++——字符串处理

    11.用字符数组存储和处理字符串 字符数组的声明和引用  字符串: 字符串常量 “china”,没有字符串变量,用字符数组来存放字符串,字符串以‘\0’结束. 字符串数组的初始化: 逐个输出输入字符串 ...