linux kernel 格式之 vmlinux、zImage、bzImage、vmlinuz、uImage
vmlinux 是编译出来的未经压缩的原始内核文件,是linux接受的可执行文件格式(ELF、COFF),vm 是 Virtual Memor
y 的缩写,与较老的DOS系统只有640K内存限制相比,linux 支持虚拟内存,linux可以使用硬盘空间作为虚拟
内存,因而得名 vm。
zImage 是由gzip压缩vmlinux文件,并加上一段解压启动代码得到的压缩文件,只能从0X00地址运行。
bzImage 表示 big zImage,bzImage 解压缩内核到高端内存(1M以上),zImage 解压缩内核到低端内存(第一个640K
),如果内核较小,可以采用 zImage 或 bzImage,内核较大就应该采用 bzImage
vmlinuz 是 zImage、bzImage的统称,编译内核时通过以下两种方式生成
1. 先make zImage,再 cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz
2. 先make bzImage,再 cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz
uImage 是U-boot使用的映像文件,使用工具 mkimage 在 zImage 文件头部补加长度为0X40的头信息,该头部信息说
明了该映像文件的类型、加载位置、生成时间、大小等信息,即从uImage的0x40位置开始的内容与zImage
、bzImage是一样的
GRUB 是一款多操作系统启动管理器,是 GRand Unified Bootloader 缩写,它可以从 FAT、minix、FFS、ext2、
ReiserFS分区读取内核,即使grub菜单配置不正确,仍可以通过其控制台设置内核参数来引导系统
GRUB 2 笔记
grub 2 的配置文件主要包括 /etc/default/grub 和 /etc/grub.d/ 下的各文件,分区命名方式有
变,分区编号从1开始而不再是0,但设备编号仍从0开始,例如(hd0, 1)表示为第1块硬
盘的第1个分区。