System-Installation
如何從儲存在硬碟上的 ISO 文件啟動?
我知道我可以創建/刻錄可啟動 CD/DVD 或 live USB,並可以從中啟動/安裝。但是假設我目前正在執行 GNU/Linux,並且我有另一個 GNU/Linux 的 ISO 文件,我想在我的硬碟上安裝,那麼我可以直接從硬碟啟動 ISO 並嘗試/安裝那個 GNU/Linux 作業系統嗎? ?
是的,您可以通過在
GRUB
引導載入程序菜單中添加一個菜單項來完成此操作。您可以通過編輯添加自定義 GRUB 菜單項
/etc/grub.d/40_custom
,自定義菜單條目範例:
exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Trisquel ISO" { set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso" loopback loop (hd0,5)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash initrd (loop)/casper/initrd }
說明與說明:
- 該命令
set
用於將 ISO 文件的路徑儲存到一個變數中,這裡是isofile
.loopback
用於從文件系統映像製作設備。為此,需要指定設備和圖像文件。這裡我們使用(hd0,5)$isofile
in which(hd0,5)
代表磁碟的第五個分區。
- 注意事項: 在
(hd0,5)
中,第
1位表示從0
(這裡:0 = 第 1 個設備)開始的設備號,第
2位表示從1
(這裡 5 = 第 5個分區)開始的分區號。
這意味著/dev/sda5
- 變數
$isofile
具有 ISO 文件的路徑。所以,最後變成了(hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso
。- 有關詳細資訊,請訪問:如何指定設備和文件。
- 讀取/提取 ISO 的內容以獲取核心範例的路徑:
$ 7z l trisquel_7.0_i686.iso | grep vmlinu 2014-10-29 21:41:43 ..... 5841680 5841680 casper/vmlinuz 2014-11-03 00:45:09 ..... 5844176 5844176 casper/vmlinuz.netinst
以,`/casper/vmlinuz`在這裡使用。 4. [**`initrd`**](http://www.gnu.org/software/grub/manual/grub.html#initrd)命令用於為 Linux 核心映像載入初始 ramdisk,並在記憶體中的 Linux 設置區域中設置適當的參數。 [initrd](https://en.wikipedia.org/wiki/Initrd)是一種將臨時根文件系統載入到記憶體中的方案。將路徑放在`initrd`ISO 中。 讀取/提取 ISO 的內容以獲取路徑`initrd`:
7z l trisquel_7.0_i686.iso | grep initrd 14-11-03 00:45:19 ..... 16851900 16851900 casper/initrd 14-11-03 00:45:09 ..... 9398592 9398592 casper/initrd.netinst
5. 附加參數如`boot=casper iso-scan/filename=$isofile noprompt noeject`可能是特定於 GNU/Linux 發行版的,並且因另一個 Linux 系列而異。[您可以從這裡](https://web.archive.org/web/20170718204158/https://git.marmotte.net/git/glim/tree/grub2)找到不同系列/分佈的一些配置。 注意:某些發行版使用`initrd.gz`或`initrd.lz`取決於使用的算法/壓縮。 編輯完成後`/etc/grub.d/40_custom`,需要通過`update-grub2`命令更新 GRUB。重新啟動後,您將在 GRUB 螢幕上找到您添加的自定義菜單項。您可以使用 GNU/Linux 發行版的 Live 環境。 為了從 ISO 執行安裝,安裝程序可能需要解除安裝任何已安裝的分區;即說另一個系統安裝在`/isodevice`,那麼你可以`umount -l /isodevice`。