Linux中 /boot 目录介绍
转自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的方式载入模块使用。
原文地址:https://www.cnblogs.com/isme-zjh/p/11376338.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CephFS源码分析
- linux cache介绍及控制
- Lustre文件系统安装
- Lustre参数调整
- samba源码安装及调试
- 设计模式实战-状态模式,让代码更清爽简洁
- 改善深层神经网络——吴恩达深度学习课程笔记(二)
- Spring Boot 监听 Redis Key 失效事件实现定时任务,超时订单自动关闭绝佳实现
- TensorFlow的核心概念:张量和计算图
- 四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
- TensorFlow基础:创建计算图
- TensorFlow基础:常量
- 如何在Python中优雅地使用进度条?
- 绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!
- 「数据仓库架构」数据仓库的三种模式建模技术