[原]Ubuntu下制作GRUB引导的软盘
2012-09-21 13:20
183 查看
声明
本文基于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)开工:
创建两个软盘镜像:
auxiflp.img用来安装GRUB文件,为我们提供grub命令行,方便对引导盘(bootflp.img)进行操作:
这样,auxiflp.img就完成了。
bootflp.img就是我们最终要得到的引导盘,不过还需要进行下面一系列的操作才能为我们所用:
最后,我们还需要一个menu.lst文件:
内容如下:
保存后拷贝到floppy/boot/grub 目录下:
到这里,我们的bootflp.img还欠缺一个小操作,用auxiflp.img来帮助它完成GRUB的安装。
用auxiflp.img来引导系统,最后会出现grub>的命令提示符,这时候我们切换一下软盘,将软盘镜像换成bootflp.img,然后执行命令:
这样我们就完成了bootflp.img引导软盘镜像的制作。
接下来我们测试一下制作好的bootflp.img:
能够出现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的选择引导界面的话,就算是成功了。
相关文章推荐
- 制作带有 GRUB 引导功能的软盘镜像文件
- Linux下制作grub启动U盘,引导ubuntu LiveCD(或其他镜像)
- 制作带有 GRUB 引导功能的软盘镜像文件
- 制作带有 GRUB 引导功能的软盘镜像文件
- windows和ubuntu 12.04双系统grub引导问题
- GRUB引导Win8,Win7,Ubuntu
- 用U盘制作启动盘来引导linux,修复grub
- 双系统修复Ubuntu 12.04 GRUB引导
- ubuntu编译制作并引导新内核
- 安装Win7和Ubuntu12.04双系统后,意外删除Ubuntu12.04引导文件,出现error:unknown filesystem;grub rescue>错误的解决方案
- ubuntu 修复grub引导
- Ubuntu 开机引导文件 /etc/default/grub
- 从硬盘安装ubuntu,GRUB丢失windows引导解决方法
- Ubuntu 开机引导文件 /etc/default/grub
- ubuntu10.04+win7双系统,重装win7后,恢复grub引导菜单
- ubuntu中引导程序grub的配置问题
- Ubuntu 11.04下非常漂亮的GRUB引导界面
- Ubuntu修复grub引导
- ubuntu10.04+win7双系统,重装win7后,恢复grub引导菜单以及命令行引导linux
- 双系统 Ubuntu的启动引导界面消失 grub