Grub2 安裝到 U 盤,硬盤 MBR 的修復,以及用 Grub2 與 LiveCD 重裝系統

轉載請註明出處:http://hi.baidu.com/vzomik/blog/item/0c6ca6f11c23971eb07ec516.html

該文章是對 (點這裏查看)的補充與改進,如下某些內容的前題是你已經安裝了 Grub2 在你的電腦上,
本文並無說起如何下載安裝 Grub2,畢竟這麼簡單,你懂的,可 Google 「GRUB 2 安裝及配置筆記」。


咱們按照題目的順序,先來講說 Grub2 如何安裝到 U 盤:
第一步,建立一個掛載點用於掛載 U 盤,而且掛載它:
sudo mkdir -p /media/u
sudo mount /dev/sdb1 /media/u


第二步,固然是安裝了,是否是很快?其實不快了,畢竟仍是這麼簡單,你也懂的:
sudo grub-install --root-directory=/media/u /dev/sdb

附註:在基於 Ubuntu 10.04 的 Mint 9 下,筆者發現其實 grub-install 是一個腳本,
if 判斷後調用 grub-install.real 腳本,網上資料有部分過期,請勿盡信,有調查纔有發方權,
好比其沒有調用 grub-mkdevicemap 命令,由於我沒有在 /boot/grub 下找到 device.map 文件,
我是在手動執行 grub-mkdevicemap 命令後,才發現該目錄下有 device.map 文件的。


第三步,可選的一步,若是你不想敲命令,或者想用一個 U 盤啓動 N 個系統,Just Do it!
在 /media/u/boot/grub/ 目錄下新建一個 grub.cfg 純文本文件,
參考 /boot/grub/grub.cfg 並寫入相應內容到 /media/u/boot/grub/grub.cfg。



按照題目的順序,再來講說 Grub2 如何修復硬盤 MBR,固然你要先用 LiveCD 引導到桌面:
第一步,建立一個掛載點用於掛載 / 分區,並掛載它:
sudo mkdir -p /mnt/root
sudo mount /dev/sda1 /mnt/root


附註:/dev/sda1 是個人 / 分區,若是你的 /boot 是在另外的分區如 /dev/sda2,參考如下命令:
sudo mkdir -p /mnt/root/boot
sudo mount /dev/sda2 /mnt/root/boot


再注:掛載其餘分區或設備,據說 /dev 很重要,不能漏掉?反正我沒有漏掉就是了~
若是 /dev,/bin,/usr 等等之類的,也是在另外的分區,參考以上命令掛載到 /mnt/root/ 下。


第二步,改變根分區,這時具備根權限,更新配置文件:
sudo chroot /mnt/root
update-grub


第三步,安裝 Grub2 到硬盤 /dev/sda 的 MBR 上:
grub-install /dev/sda

三注:update-grub 是一個腳本文件,調用 grub-mkconfig 腳本,請自行查看。
至於 chroot 命令,這裏不重點解釋說明,須要瞭解的能夠自行 Google。


第四步,反掛載已經掛載的分區設備,不過咱們仍是直接重啓好了,這樣快不少,哈!


按照題目的順序,最後來講說如何用 Grub2 與 ISO 重裝系統,也可用剛纔製做的 Grub2 U 盤:
重啓電腦,在 BIOS 自檢完成後,按着左 Shift 鍵進入 Grub2 的界面,按 C 進入命令行,參考如下命令:
grub> root (hd0,3)
grub> loopback loop (hd0,3)/reset/mint/linuxmint-9-gnome-dvd-i386.iso
grub> linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/reset/mint/linuxmint-9-gnome-dvd-i386.iso
grub> initrd (loop)/casper/initrd.lz
grub> boot


附註:
grub> 是指提示符,不用輸入,loopback 後的 loop 不是固定的,用 lo 也能夠,不過要把下面的 (loop) 改成 (lo)。
(hd0,3)/reset/mint/linuxmint-9-gnome-dvd-i386.iso 是個人 ISO 鏡像在硬盤上的位置,必需要自行修改。
linux 後的 (loop) 是上面的 loopback 後 loop 的對應掛載設備,下面的 initrd 後的 (loop) 也是同樣。
(loop)/casper/vmlinuz 是在光盤中的啓動所需的內核文件,下面的 /casper/initrd.lz 文件是用於引導初始化的。
boot=casper 是 Ubuntu 系列的 LiveCD 啓動參數,其餘系統通常不是這個,需自行修改 boot= 以後的內容。
iso-scan/filename= 後是 ISO 所在的絕對路徑,第一個命令要理解。我試過用 isofrom= 和 findiso= 這兩個選項,惋惜啓動失敗了。


或者你能夠把上面的命令寫到 /etc/grub.d/40_custom 中,再執行 update-grub 讓其自動寫到 /boot/grub/grub.cfg 中。
命令寫到 /etc/grub.d/40_custom,再執行 update-grub,重啓時按左 Shift 鍵失效,會直接進入 LiveCD 系統,不知是否人品問題,
不過也好,直接重裝。 閱讀全文
類別: 默認分類  查看評論
相關文章
相關標籤/搜索