[操作系統原理與實現]創建帶有GRUB2引導啓動的磁盤映像文件

1、使用bximage或dd命令創建磁盤映像文件

bximage hd.img

dd if=/dev/zero of=hd.img bs=512 count=20480
  • 需要注意的是,如果是用dd命令創建磁盤映像文件,扇區數目通過count選項設定,需採用適當的大小。

2、使用fdisk工具創建分區

fdisk hd.img
  • 爲了後面方便操作,不需要使用sudo執行這條命令。

3、使用losetup映射磁盤映像文件

sudo losetup -P /dev/loop6 hd.img
  • 迴環設備/dev/loop6中可能並非是閒置的,需要按照系統運行的實際情況選擇一個恰當的,如果所有已存在的迴環設備均已被佔用,需要自行創建一個迴環設備。相應的,下文中提到的迴環設備loop6也要更改爲對應的loop*。
  • 參數-P 是要求losetup映射分區。

4、分區格式化

sudo mkfs.msdos /dev/loop6p1
  • 不一定非要格式化爲fat12、fat16、fat32、ntfs等磁盤分區,ext*也是可以的。
  • 順便提議下,使用mkfs.msdos、mkfs.fat、mkfs.vfat等工具格式化分區時都執行同樣的操作,使用哪個都是一樣的。但是,格式化不同大小的分區,得到的磁盤分區卻是不同的(有fat12、fat16、fat32)。

5、掛載分區

sudo mount /dev/loop6p1 /mnt/vdisk/p1
  • 爲了方便管理,已在文件系統中創建了需要的各個路徑與目錄(比如/mnt/vdisk/p1),以下再不解釋。

6、安裝GRUB2

sudo grub-install --boot-directory=/mnt/vdisk/p1 --target=i386-pc /dev/loop6
  • –boot-directory選項指定GRUB2文件的安裝位置
  • –target選項指定GRUB2的安裝目標
  • /dev/loop6指示GRUB2程序被安裝在迴環設備/dev/loop6,此程序的二進制代碼被寫入到磁盤前N個扇區中,不屬於任何的分區,與–boot-directory選項指定的GRUB2文件安裝位置不同。
  • 在安裝過程中會提示“正在爲 i386-pc 平臺進行安裝。”。如果安裝成功,則會提示“安裝完成。沒有報告錯誤。”,如下圖。如果存在其他提示,則有可能出現了別的問題,需要具體分析具體解決。
    在這裏插入圖片描述

7、卸載分區

sudo umount /mnt/vdisk/p1
  • 如果在控制檯或文件管理器,再或者別的工具軟件中打開了掛載點的目錄,則該命令執行失敗,提示“umount: /mnt/vdisk/p1: target is busy.”。關閉這些程序後,再執行即可。

8、斷開映射

sudo losetup -d /dev/loop6
  • -d選項指示losetup工具斷開對應的迴環設備。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章