歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 用GRUB啟動ISO鏡像

用GRUB啟動ISO鏡像

日期:2017/2/28 14:23:50   编辑:Linux教程

果你想要使用多個Linux發行版,你沒有那麼多的選擇。你要麼安裝到你的物理機或虛擬機中,要麼以live模式從ISO文件啟動。第二個選擇,對硬盤空間需求較小,只是有點麻煩,因為你需要將ISO文件寫入到U盤或CD/DVD中來啟動。不過,這裡還有另外一個可選的折中方案:把ISO鏡像放在硬盤中,然後以live模式來啟動。該方案比完全安裝更省空間,而且功能也完備,這對於緩慢的虛擬機而言是個不錯的替代方案。下面我將介紹怎樣使用流行的Grub啟動加載器來實現該方案。

很明顯,你將需要使用到Grub,這是幾乎所有現代Linux發行版都使用的。你也需要你所想用的Linux版本的ISO文件,將它下載到本地磁盤。最後,你需要知道啟動分區在哪裡,並怎樣在Grub中描述。對於此,請使用以下命令:

  1. # fdisk -l

帶有‘*’的就是啟動分區。對於我,就是/dev/sda1,用Grub語言描述就是(hd0,1)。

作為參考,sda2就是(hd0,2),sdb1就是(hd1,1),以此類推。(你明白了吧。)

我們需要編輯什麼?

首先,打開/etc/default/grub並檢查以下行:

  1. #GRUB_HIDDEN_TIMEOUT=0

需要在此行前添加‘#’進行注釋。

保存,然後打開/etc/grub.d/40_custom。

在該文件中,你將添加啟動到ISO的參數。結構如下:

  1. menuentry "[Entry's title in the grub screen]"{
  2. set isofile="[path to ISO file]"
  3. loopback loop [boot partition inGrub language]$isofile
  4. [some specific] arguments
  5. }

例如,如果你想要從ISO文件啟動Ubuntu,那麼你就是想要添加如下行到40_custom文件:

  1. menuentry "Ubuntu 14.04 (LTS) Live Desktop amd64"{
  2. set isofile="/boot/ubuntu-14.04-desktop-amd64.iso"
  3. loopback loop (hd0,1)$isofile
  4. linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
  5. initrd (loop)/casper/initrd.lz
  6. }

如果你想要啟動Gparted:

  1. menuentry "GParted Live amd64"{
  2. set isofile="/boot/gparted-live-0.18.0-2-amd64.iso"
  3. loopback loop (hd0,1)$isofile
  4. loopback loop $isofile
  5. linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=${isofile}
  6. initrd (loop)/live/initrd.img
  7. }

或者甚至是Fedora:

  1. menuentry "Fedora 20 Live Desktop x86_64"{
  2. set isofile="/boot/Fedora-Live-Desktop-x86_64-20-1.iso"
  3. loopback loop (hd0,1)$isofile
  4. loopback loop $isofile
  5. linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-Desktop-x86_64-20-1 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile}
  6. initrd (loop)/isolinux/initrd0.img
  7. }

注意,參數可根據發行版進行修改。幸運的是,有許多地方你可以查閱到。我喜歡這個發行版,但是還有很多其它的發行版你可以啟動。同時,請注意你放置ISO文件的地方。如果你的家目錄被加密或者無法被訪問到,你可能更喜歡將這些文件放到像例子中的啟動分區。但是,請首先確保啟動分區有足夠的空間。

最後,不要忘了保存40_custom文件並使用以下命令來更新grub:

  1. # sudo update-grub

以便在下次啟動時看到修改。

接下來做什麼?

想要更多東西?好吧,那就修改下參數來玩玩。你可以啟動一個ISO文件,並讓它持續做一些事情。例如,如果你是個徹頭徹尾的妄想症患者,想要有個可以快速清除硬盤的選項,那麼可以使用DBAN來進行一些設置。現在,真的要當心啊,因為此設置會清除你的硬盤,而且在啟動時也沒有恢復選項:

  1. menuentry "Darik's Boot and Nuke"{
  2. set isofile="/boot/dban.iso"
  3. loopback loop (hd0,1)$isofile
  4. linux (loop)/dban.bzi nuke="dwipe" silent
  5. }

另外一個選擇

  1. menuentry "Darik's Boot and Nuke"{
  2. set isofile="/boot/dban.iso"
  3. loopback loop (hd0,1)$isofile
  4. linux (loop)/dban.bzi
  5. }

可以顯示DBAN選項,讓你選擇清除驅動器。當心,因為它仍然十分危險

小結一下,對於ISO文件和Grub有很多事情可做:從快速live會話到一鍵毀滅,都可以滿足你。之後,你也可以試試啟動一些針對隱私方面的發行版,如Tails。

你認為從Grub啟動一個ISO這個主意怎樣?這是不是你想要做的呢?為什麼呢?請在下面留言。

如何在Ubuntu12.04/12.10中重裝或修復Grub2引導 http://www.linuxidc.com/Linux/2012-11/74901.htm

Linux啟動引導過程 grub和mbr http://www.linuxidc.com/Linux/2013-07/87923.htm

grub 的安裝與使用 http://www.linuxidc.com/Linux/2013-07/87682.htm

grub引導程序配置文件分析 http://www.linuxidc.com/Linux/2013-07/87547.htm

CentOS 6.4 grub加密碼 http://www.linuxidc.com/Linux/2013-07/87124.htm

CentOS GRUB引導錯誤無法進入系統解決辦法 http://www.linuxidc.com/Linux/2014-11/108835.htm

Copyright © Linux教程網 All Rights Reserved