深入理解 initramfs 框架与 x86 系统启动过程
在 Linux 系统中,initramfs 框架和系统的启动过程是非常重要的部分。下面我们将详细探讨这些内容。
1. 内核构建与 GRUB 配置更新
在构建新内核后,位于 /boot/grub/grub.cfg 的 GRUB 配置文件会更新,以反映新内核可用于启动这一事实。需要强调的是,这些操作都与系统架构密切相关,这里主要讨论的是在 Ubuntu Linux x86_64 系统上构建内核的情况,不同架构和发行版在细节上会有所不同。
2. 理解 initramfs 框架
2.1 initramfs 与 initrd 的概念
initramfs(初始 RAM 文件系统)或 initrd(初始 RAM 磁盘)是什么?为什么需要它们?使用这一功能是可选择的,内核配置指令 CONFIG_BLK_DEV_INITRD 默认设置为 y ,即默认开启。对于那些无法提前确定某些信息的系统,如引导磁盘的主机适配器或控制器类型(SCSI、RAID 等),根文件系统的具体格式(ext2、ext4、btrfs、f2fs 等),或者这些功能以内核模块形式构建的系统,就需要 initramfs 功能。
现在,initrd 被认为是较旧的术语,如今更多使用 initramfs。它们的关键区别在于生成方式:
- 构建旧的 initrd 镜像:
find . | sudo cpio -R root:root |
超级会员免费看
订阅专栏 解锁全文
36

被折叠的 条评论
为什么被折叠?



