我搞不明白:
(1)。linux编译时,把bootsect.S和setup.S放在bzImage文件的头部。这二部分怎么会跑到0扇区和一扇区去了呢?
(2)。这时候系统还没起来,当然就不可能有文件系统了。所以bootsect.S和setup.S是不可能找到bzImage这个文件的。但她是怎么把它拷贝到0x100000的呢?
有明白的?恳求给与指导。。
9 个解决方案
#1
在线等待高手。。。
#2
你看我这麽说对不对,
其实bzImage不是作成文件,用dd if=bzImage of=/dev/hda bs=512是不是可以啊。
把bzImage作成文件可以方便编程嘛
其实bzImage不是作成文件,用dd if=bzImage of=/dev/hda bs=512是不是可以啊。
把bzImage作成文件可以方便编程嘛
#3
不懂
#4
那么把/boot/bzImage删掉,我的系统也能起来吗?肯定起不来。
/boot/bzImage文件是存在我的磁盘上的,不会是从0扇区开始存放的。如果是从0扇区开始存放的,那么这个文件这么大,那还不把引导扇区,文件分配表全部占满了?
我说的对不对?
/boot/bzImage文件是存在我的磁盘上的,不会是从0扇区开始存放的。如果是从0扇区开始存放的,那么这个文件这么大,那还不把引导扇区,文件分配表全部占满了?
我说的对不对?
#5
gz
#6
再顶一下
#7
有一个问题你可能没有注意 bootsect是在没有bootloader (grub, lilo)的时候才使用
如果有grub或者lilo的话它们会完成这些工作,而他们是知道识别文件系统的,比如ext2fs,
所以你在/boot里面有很多的vmlinuz的时候(/boot是ext2fs),grub会从其中(文件系统中)找到你想启动的image。
如果有grub或者lilo的话它们会完成这些工作,而他们是知道识别文件系统的,比如ext2fs,
所以你在/boot里面有很多的vmlinuz的时候(/boot是ext2fs),grub会从其中(文件系统中)找到你想启动的image。
#8
这个简单,正如楼上说的,启动分两种方式:grub, lilo或者bootsect;如果是bootsect启动,那么setup.s和bzImage被放在0磁道1扇区以后了,所以可以大于512个字节,见linuxsrc/arch/i386/boot/tools/builds.c那里负责安装内核
#9
晕~~~~~~你选择的是什么方式启动的啦~~
#1
在线等待高手。。。
#2
你看我这麽说对不对,
其实bzImage不是作成文件,用dd if=bzImage of=/dev/hda bs=512是不是可以啊。
把bzImage作成文件可以方便编程嘛
其实bzImage不是作成文件,用dd if=bzImage of=/dev/hda bs=512是不是可以啊。
把bzImage作成文件可以方便编程嘛
#3
不懂
#4
那么把/boot/bzImage删掉,我的系统也能起来吗?肯定起不来。
/boot/bzImage文件是存在我的磁盘上的,不会是从0扇区开始存放的。如果是从0扇区开始存放的,那么这个文件这么大,那还不把引导扇区,文件分配表全部占满了?
我说的对不对?
/boot/bzImage文件是存在我的磁盘上的,不会是从0扇区开始存放的。如果是从0扇区开始存放的,那么这个文件这么大,那还不把引导扇区,文件分配表全部占满了?
我说的对不对?
#5
gz
#6
再顶一下
#7
有一个问题你可能没有注意 bootsect是在没有bootloader (grub, lilo)的时候才使用
如果有grub或者lilo的话它们会完成这些工作,而他们是知道识别文件系统的,比如ext2fs,
所以你在/boot里面有很多的vmlinuz的时候(/boot是ext2fs),grub会从其中(文件系统中)找到你想启动的image。
如果有grub或者lilo的话它们会完成这些工作,而他们是知道识别文件系统的,比如ext2fs,
所以你在/boot里面有很多的vmlinuz的时候(/boot是ext2fs),grub会从其中(文件系统中)找到你想启动的image。
#8
这个简单,正如楼上说的,启动分两种方式:grub, lilo或者bootsect;如果是bootsect启动,那么setup.s和bzImage被放在0磁道1扇区以后了,所以可以大于512个字节,见linuxsrc/arch/i386/boot/tools/builds.c那里负责安装内核
#9
晕~~~~~~你选择的是什么方式启动的啦~~