linux操作系统实验四--打造自己的Linux发行版(续)

整合grub

1.安装grub

从ftp://alpha.gnu.org/gnu/grub/下载GRUB Legacy的最后一个版本0.97的编译好的文件grub-0.97-i386-pc.tar.gz.

在当前文件夹cworkplace目录下:

tar zxvf grub-0.97-i386-pc.tar.gz

#建立软盘映像:

dd if=/dev/zero of=boot.img bs=512 count=2880
#在boot.img中安装grub:
sudo losetup /dev/loop0 boot.img
sudo dd if=./grub-0.97-i386-pc/boot/grub/stage1 of=/dev/loop1 bs=512 count=1
sudo dd if=./grub-0.97-i386-pc/boot/grub/stage2 of=/dev/loop1 bs=512 seek=1
sudo losetup -d /dev/loop1

在qemu中测试是否可以进入grub

qemu -fda boot.img


2.整合grub, kernel, busybox在一起

#拷贝boot.img到当前目录(在cworkplace目录下)

sudo cp ./grub-0.97-i386-pc/boot.img ./

#创建rootfs文件夹

mkdir rootfs

#创建一个32M的磁盘镜像文件

dd if=/dev/zero of=32M.img bs=4096 count=8192
#给磁盘映像分区
fdisk -C 16065 -H 255 -S 63 32M.img

解释:设置Opuntu.img的磁头数为255、磁道数为16065、扇区数为63,同时给磁盘分区。
这里我们只分一个区,并设置该分区为引导分区。示意图如下:


3.格式化分区

sudo losetup -o 1048576 /dev/loop1 32M.img
sudo mkfs.ext3 -m 0 /dev/loop1

解释:我们把前面的2048个扇区(0~2047)作为引导扇区使用,格式化分区从第2048个扇区开始,所以1048576=2048*512

#拷贝之前做好的initrd.img和bzImage.img到rootfs

sudo mount /dev/loop1 rootfs/
sudo cp ./Linuxkernel./linux-3.9/arch/x86/boot/bzImage ./rootfs/
sudo cp ./init/initrd.img ./rootfs/
4.添加grub

sudo mkdir rootfs/boot
sudo mkdir rootfs/boot/grub
sudo cp ./grub-0.97-i386-pc/boot/grub/* ./rootfs/boot/grub
sudo vi ./rootfs/boot/grub/menu.lst

default 0
timeout 30
title linux on 32M.img
root (hd0,0)
kernel (hd0,0)/bzImage root=/dev/ram init=/bin/ash
initrd (hd0,0)/initrd.img
5.卸载磁盘镜像

sudo umount rootfs
sudo losetup -d /dev/loop0
6.利用grub启动软盘,在硬盘上添加grub功能

qemu -boot a -fda boot.img -hda 32M.img

执行图中的两步(注意空格):



7.运行成功之后,32M.img就是最终成果,集成了busybox,linux,kernel3.9

qemu -hda 32M.img

直接回车,启动linux

系统启动之后:



最后的文件视图:




参考链接:

http://blog.csdn.net/qp120291570/article/details/9100749

http://blog.sina.com.cn/s/blog_70dd169101013gcw.html




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值