在Ubuntu系統(tǒng)下直接運(yùn)行ISO文件的方法詳解
開(kāi)源中文社區(qū) 發(fā)布時(shí)間:2015-10-19 11:07:31 作者:佚名
我要評(píng)論

這篇文章主要介紹了在Ubuntu系統(tǒng)下直接運(yùn)行ISO文件的方法,使用GRUB 2直接從硬盤(pán)運(yùn)行,需要的朋友可以參考下
大多數(shù) Linux 發(fā)行版都會(huì)提供一個(gè)可以從 USB 啟動(dòng)的 live 環(huán)境,以便用戶(hù)無(wú)需安裝即可測(cè)試系統(tǒng)。我們可以用它來(lái)評(píng)測(cè)這個(gè)發(fā)行版或僅僅是當(dāng)成一個(gè)一次性系統(tǒng),并且很容易將這些文件復(fù)制到一個(gè) U 盤(pán)上,在某些情況下,我們可能需要經(jīng)常運(yùn)行同一個(gè)或不同的 ISO 鏡像。GRUB 2 可以配置成直接從啟動(dòng)菜單運(yùn)行一個(gè) live 環(huán)境,而不需要燒錄這些 ISO 到硬盤(pán)或 USB 設(shè)備。
獲取和檢查可啟動(dòng)的 ISO 鏡像
為了獲取 ISO 鏡像,我們通常應(yīng)該訪問(wèn)所需的發(fā)行版的網(wǎng)站下載與我們架構(gòu)兼容的鏡像文件。如果這個(gè)鏡像可以從 U 盤(pán)啟動(dòng),那它也應(yīng)該可以從 GRUB 菜單啟動(dòng)。
當(dāng)鏡像下載完后,我們應(yīng)該通過(guò) MD5 校驗(yàn)檢查它的完整性。這會(huì)輸出一大串?dāng)?shù)字與字母合成的序列。

將這個(gè)序列與下載頁(yè)提供的 MD5 校驗(yàn)碼進(jìn)行比較,兩者應(yīng)該完全相同。
配置 GRUB 2
ISO 鏡像文件包含了整個(gè)系統(tǒng)。我們要做的僅僅是告訴 GRUB 2 哪里可以找到 kernel 和 initramdisk 或 initram 文件系統(tǒng)(這取決于我們所使用的發(fā)行版)。
在下面的例子中,一個(gè) Kubuntu 15.04 live 環(huán)境將被配置到 Ubuntu 14.04 機(jī)器的 Grub 啟動(dòng)菜單項(xiàng)。這應(yīng)該能在大多數(shù)新的以 Ubuntu 為基礎(chǔ)的系統(tǒng)上運(yùn)行。如果你是其它系統(tǒng)并且想實(shí)現(xiàn)一些其它的東西,你可以從這些文件了解更多細(xì)節(jié),但這會(huì)要求你擁有一點(diǎn) GRUB 使用經(jīng)驗(yàn)。
這個(gè)例子的文件 kubuntu-15.04-desktop-amd64.iso 放在位于 /dev/sda1 的 /home/maketecheasier/TempISOs/ 上。
為了使 GRUB 2 能正確找到它,我們應(yīng)該編輯
/etc/grub.d40-custom


分析上述代碼
首先設(shè)置了一個(gè)變量名 $menuentry ,這是 ISO 文件的所在位置 。如果你想換一個(gè) ISO ,你應(yīng)該修改 isofile="/path/to/file/name-of-iso-file-.iso".
下一行是指定回環(huán)設(shè)備,且必須給出正確的分區(qū)號(hào)碼。
loopback loop (hd0,1)$isofile
注意 hd0,1 這里非常重要,它的意思是第一硬盤(pán),第一分區(qū) (/dev/sda1)。
GRUB 的命名在這里稍微有點(diǎn)困惑,對(duì)于硬盤(pán)來(lái)說(shuō),它從 “0” 開(kāi)始計(jì)數(shù),第一塊硬盤(pán)為 #0 ,第二塊為 #1 ,第三塊為 #2 ,依此類(lèi)推。但是對(duì)于分區(qū)來(lái)說(shuō),它從 “1” 開(kāi)始計(jì)數(shù),第一個(gè)分區(qū)為 #1 ,第二個(gè)分區(qū)為 #2 ,依此類(lèi)推。也許這里有一個(gè)很好的原因,但肯定不是明智的(明顯用戶(hù)體驗(yàn)很糟糕)..
在 Linux 中第一塊硬盤(pán),第一個(gè)分區(qū)是 /dev/sda1 ,但在 GRUB2 中則是 hd0,1 。第二塊硬盤(pán),第三個(gè)分區(qū)則是 hd1,3, 依此類(lèi)推.
下一個(gè)重要的行是:
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
這會(huì)載入內(nèi)核鏡像,在新的 Ubuntu Live CD 中,內(nèi)核被存放在 /casper 目錄,并且命名為 vmlinuz.efi 。如果你使用的是其它系統(tǒng),可能會(huì)沒(méi)有 .efi 擴(kuò)展名或內(nèi)核被存放在其它地方 (可以使用歸檔管理器打開(kāi) ISO 文件在 /casper 中查找確認(rèn))。最后一個(gè)選項(xiàng), quiet splash ,是一個(gè)常規(guī)的 GRUB 選項(xiàng),改不改無(wú)所謂。
最后
initrd (loop)/casper/initrd.lz
這會(huì)載入 initrd ,它負(fù)責(zé)載入 RAMDisk 到內(nèi)存用于啟動(dòng)。
啟動(dòng) live 系統(tǒng)
做完上面所有的步驟后,需要更新 GRUB2:
sudo update-grub

當(dāng)重啟系統(tǒng)后,應(yīng)該可以看見(jiàn)一個(gè)新的、并且允許我們啟動(dòng)剛剛配置的 ISO 鏡像的 GRUB 條目:

選擇這個(gè)新條目就允許我們像從 DVD 或 U 盤(pán)中啟動(dòng)一個(gè) live 環(huán)境一樣。
獲取和檢查可啟動(dòng)的 ISO 鏡像
為了獲取 ISO 鏡像,我們通常應(yīng)該訪問(wèn)所需的發(fā)行版的網(wǎng)站下載與我們架構(gòu)兼容的鏡像文件。如果這個(gè)鏡像可以從 U 盤(pán)啟動(dòng),那它也應(yīng)該可以從 GRUB 菜單啟動(dòng)。
當(dāng)鏡像下載完后,我們應(yīng)該通過(guò) MD5 校驗(yàn)檢查它的完整性。這會(huì)輸出一大串?dāng)?shù)字與字母合成的序列。

將這個(gè)序列與下載頁(yè)提供的 MD5 校驗(yàn)碼進(jìn)行比較,兩者應(yīng)該完全相同。
配置 GRUB 2
ISO 鏡像文件包含了整個(gè)系統(tǒng)。我們要做的僅僅是告訴 GRUB 2 哪里可以找到 kernel 和 initramdisk 或 initram 文件系統(tǒng)(這取決于我們所使用的發(fā)行版)。
在下面的例子中,一個(gè) Kubuntu 15.04 live 環(huán)境將被配置到 Ubuntu 14.04 機(jī)器的 Grub 啟動(dòng)菜單項(xiàng)。這應(yīng)該能在大多數(shù)新的以 Ubuntu 為基礎(chǔ)的系統(tǒng)上運(yùn)行。如果你是其它系統(tǒng)并且想實(shí)現(xiàn)一些其它的東西,你可以從這些文件了解更多細(xì)節(jié),但這會(huì)要求你擁有一點(diǎn) GRUB 使用經(jīng)驗(yàn)。
這個(gè)例子的文件 kubuntu-15.04-desktop-amd64.iso 放在位于 /dev/sda1 的 /home/maketecheasier/TempISOs/ 上。
為了使 GRUB 2 能正確找到它,我們應(yīng)該編輯
/etc/grub.d40-custom

復(fù)制代碼
代碼如下:menuentry "Kubuntu 15.04 ISO" {
set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}
set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}

分析上述代碼
首先設(shè)置了一個(gè)變量名 $menuentry ,這是 ISO 文件的所在位置 。如果你想換一個(gè) ISO ,你應(yīng)該修改 isofile="/path/to/file/name-of-iso-file-.iso".
下一行是指定回環(huán)設(shè)備,且必須給出正確的分區(qū)號(hào)碼。
復(fù)制代碼
代碼如下:loopback loop (hd0,1)$isofile
注意 hd0,1 這里非常重要,它的意思是第一硬盤(pán),第一分區(qū) (/dev/sda1)。
GRUB 的命名在這里稍微有點(diǎn)困惑,對(duì)于硬盤(pán)來(lái)說(shuō),它從 “0” 開(kāi)始計(jì)數(shù),第一塊硬盤(pán)為 #0 ,第二塊為 #1 ,第三塊為 #2 ,依此類(lèi)推。但是對(duì)于分區(qū)來(lái)說(shuō),它從 “1” 開(kāi)始計(jì)數(shù),第一個(gè)分區(qū)為 #1 ,第二個(gè)分區(qū)為 #2 ,依此類(lèi)推。也許這里有一個(gè)很好的原因,但肯定不是明智的(明顯用戶(hù)體驗(yàn)很糟糕)..
在 Linux 中第一塊硬盤(pán),第一個(gè)分區(qū)是 /dev/sda1 ,但在 GRUB2 中則是 hd0,1 。第二塊硬盤(pán),第三個(gè)分區(qū)則是 hd1,3, 依此類(lèi)推.
下一個(gè)重要的行是:
復(fù)制代碼
代碼如下:linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
這會(huì)載入內(nèi)核鏡像,在新的 Ubuntu Live CD 中,內(nèi)核被存放在 /casper 目錄,并且命名為 vmlinuz.efi 。如果你使用的是其它系統(tǒng),可能會(huì)沒(méi)有 .efi 擴(kuò)展名或內(nèi)核被存放在其它地方 (可以使用歸檔管理器打開(kāi) ISO 文件在 /casper 中查找確認(rèn))。最后一個(gè)選項(xiàng), quiet splash ,是一個(gè)常規(guī)的 GRUB 選項(xiàng),改不改無(wú)所謂。
最后
復(fù)制代碼
代碼如下:initrd (loop)/casper/initrd.lz
這會(huì)載入 initrd ,它負(fù)責(zé)載入 RAMDisk 到內(nèi)存用于啟動(dòng)。
啟動(dòng) live 系統(tǒng)
做完上面所有的步驟后,需要更新 GRUB2:
復(fù)制代碼
代碼如下:sudo update-grub

當(dāng)重啟系統(tǒng)后,應(yīng)該可以看見(jiàn)一個(gè)新的、并且允許我們啟動(dòng)剛剛配置的 ISO 鏡像的 GRUB 條目:

選擇這個(gè)新條目就允許我們像從 DVD 或 U 盤(pán)中啟動(dòng)一個(gè) live 環(huán)境一樣。
相關(guān)文章
新特性搶先看! Ubuntu 25.04 Beta 發(fā)布:Linux 6.14 內(nèi)核
Canonical公司近日發(fā)布了Ubuntu 25.04 Beta版,這一版本被賦予了一個(gè)活潑的代號(hào)——“Plucky Puffin”(勇敢的海雀),據(jù)悉,正式的穩(wěn)定版預(yù)計(jì)將在2025年4月17日與廣大用戶(hù)2025-03-29如何讓 Ubuntu 居中顯示窗口? 3種方法實(shí)現(xiàn)Ubuntu窗口居中顯示
個(gè)人習(xí)慣不管打開(kāi)終端窗口還是文件管理器窗口,都希望居中顯示,不太喜歡Linux下自動(dòng)隨意的擺放位置,下面我們就來(lái)看看詳細(xì)設(shè)置方法2025-03-11Ubuntu 24.04.2 LTS 正式發(fā)布: 帶來(lái)全新硬件支持啟用堆棧HWE
buntu 24.04 LTS 的第 2 個(gè)小版本Ubuntu 24.04.2 LTS 正式發(fā)布,出了修復(fù)漏洞以外,它還帶來(lái)了全新的硬件支持啟用堆棧(HWE),讓系統(tǒng)性能和硬件兼容性更上一層樓2025-02-25怎么關(guān)閉Ubuntu無(wú)人值守升級(jí)? Ubuntu禁止自動(dòng)更新的技巧
Ubuntu Linux系統(tǒng)禁止自動(dòng)更新的時(shí)候,提示“無(wú)人值守升級(jí)在關(guān)機(jī)期間,請(qǐng)不要關(guān)閉計(jì)算機(jī)進(jìn)程”,該怎么解決這個(gè)問(wèn)題?詳細(xì)請(qǐng)看下文介紹2025-01-20高效管理你的Linux系統(tǒng): Debian操作系統(tǒng)常用命令指南
在Debian操作系統(tǒng)中,了解和掌握常用命令對(duì)于提高工作效率和系統(tǒng)管理至關(guān)重要,本文將詳細(xì)介紹Debian的常用命令,幫助讀者更好地使用和管理Debian系統(tǒng)2025-01-20debian更新系統(tǒng)的命令怎么用? 輕松配置Debian自動(dòng)更新的技巧
Debian不手動(dòng)更新怎么體驗(yàn)新系統(tǒng)?Debian提供了一個(gè)既簡(jiǎn)單又高效的解決辦法——自動(dòng)更新,該怎么用呢?詳細(xì)請(qǐng)看下文介紹2025-01-20如何配置Ubuntu無(wú)人值守升級(jí)? 手動(dòng)操作實(shí)現(xiàn)Ubuntu自動(dòng)升級(jí)技巧
無(wú)人值守升級(jí)是一個(gè)用于自動(dòng)更新 Debian 和 Ubuntu 系統(tǒng)的開(kāi)源項(xiàng)目,該項(xiàng)目的主要目的是確保系統(tǒng)能夠定期自動(dòng)安裝安全更新,從而保持系統(tǒng)的安全性和穩(wěn)定性2025-01-20Ubuntu系統(tǒng)怎么安裝Warp? 新一代AI 終端神器安裝使用方法
Warp是一款使用Rust開(kāi)發(fā)的現(xiàn)代化AI 終端工具,該怎么再Ubuntu系統(tǒng)中安裝使用呢?下面我們就來(lái)看看詳細(xì)教程2025-01-20Debian如何查看系統(tǒng)版本? 7種輕松查看Debian版本信息的實(shí)用方法
Debian是一個(gè)廣泛使用的Linux發(fā)行版,用戶(hù)有時(shí)需要查看其版本信息以進(jìn)行系統(tǒng)管理、故障排除或兼容性檢查,在Debian系統(tǒng)中,有幾種不同的方法可以查看版本信息2025-01-17解決VMware中Ubuntu虛擬機(jī)鼠標(biāo)閃爍或指針位置不正確的方案
剛下載虛擬機(jī)后,電腦在虛擬機(jī)內(nèi)出現(xiàn)了鼠標(biāo)閃爍或者鼠標(biāo)指針位置不對(duì)的問(wèn)題,該怎么解決呢?下面我們就來(lái)看看詳細(xì)教程2025-01-09