首頁 > 軟體

如何使用 GRUB 2 直接從硬碟執行 ISO 檔案

2020-06-16 17:51:19

大多數 Linux 發行版都會提供一個可以從 USB 啟動的 live 環境,以便使用者無需安裝即可測試系統。我們可以用它來評測這個發行版或僅僅是當成一個一次性系統,並且很容易將這些檔案複製到一個 U 盤上,在某些情況下,我們可能需要經常執行同一個或不同的 ISO 映象。GRUB 2 可以設定成直接從啟動選單執行一個 live 環境,而不需要燒錄這些 ISO 到硬碟或 USB 裝置。

 

獲取和檢查可啟動的 ISO 映象

為了獲取 ISO 映象,我們通常應該存取所需的發行版的網站下載與我們架構相容的映象檔案。如果這個映象可以從 U 盤啟動,那它也應該可以從 GRUB 選單啟動。

當映象下載完後,我們應該通過 MD5 校驗檢查它的完整性。這會輸出一大串數位與字母合成的序列。

將這個序列與下載頁提供的 MD5 校驗碼進行比較,兩者應該完全相同。

 

設定 GRUB 2

ISO 映象檔案包含了整個系統。我們要做的僅僅是告訴 GRUB 2 哪裡可以找到 kernel 和 initramdisk 或 initram 檔案系統(這取決於我們所使用的發行版)。

在下面的例子中,一個 KUbuntu 15.04 live 環境將被設定到 Ubuntu 14.04 機器的 Grub 啟動選單項。這應該能在大多數新的以 Ubuntu 為基礎的系統上執行。如果你是其它系統並且想實現一些其它的東西,你可以從這些檔案了解更多細節,但這會要求你擁有一點 GRUB 使用經驗。

這個例子的檔案 kubuntu-15.04-desktop-amd64.iso 放在位於 /dev/sda1/home/maketecheasier/TempISOs/ 上。

為了使 GRUB 2 能正確找到它,我們應該編輯

  1. /etc/grub.d40-custom

  1. menuentry "Kubuntu 15.04 ISO"{
  2. set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
  3. loopback loop (hd0,1)$isofile
  4. echo"Starting $isofile..."
  5. linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
  6. initrd (loop)/casper/initrd.lz
  7. }

 

分析上述程式碼

首先設定了一個變數名 $menuentry ,這是 ISO 檔案的所在位置 。如果你想換一個 ISO ,你應該修改 isofile="/path/to/file/name-of-iso-file-.iso".

下一行是指定回環裝置,且必須給出正確的分割區號碼。

  1. loopback loop (hd0,1)$isofile

注意 hd0,1 這裡非常重要,它的意思是第一硬碟,第一分割區 (/dev/sda1)。

GRUB 的命名在這裡稍微有點困惑,對於硬碟來說,它從 “0” 開始計數,第一塊硬碟為 #0 ,第二塊為 #1 ,第三塊為 #2 ,依此類推。但是對於分割區來說,它從 “1” 開始計數,第一個分割區為 #1 ,第二個分割區為 #2 ,依此類推。也許這裡有一個很好的原因,但肯定不是明智的(明顯使用者體驗很糟糕)..

在 Linux 中第一塊硬碟,第一個分割區是 /dev/sda1 ,但在 GRUB2 中則是 hd0,1 。第二塊硬碟,第三個分割區則是 hd1,3, 依此類推.

下一個重要的行是:

  1. linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash

這會載入核心映象,在新的 Ubuntu Live CD 中,核心被存放在 /casper 目錄,並且命名為 vmlinuz.efi 。如果你使用的是其它系統,可能會沒有 .efi 擴充套件名或核心被存放在其它地方 (可以使用歸檔管理器開啟 ISO 檔案在 /casper 中查詢確認)。最後一個選項, quiet splash ,是一個常規的 GRUB 選項,改不改無所謂。

最後

  1. initrd (loop)/casper/initrd.lz

這會載入 initrd ,它負責載入 RAMDisk 到記憶體用於啟動。

 

啟動 live 系統

做完上面所有的步驟後,需要更新 GRUB2:

  1. sudo update-grub

當重新啟動系統後,應該可以看見一個新的、並且允許我們啟動剛剛設定的 ISO 映象的 GRUB 條目:

選擇這個新條目就允許我們像從 DVD 或 U 盤中啟動一個 live 環境一樣。


via: https://www.maketecheasier.com/run-iso-files-hdd-grub2/

作者:Attila Orosz 譯者:Locez 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-10/124271.htm


IT145.com E-mail:sddin#qq.com