制作带有 GRUB 引导功能的软盘镜像文件
這樣有個好處就是生成鏡像文件非常簡單。比如說創建軟盤鏡像:
dd if=/dev/zero bs=512 count=2880 of=floppy.img
為了方便我們需要在鏡像文件中建立文件系統,有了文件系統才比較方便放置、修改我們自己的內核和應用程序。
下面的命令在 Fedora 12 中測試通過。其他的 Linux 系統可能命令有些區別。
首先將軟盤鏡像與某個 Loop 設備關聯。
losetup /dev/loop7 floppy.img
然后格式化:
mkfs.ext2 /dev/loop7
或者:
mkfs.msdos /dev/loop7
這里推薦采用fat12 格式創建文件系統,方便在win下用 winImage 操作。
這是文件系統就建立好了。下面是在鏡像文件中安裝 GRUB。
首先將鏡像文件中的文件系統掛在到我們主系統的目錄樹上。
mount -o loop /dev/loop7 /mnt/
然后建立 GRUB 需要的目錄結構。
mkdir -p /mnt/boot/grub
再然后拷貝需要的文件。
cp /boot/grub/stage1 /mnt/boot/grub
cp /boot/grub/stage2 /mnt/boot/grub
cp /boot/grub/e2fs_stage1_5 /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
卸載鏡像文件
umount /mnt/
在鏡像文件中安裝 GRUB
grub --device-map=/dev/null
grub> device (fd0) /dev/loop7
grub> root (fd0)
grub> setup (fd0)
grub> quit
將軟盤鏡像與 loop 設備的關聯解除。
losetup -d /dev/loop7
這時軟盤鏡像已經可以使用了。
可以用 file 命令查看一下:
file floppy.img
floppy.img: DOS floppy 1440k, x86 hard disk boot sector
如果要修改軟盤鏡像中文件也很簡單,將其掛載到某個目錄就可以了。
losetup /dev/loop7 floppy.img
mount -o loop /dev/loop7 /mnt/
然后就是正常的文件操作了。
如果需要在 win 下操作,可以使用 winImage, 或者自己寫個小程序來操作。
?
后記:
原文寫于幾年前,當時 GRUB2?還不成熟,用的人很少?,F在 GRUB2 大有替代 GRUB 的趨勢,本文中的方法在使用 GRUB2 的系統上已經不適用了。因此本文的內容對喜歡折騰操作系統的新手來說可能有些過時了。不過我還是選擇保留了這篇Blog ,一是紀念學生時代的那段時光,也希望能對仍舊使用 GRUB 作為引導程序的愛好者們提供一點幫助。
?關于在 GRUB2 上如何創建可引導軟盤鏡像還有硬盤鏡像文件,我將另寫一篇 Blog 來說明。
總結
以上是生活随笔為你收集整理的制作带有 GRUB 引导功能的软盘镜像文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言与汇编语言相互调用原理以及实例
- 下一篇: 用 GRUB 引导自己的操作系统