天天看點

[作業系統原理與實作]建立帶有GRUB2引導啟動的磁盤映像檔案

建立帶有GRUB2引導啟動的磁盤映像檔案

    • 1、使用bximage或dd指令建立磁盤映像檔案
    • 2、使用fdisk工具建立分區
    • 3、使用losetup映射磁盤映像檔案
    • 4、分區格式化
    • 5、挂載分區
    • 6、安裝GRUB2
    • 7、解除安裝分區
    • 8、斷開映射

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 平台進行安裝。”。如果安裝成功,則會提示“安裝完成。沒有報告錯誤。”,如下圖。如果存在其他提示,則有可能出現了别的問題,需要具體分析具體解決。
    [作業系統原理與實作]建立帶有GRUB2引導啟動的磁盤映像檔案

7、解除安裝分區

sudo umount /mnt/vdisk/p1
           
  • 如果在控制台或檔案管理器,再或者别的工具軟體中打開了挂載點的目錄,則該指令執行失敗,提示“umount: /mnt/vdisk/p1: target is busy.”。關閉這些程式後,再執行即可。

8、斷開映射

sudo losetup -d /dev/loop6
           
  • -d選項訓示losetup工具斷開對應的回環裝置。

繼續閱讀