linux /boot目录简介

本文整理自网络:

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

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

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

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

[root@localhost boot]# ls -al
total 5623
drwxr-xr-x  4 root root    1024 Jul  6 04:49 .
drwxr-xr-x 25 root root    4096 Jul 18 20:04 ..
-rw-r--r--  1 root root   69593 Mar 16  2010 config-2.6.18-194.el5
drwxr-xr-x  2 root root    1024 Jul  5 22:52 grub
-rw-------  1 root root 2672636 Jul  6 06:52 initrd-2.6.18-194.el5.img
drwx------  2 root root   12288 Jul  6 04:41 lost+found
-rw-r--r--  1 root root  110979 Mar 16  2010 symvers-2.6.18-194.el5.gz
-rw-r--r--  1 root root  967675 Mar 16  2010 System.map-2.6.18-194.el5
-rw-r--r--  1 root root 1875796 Mar 16  2010 vmlinuz-2.6.18-194.el5
-rw-r--r--  1 root root     158 Mar 16  2010 .vmlinuz-2.6.18-194.el5.hmac

(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.imgC

说明:

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文件

[root@patrickxia grub]# ls -l | grep stage 

-rw-r--r-- 1 root root 7840 6月 14 02:09 e2fs_stage1_5 
-rw-r--r-- 1 root root 7536 6月 14 02:09 fat_stage1_5 
-rw-r--r-- 1 root root 6880 6月 14 02:09 ffs_stage1_5 
-rw-r--r-- 1 root root 8448 6月 14 02:09 jfs_stage1_5 
-rw-r--r-- 1 root root 7040 6月 14 02:09 minix_stage1_5
 -rw-r--r-- 1 root root 9408 6月 14 02:09 reiserfs_stage1_5
 -rw-r--r-- 1 root root 512 6月 14 02:09 stage1 
-rw-r--r-- 1 root root 106364 6月 14 02:09 stage2 
-rw-r--r-- 1 root root 6528 6月 14 02:09 vstafs_stage1_5 
-rw-r--r-- 1 root root 9320 6月 14 02:09 xfs_stage1_5

* 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文件

[root@patrickxia boot]# ls -l vmlinuz* lrwxrwxrwx 1 root root 16 6月 14 01:51 vmlinuz -> vmlinuz-2.4.20-8 -rw-r--r-- 1 root
root 1122186 2003-03-14 vmlinuz-2.4.20-8

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

4.2 initrd文件

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

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

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

时间: 2024-07-30 21:57:45

linux /boot目录简介的相关文章

Linux proc目录下子文件或子文件夹的作用_Linux

一.Linux /proc目录 简介Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的.下面列出的这些文件或子文件夹,并不是

Linux系统/boot目录破损无法启动怎么办

linux系统中的/boot目录存放着系统开机所需要的各种文件,其中包含内核.开机菜单及所需配置文件等等. 但是当不小心删除了/boot目录里的某些文件或者干脆整个/boot目录都不见了的情况下,该如何恢复系统并重启系统呢? 以下通过加载磁盘镜像文件以重装内核与grub2加载器的方式可解决这个问题,只是过程有点复杂. 实验环境:KVM中的rhel7系统. 1.模拟删除/boot目录,使系统无法启动 2.reboot尝试重新启动,确认系统已故障 3.强制关闭系统 4.进入虚拟机配置页面,通过以下点

Linux Namespace机制简介

最近Docker技术越来越受到关注,作为Docker中很重要的一项技术,Namespace也就经常在Docker的简介里面看到. 在这里总结一下它的内部机制.也解决一下自己原来的一些疑惑. Namespace是什么: C++中的Namespace: 首先,先提一下Namespace是什么.最早知道这个名词是在学习C++语言的时候.由于现在的系统越来越复杂,代码中不同的模块就可能使用相同变量,于是就出现了Namespace,来对全局作用域进行划分. 比如C++的标注库都定义在STD Namespa

Linux学习之CentOS(四)----Linux各目录的介绍

[正文] 我们在输Linux命令的时候,经常要进入到某目录下进行操作,所以理解这些目录的含义就显得非常重要了,下面来详细介绍一下.虽说一下子记不住,但是可以作为字典方便随时查阅. 一.Linux各目录的作用: 目录名 目录作用 /bin/ 存放系统命令的目录,普通用户和超级用户都可以执行.不过放在/bin下的命令在单用户模式下也可以执行 /sbin/ 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看 /usr/bin/ 存放系统命令的目

Linux的目录结构_unix linux

Linux的目录结构比DOS复杂多乐,让我们来看看它的目录里有些什么东西吧. /bin (binary)    这个目录包含着所有的标准命令和应用程序. /boot    这里存放给lilo使用的一些文件. /dev (device)    这个目录包含着与终端和外设的文件接口,在Linux下,文件和设备是用同种方法访问   的.系统上的每个设备都应该在这里有一个对应的设备文件.    考察一下这个宏:    #define putchar(ch) fputc(ch,stdout)    其中f

面向 DBA 的 Linux Shell 脚本简介

http://www.itpub.net/showthread.php?s=&threadid=720028 面向 DBA 的 Linux Shell 脚本简介 7 年前,Oracle 发布了 Linux 上的第一个商业数据库.从那时起,Oracle.Red Hat 和 Novell/SUSE 就不断地合作更改 Linux 内核,从而提高数据库和应用程序的性能.正因为这样,用于 Linux 的 Oracle 数据库 10g 才包含了与操作系统紧密相关的许多增强功能.DBA 比以往任何时候更需要了

redhat如何安装配置samba实现win共享linux主机目录

redhat安装配置samba实现win共享linux主机目录 一.安装前准备 1.使用Samba服务器需要防火墙开放以下端口 UDP 137 UDP 138 TCP 139 TCP 445 #配置防火墙端口  www.2cto.com [root@roothomes ~] vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT -A INPUT -m state -

linux查看目录大小及硬盘大小

  linux查看目录大小及硬盘大小的命令: # du -ks ---in all # du -k ---every last du和df命令都被用于获得文件系统大小的信息:df用于报告文件系统的总块数及剩余块数,du -s /用于报告文件系统使用的块数.但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的.如下例: # du -s /tmp 返回如下值: ---12920 /tmp 而 df /tmp返回如下值: Filesystem --512-blocks

Linux理论05:Linux的目录结构

本文介绍Linux的目录结构,属于基础理论. Linux的目录 Linux的所有目录都是从根目录开始,根目录表示为/.此与Windows不同,Windows的所有目录是从盘符开始,如C:,D:. 根目录下的一级目录有其各自特定的功能,一般是遵循一定的规则.这个规则是由FHS规定的.用脑图展示如下.注意:usr不是User的缩写,而是Unix Software Resource的缩写.脑图原版请到汪汪的网盘下载,路径为/Linux/Linux_FHS.xmind. 绝对路径与相对路径 绝对路径是以