QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1247|回复: 3

关于系统启动的1个问题

[复制链接]
发表于 2003-6-11 21:42:45 | 显示全部楼层 |阅读模式
1)根据Linux的Makefile,当使用命令
make bzImage
时,调用的是arch/i386/boot/Makefile:

zImage: $(CONFIGURE) bootsect setup compressed/vmlinux tools/build
        $(OBJCOPY) compressed/vmlinux compressed/vmlinux.out
        tools/build bootsect setup compressed/vmlinux.out $(ROOT_DEV) > zImage

bzImage: $(CONFIGURE) bbootsect bsetup compressed/bvmlinux tools/build
        $(OBJCOPY) compressed/bvmlinux compressed/bvmlinux.out
        tools/build -b bbootsect bsetup compressed/bvmlinux.out $(ROOT_DEV) > bzImage
也就是说,生成的image是bootsect+setup+vmlinux的拼接而成。
那么,问题是:Linux安装时,bootsect写在该逻辑分区的引导扇区内,setup和vmlinux在哪里呢?Lilo指定的image是一个文件系统中的文件啊?请各位指点。
发表于 2003-6-12 10:02:52 | 显示全部楼层
Lilo指定的image是一个文件系统中的文件啊?

我想Lilo或是别的什么引导工具的思路(FreeBSD的Boot manager)是一样。Lilo本身是识别ext2和ext3文件系统的。所谓识别是它知道怎么通过文件系统的inode bitmap,block bitmap布局,通过目录inode search image文件,再根据inode号找到其blocks。
FreeBSD是这样在没有VFS的情况下,找UFS的文件的。
回复

使用道具 举报

发表于 2003-6-12 10:19:23 | 显示全部楼层
这是FreeBSD5.1的boot2的Makefile关于文件系统标志的定义。
boot2是属于自举的初始阶段,在执行了mbr后执行的code。
[code:1]# Decide Level of UFS support.  UFS1_AND_UFS2 doesn't fit.

# BOOT2_UFS?=        UFS2_ONLY
BOOT2_UFS?=        UFS1_AND_UFS2
# BOOT2_UFS?=        UFS1_ONLY[/code:1]
希望能对自举阶段,如何通过文件名找到文件的原理做个说明。至于怎么找data/inode block,则是通过磁盘中断实现的。
回复

使用道具 举报

发表于 2003-6-12 11:28:46 | 显示全部楼层
grub also know some fs format. so grub have stage 1.5

info grub have some info.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-29 06:45 , Processed in 0.056722 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表