歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

fedora 16 使用LiveCD修復grub2引導

我承認我這個人太貪心了,自從我的電腦裝了fedora16變成雙系統以後,竟然又對opensuse感興趣了,結果興沖沖的想裝個三系統玩玩,但是其實我對linux方面根本不太懂啊,結果在安裝的時候把opensuse的grub引導直接安裝到了MBR上面,把原來fedora16的grub2引導給覆蓋了,結果電腦識別不了fedora16,而且opensuse又識別不了我的無線網卡,整個就杯具了,還好學長及時出馬,終於把這個問題解決了,呵呵^_^
 
現在的孩子都喜歡裝系統,win7+fedora,如果先裝win7再裝fedora,是蠻簡單的,如果先裝fedora,然後win 7,本文方法也是適用。
 
 
 
如果LiveCD不知為何物,請百度
 
如果知LiveCD不知如何制作,請百度
 
如果做好LiveCD不知如何用其引導,請百度
 
 
 
【為了照顧一些剛想玩fedora的奮斗青年,省去你的百度時間吧】
 
step1:http://fedoraproject.org/  下載600多M的livecd鏡像文件,首頁是32位,你可以點更多下載64位
 
step2:https://fedorahosted.org/liveusb-creator/ 下載liveusb的制作軟件,官方的。
 
step3:准備一個U盤,(裡面有數據也沒關系,制作的時候不像pe,會把你格式化,他保留原有數據),
 
用那個軟件選擇剛才你下載好的ISO,然後選擇你的U盤盤符,persistent storage 選擇個100M(這個相當於
 
Livecd裡的/home掛載點,除了這個之外的其他掛載點是不用寫入的U盤的),點擊creat就可以完成制作了。
 
step4:調整你的bios啟動順序或者現在筆記本都支持quick boot,選擇U盤啟動就可以了。
 
啟動後會出現start fedora 16 ,按回車就可以進入了
 
【有些U盤用官方的windows版本liveusb creator制作之後會啟動不了,換個U盤嘗試。或者到
 
http://unetbootin.sourceforge.net/下載這個軟件嘗試】
 
【進入之後默認是英文,如果你英文不好請單擊屏幕右上角的live用戶名,選擇system settings,然後
 
選擇region and  language(單擊即可),在出來的對話框選中chinese。再去右上角單擊用戶名,log out,
 
注銷之後會問你是否更改home下面的文件夾名字,我建議不要該成中文,因為這樣你在shell裡面比較麻煩】
 
用LiveCD啟動之後,首先應該明確的是你的fedora裝在哪個分區,現在的硬盤都應該是sata的吧,那麼就對應
 
/dev/sdax,x是個數字,1~4表示主分區,5開始是邏輯分區。如果你在可伶的用著IDE硬盤,那麼就對應/dev/hdax
 
打開你的磁盤實用工具,或者叫Disk unity,找到fedora安裝所在分區,我的在sda10,所以下面就拿這個說明了。。
su
mount -t ext4 -o rw /dev/sda10   /media
把fedora的安裝分區掛載到當前的LiveCD文件系統下,當然如果你比較偷懶的話,比如我:),直接在文件管理器裡面雙擊
一下那個分區,然後就會在/media/_FEDORA_*** 下掛載了
 
原來安裝在硬盤上的fedora只是把文件目錄掛上來了,一點硬件資源也木有,啥事也干不了,只能用來copy/paste一下數據,
現在把當前系統的資源給他
su
mount -t proc none /media/proc
mount -o bind /dev /media/dev
mount -o bind /sys /media/sys
mount -t devpts devpts /media/dev/pts
特別看清楚上面的指令,千萬別把/dev 寫成了/dev/,如果這樣就會出現
/dev is not a block device了
 
掛完後用chroot命令切換到原來的fedora中去
 
su
chroot /media
grub2-install /dev/sda
當然上述指令是講grub2安裝到硬盤MBR上恢復引導,如果你想裝在當前分區中讓其他軟件來引導就應該是
grub2-install /dev/sda10
 
OK,做下掃尾工作
 
exit
umount /media/proc
umount /media/dev/pts
umount /media/sys
umount /media/dev
umount /media
reboot
當然,上述修復的grub是原來的grub,opensuse沒了,其實grub2很強大,能自動識別n多系統,只需重新生成配置
文件即可。
 
su
grub2-mkconfig  -o  /boot/grub2/grub.cfg
reboot
congratulations
 
今天在幫別人修復的時候,又遇到一些問題,寫下來分享
 
首先:這台電腦的分區並不是我上面寫的簡單的一個/ 分區,用的LVM和一個boot分區(sda8),那麼在掛載的時候就要分別掛載了。在LVM裡有一個root的邏輯卷組和一個swap卷組,位於/dev/mapper/vg_fedora_root,和/dev/mapper/vg_fedora_swap(這個的取名是自己定義的,如果采用系統自己默認的分區安裝,不是手動的話,名字不同)
 
su
mount -o rw  /dev/mapper/vg_fedora_root   /media
mount -o rw /dev/sda8  /media/boot
然後掛載上述寫的資源。
 
其次:在執行grub2-install 的時候,遇到錯誤
 
[root@Fedora sunhao]# grub2-install /dev/sda
/sbin/grub2-setup: warn: Your embedding area is unusually small.  core.img won't fit in it..
/sbin/grub2-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/sbin/grub2-setup: error: will not proceed with blocklists.
網上查的是mbr和sda1之間的那塊embedding area太小了,應該是默認的63,如果是32的話會出現這個問題,但是我執行fdisk  -lu,顯示這電腦已經是63了,不明原因。
google了一把,沒找到解決方案還是安裝不上去,後來我在wiki上面,看到了這個用法,強制安裝。
 
grub2-install  --force  /dev/sda
竟然可以裝上去,並且成功啟動~
 
我只是想推廣一下學長的這篇技術博客,想分享給喜歡玩linux的朋友,希望大家支持哦


摘自 MagicBox
Copyright © Linux教程網 All Rights Reserved