1.HOST:宿主机,就是编译内核的机器,Client:就是引导内核的机器
2.HOST和Client 机器的位数最好保持一致,如果你要编译64位内核,建议host使用64位系统,我使用的是ubuntu 12.04
3.client模拟,我是在host机器上使用qemu 最简单的模拟器来模拟client端。
4.用dd 命令创建一个raw文件(无格式的二进制文件,这个文件对应的就是client的虚拟硬盘)
qemu-img create ~/hd.img 1G
5. losetup 命令 挂载 hd.img
losetup /dev/loop0 hd.img ; 将二进制文件 loop为虚拟磁盘,可能解释有错误。
fdisk /dev/loop0; 对虚拟硬盘 进行分区,我这里就分了1个主分区 1G
losetup -o xxxx /dev/loop1 /dev/loop0 ; xxxx为第一个分区的在文件里的偏移,我fdisk分号区后 查看显示 分区起始扇区是2048,因为一个扇区大小512,所以偏移为512*2048 ,即xxx为512*2048 的是值,然后将分区loop出来,定义位loop1
mkfs.ext2 /dev/loop1 ,对分区进行格式化
mount /dev/loop1 /media/vp1 ;将分区挂载到vp1 文件夹下,至此我们访问vp1 就是访问虚拟硬盘的第一个分区
6.在host上编译 grub ,我使用的是grub 1,如果你host用的是grub2 建议你改成grub 1,然后在/boot/grub 里找到的stage1 和stage2
grub 进入子命令行 device hd.img 回车 root(hd0,0)回车 setup (hd0) 回车
这样引导环境配好
下一节讲怎么引导内核
如果您觉得文章不错,不妨给个打赏,写作不易,感谢各位的支持。您的支持是我最大的动力,谢谢!!!