当你使用 df -hT 命令查看 Linux 磁盘分区的「空间使用情况」, 如下图:你会发现/boot(上图最后一行)是单独一个分区, 为什么这个目录要单独分配一个分区呢?
首先/boot是干什么的
一句话:这个目录放的是"让系统能启动起来"所需要的所有文件。你按下电源键,电脑不是直接就进Linux的。中间有一套流程:硬件自检 → 引导程序加载 → 内核启动 → 系统初始化。
/boot就是这套流程里最关键的那一环的"仓库"。没有它,系统根本不知道怎么把自己跑起来。再看看里面具体有哪些文件
用ls -lh /boot看一下,大概会见到这几类东西:名字奇怪,但这就是Linux内核。字母 z 代表压缩,如vmlinuz-5.15.0-176-generic这样的文件,数字是版本号。它是整个系统的核心,负责管理内存、调度进程、跟硬件打交道。通常你会看到不止一个版本,这是正常的——每次内核更新都会留着旧版本当备份,万一新版本有问题,还能退回去。2. initrd.img-xxx — 临时根文件系统全名是Initial RAM Disk。可以把它理解成一个"临时工具箱",在真正的根文件系统挂载之前,系统先用这个小环境做一些准备工作,比如加载磁盘驱动。没有它,内核可能连自己的硬盘都找不到。GRUB是最常见的Linux引导程序。你开机看到的那个选单(选Ubuntu还是Windows,或者选哪个内核版本),就是GRUB「画」出来的。grub/grub.cfg是它的主配置文件,一般不建议手动改,系统更新内核的时候会自动更新这个文件。4. config-xxx 和 System.map-xxxconfig文件记录的是这个内核编译时用的配置参数,一般用不到,除非你自己编译内核。System.map是内核符号表,调试内核崩溃的时候会用到,普通用户基本不会碰。Tips: 通常initrd.img-xxx, config-xxx 和 System.map-xxx的版本号与 vmlinuz-xxx 的版本号一致。系统通常会保留最近更新过的两个版本内核,以防万一...
为什么/boot容易满
每次 sudo apt upgrade或者 sudo yum update装新内核,旧内核不会自动删,文件会留在/boot里。时间一长,好几个旧内核版本堆在那,几百MB就没了。
很多发行版默认给/boot单独分区,如果只分了500MB左右。分完区之后你可能两三年都没想起来看它,直到有一天更新失败,才发现满了。有可能内核没装上,系统重启之后直接进了一个很奇怪的恢复模式。如何避免/boot空间问题?
使用 sudo apt autoremove --purge删除不用的自动安装依赖包(库)及内核。
现我来回答开始的那个问题,为什么这个目录要单独分配一个分区呢?多数情况下/boot都是划分独立一个分区, 其实这有点像 Windows 系统安装在 C 盘下,/boot目录下就是 linux 内核文件及启动文件所在地方, 除此之外, 单独把/boot放在一个独立分区, 还可以把非/boot分区的其它分区盘进行数据加密。所以不要把其它文件存放到/boot目录或修改/删除里边的文件,让系统管理这个目录下的文件。最后,你第一次遇到/boot相关的报错是什么情况?评论区说说 👇