[原]Ubuntu下制作GRUB引导的软盘

声明

本文基于GRUB Legacy来进行操作,最终获得一个可以用GRUB引导内核启动的软盘镜像(即下文中的bootflp.img)。

本文的操作最好是在root超级用户权限下操作,可以省去sudo的麻烦。

本文是基于http://wiki.osdev.org/GRUB#Installing_to_floppy,感谢各位无名Geek的辛勤付出。

 

需求

操作系统:Ubuntu x86

预先安装的软件:bochs

 

步骤

(1)准备:

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

解压后获得stage1和stage2文件,其他不要。

2.还需要一个编译好的内核文件(必须是支持多重引导规范的),用来验证我们的成果。这里我是用的是Bran's Kernel Development Tutorial中的kernel.bin文件。

现在我们的工作目录下已经有了三个文件stage1,stage2,kernel.bin。

(2)开工:

创建两个软盘镜像:

#dd if=/dev/zero of=auxiflp.img bs=512 count=2880
#dd if=/dev/zero of=bootflp.img bs=512 count=2880

 

auxiflp.img用来安装GRUB文件,为我们提供grub命令行,方便对引导盘(bootflp.img)进行操作:

#dd if=stage1 of=auxiflp.img bs=512 count=1 ;将stage1写入软盘镜像的第一个扇区
#dd if=stage2 of=bootflp.img bs=512 seek=1  ;将stage2写入从第二个扇区开始的一系列扇区中

这样,auxiflp.img就完成了。

 

bootflp.img就是我们最终要得到的引导盘,不过还需要进行下面一系列的操作才能为我们所用:

#mkfs.vfat -F12 bootflp.img      ;将这个软盘镜像格式化成FAT12格式
#mkdir floppy            ;在当前工作目录下建个floppy的文件夹,用来挂载bootflp.img软盘镜像
#mount -o loop bootflp.img floppy    ;挂载bootflp.img镜像到floppy文件夹,对floppy文件夹的操作就是对bootflp.img的操作
#mkdir -p floppy/boot/grub       ;在软盘镜像内建立需要的目录
#cp stage* floppy/boot/grub       ;将stage1和stage2拷贝到floppy/boot/grub目录下
#cp kernel.bin floppy/boot       ;将用来测试的kernel.bin内核文件放到floppy/boot/目录下

最后,我们还需要一个menu.lst文件:

#vi menu.lst

内容如下:

title TestOS
root (fd0)
kernel /boot/kernel.bin

保存后拷贝到floppy/boot/grub 目录下:

#cp menu.lst floppy/boot/grub
#umount floppy/           ;反挂载软盘镜像

到这里,我们的bootflp.img还欠缺一个小操作,用auxiflp.img来帮助它完成GRUB的安装。

#bochs 'boot:a' 'floppya:1_44=auxiflp.img,status=inserted'

用auxiflp.img来引导系统,最后会出现grub>的命令提示符,这时候我们切换一下软盘,将软盘镜像换成bootflp.img,然后执行命令:

grub>install (fd0)/boot/grub/stage1 (fd0) (fd0)/boot/grub/stage2 (fd0)/boot/grub/menu.lst

这样我们就完成了bootflp.img引导软盘镜像的制作。

 

接下来我们测试一下制作好的bootflp.img:

#bochs 'boot:a' 'floppya:1_44=bootflp.img,status=inserted'

能够出现GRUB的选择引导界面的话,就算是成功了。

转载于:https://www.cnblogs.com/vsir/archive/2012/09/21/2696730.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值