带grub的软盘镜像制作

以下在ubuntu16.04(一定要root模式下(sudo -s)下测试通过

dd if=/dev/zero bs=512 count=2880 of=floppy.img

为了方便我们需要在镜像文件中建立文件系统,有了文件系统才比较方便放置、修改我们自己的内核和应用程序。

首先将软盘镜像与某个 Loop 设备关联。

losetup /dev/loop7 floppy.img

然后格式化:

mkfs.msdos /dev/loop7

这里推荐采用fat12 格式创建文件系统

这是文件系统就建立好了。下面是在镜像文件中安装 GRUB。

首先将镜像文件中的文件系统挂在到我们主系统的目录树上。

mount -o loop /dev/loop7 /mnt/

然后建立 GRUB 需要的目录结构。

mkdir -p /mnt/boot/grub

再然后拷贝需要的文件(可能用虚拟机的同学boot/grub没有stage1和stage2和stage1.5,需要下载GRUB Legacy的最后一个版本0.97的编译好的文件ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.tar.gz,然后stage改到相应的目录即可

cp /boot/grub/stage1 /mnt/boot/grub

cp /boot/grub/stage2 /mnt/boot/grub

cp /boot/grub/fat_stage1_5 /mnt/boot/grub

创建 grub 配置文件:

vi /mnt/boot/grub/grub.conf

内容如下(这里假设我们的内核文件放在软盘镜像的/boot/目录,命名为kernel):

 title test os 0.0.1(自己操作系统名)
    root (fd0)
    kernel /boot/kernel(内核文件相对于/mnt(根目录)中位置)

卸载镜像文件

umount /mnt/

在镜像文件中安装 GRUB

grub --device-map=/dev/null
grub> device (fd0) /dev/loop7
grub> root (fd0)
grub> setup (fd0)
grub> quit

 

有必要可以修改memu.lst文件(mount floppy.img /mnt  然后修改)

将软盘镜像与 loop 设备的关联解除。

losetup -d /dev/loop7

这时软盘镜像已经可以使用了。
可以用 file 命令查看一下:

file floppy.img

floppy.img: DOS/MBR boot sector, code offset 0x48+2, OEM-ID "mkfs.fat", root entries 224, sectors 2880 (volumes <=32 MB) , sectors/FAT 9, sectors/track 18, serial number 0xd621015, unlabeled, FAT (12 bit), followed by FAT

如果要修改软盘镜像中的文件也很简单,将其挂载到某个目录就可以了。

mount floppy.img /mnt/

然后就是正常的文件操作了。

 

 

附上自己做得软盘:

链接: https://pan.baidu.com/s/1i4DJx9j 密码: vdrf

可以sudo mount floppy.img /mnt  然后修改

 

Done!!!

 

引用:

http://blog.csdn.net/liyuanbhu/article/details/7559953

posted on 2017-08-14 17:04  chaunceyctx  阅读(856)  评论(0编辑  收藏  举报

导航