• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2013年6月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            系統(tǒng): ubuntu12.04 beta (development version) 環(huán)境: 這臺(tái)是測(cè)試機(jī),多系統(tǒng)并存在一枚硬盤(pán)上(ubunntu12.04/10.04/debian 6/win7/Xen server等等)

            幾天前通過(guò)apt 把ubuntu12.04 beta2升級(jí)軟件到ubuntu 12.04LTS。升級(jí)時(shí),在apt的輸出中,看到grub軟件包更新有warning,寫(xiě)著“…not a good choice..”,有不詳預(yù)感,grub的升級(jí)一定出了問(wèn)題。果然,升級(jí)后,啟動(dòng)時(shí),進(jìn)入grub菜單選擇后提示:

            grub error: no such partition

            于是有了這篇短文,此方法對(duì) grub rescue 同樣有效

             

            出錯(cuò)原因

            grub2在升級(jí)過(guò)程中出錯(cuò),重新install一遍即可。問(wèn)題是,連系統(tǒng)都進(jìn)入不了,如何reinstall呢?

            解決方法

            使用u盤(pán)或cd等外部系統(tǒng)啟動(dòng),chroot到原系統(tǒng)后 re-install grub。

            步驟

            找一張liveCD的linux系統(tǒng),發(fā)行版任意,ubuntu/fedora/等等,都行。目的是用它啟動(dòng)機(jī)器,掛載硬盤(pán),然后chroot回到原來(lái)的系統(tǒng)路徑。筆者是使用SD卡中的tinycore linux啟動(dòng)機(jī)器。

            啟動(dòng)后,檢查分區(qū)情況,定位你升級(jí)失敗的ubuntu12.04的根目錄安裝在哪個(gè)分區(qū)。

            sudo fdisk -l

            掛載、綁定所需要的系統(tǒng)設(shè)備到原ubuntu12.04系統(tǒng)的分區(qū)下

            # 例如,我的ubuntu12.04的根目錄是在/dev/sda6下。  sudo mkdir /mnt/sda6 sudo mount /dev/sda6 /mnt/sda6  sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

            一切就緒后,chroot到原系統(tǒng)下

            sudo chroot /mnt/sda6 /bin/bash      # 若這里提示不能chroot,請(qǐng)看下面的注1

            執(zhí)行g(shù)rub的恢復(fù) (reinstall)

            grub-install /dev/sda       # 安裝到MBR 或者 grub-install /dev/sda6      # 把grub安裝到分區(qū)

            安裝好后,請(qǐng)退出chroot的環(huán)境

            logout 或者  exit 或者 CTRL-D

            退出掛載的設(shè)備和分區(qū)

            sudo umount /mnt/sda6/sys sudo umount /mnt/sda6/proc sudo umount /mnt/sda6/dev sudo umount /mnt/sda6

            至此,重啟即可。

             

            注1:這個(gè)過(guò)程中,請(qǐng)注意liveCD運(yùn)行環(huán)境和已安裝linux版本的兼容性問(wèn)題,32bit的要使用32bit的liveCD,64bit的要使用64bit的liveCD,否則在chroot時(shí)會(huì)出現(xiàn)提示:

            can't execute 'bin/bash': Exec format error

             





            ----------------------------------------------------------------------------

             

            自從ubuntu 9.10開(kāi)始,ubuntu正式開(kāi)始使用grub2作為引導(dǎo)程序。對(duì)于多系統(tǒng)用戶,可能有時(shí)候會(huì)將引導(dǎo)搞丟了(比如雙系統(tǒng)下重新安裝windows系統(tǒng)等),下面奶牛來(lái)介紹下ubuntu等linux系統(tǒng)的grub2的修復(fù)。

            1.需要一張可以引導(dǎo)的ubuntu live-cd,并且版本在9.10+

            用live-cd引導(dǎo)進(jìn)入系統(tǒng),然后在mnt目錄下掛載分區(qū)。

            首先我們需要確定一個(gè)問(wèn)題,你的/boot是否單獨(dú)分區(qū)了,如果單獨(dú)分區(qū)了請(qǐng)按照方法A進(jìn)行,如果/boot沒(méi)有單獨(dú)分區(qū),可以按照B來(lái)進(jìn)行。

            A:以/boot為sda8,/為sda9為例,如果還有其它linux分區(qū)也用同樣的方法掛上來(lái)就可以了。

            打開(kāi)終端,

            sudo su

            fdisk -l (查看分區(qū)內(nèi)容,并且確定硬盤(pán)為sda啊還是sdb,或者h(yuǎn)da還是sda)

            mount /dev/sda9 /mnt

            mount /dev/sda8 /mnt/boot

            mount –bind /dev /mnt/dev

            mount –bind /proc /mnt/proc

            如果還有其它linux分區(qū),用同樣的方法掛載上

            chroot /mnt

            這時(shí)沒(méi)有意外的話我們就已經(jīng)進(jìn)入了ubuntu的系統(tǒng)了

            sudo grub-install /dev/sda

            sudo update-grub

            完工,重啟,linux系統(tǒng)應(yīng)該可以進(jìn)入了。

            B:方法與A類似,但是不用掛載/boot分區(qū),所以mount /dev/sda8 /mnt/boot可以省略。其它操作一樣。

            如果在sudo update-grub后出現(xiàn)提示

            Cannot find list of partitions!

            請(qǐng)不要慌張,因?yàn)樵诙嘞到y(tǒng)的環(huán)境下會(huì)出現(xiàn)這個(gè)提示,告訴我們無(wú)法識(shí)別linux之外的windows系統(tǒng),正常重啟還是可以進(jìn)入linux的,進(jìn)入系統(tǒng)后就啥都好說(shuō)了,繼續(xù)多來(lái)一次update-grub就可以了。

            -------------------------------------------------------------

            由于寒假,本站已經(jīng)相當(dāng)長(zhǎng)時(shí)間沒(méi)有更新了。如今開(kāi)學(xué)自然可充分利用時(shí)間,所以現(xiàn)在就講下我前段時(shí)間碰到的一個(gè)問(wèn)題:前陣子我硬盤(pán)分區(qū)失誤,導(dǎo)致系統(tǒng)啟動(dòng)時(shí)自動(dòng)進(jìn)入rescue模式。

            當(dāng)時(shí)折騰了好些時(shí)間,都解決不了,現(xiàn)在就將解決辦法曬出來(lái)。

            首先聲明一下,要解決此問(wèn)題必須保證grub核心文件core.img還在分區(qū)內(nèi),然后通過(guò):set,ls,insmod,root,prefix等命令解決。

            此問(wèn)題還需要分類解決,分為兩種情況:1. /boot 沒(méi)有單獨(dú)分區(qū),默認(rèn)包含在 / 分區(qū);2. /boot 分區(qū)有單獨(dú)分區(qū)。

            第一種情況:

            先確定grub核心文件所在分區(qū)

            ls (hd0,x)/查看(hd0,x)分區(qū)目錄的文件。(##x為未知數(shù),假如我的grub核心文件在(hd0,9),就輸入ls (hd0,9))

            ls (hd0,x)/boot/grub/ 查看(hd0,x)分區(qū)/boot/grub目錄下文件

            ls (hd0,x)/boot/ 查看(hd0,x)分區(qū)的/boot目錄下文件ls (hd0,x)/boot/grub/ 查看(hd0,x)分區(qū)/boot/grub目錄下文件

            確定分區(qū)之后,執(zhí)行下列命令:

            grub rescue>root=(hd0,x)

            grub rescue>prefix=/boot/grub

            grub rescue>set root=(hd0,x)

            grub rescue>set prefix=(hd0,x)/boot/grub

            grub rescue>insmod normal

            rescue>normal ——–>若出現(xiàn)啟動(dòng)菜單,按c進(jìn)入命令行模式

            rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax

            rescue>initrd /boot/initrd.img-xxx-xxx

            rescue>boot

            內(nèi)核版本號(hào) -xxx-xxx可以按Tab鍵查看后再手動(dòng)補(bǔ)全。

            第二種情況:

            首先用同樣的方法找出 /boot 獨(dú)立分區(qū)(hd0,x)和 / 分區(qū)(hd0,y),然后執(zhí)行下列命令:

            grub rescue>root=(hd0,x)

            grub rescue>prefix=/grub

            grub rescue>set root=(hd0,x)

            grub rescue>set prefix=(hd0,x)/grub

            grub rescue>insmod normal

            rescue>normal ——–>若出現(xiàn)啟動(dòng)菜單,按c進(jìn)入命令行模式

            rescue>linux /vmlinuz-xxx-xxx root=/dev/sday

            rescue>initrd /initrd.img-xxx-xxx

            rescue>boot

            boot啟動(dòng)系統(tǒng)后,再在系統(tǒng)下打開(kāi)終端,執(zhí)行命令修復(fù)grub 重建配置文件grub.cfg

            sudo update-grub

            重建grub到第一硬盤(pán)mbr

            sudo grub-install /dev/sda

            本文大部分?jǐn)?shù)據(jù)來(lái)源于網(wǎng)絡(luò),由于時(shí)間已久,來(lái)源已無(wú)處可尋,如有侵犯到您的著作權(quán),請(qǐng)告知,本站將立即刪除!


             

            posted on 2013-06-16 13:55 聶文龍 閱讀(2223) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Linux

            FeedBack:
            # re: ubuntu12.04 升級(jí) grub error的修復(fù) 2013-06-16 16:06 aaa
            1:安裝grub
            啟動(dòng)livecd
            (查看ubuntu所在分區(qū))sudo fdisk -l
            (建立一個(gè)臨時(shí)目錄)sudo mkdir /media/fdisk
            (掛載,sda1是ubuntu所在分區(qū))sudo mount /dev/sda1 /media/fdisk
            (安裝grub,/dev/sda指硬盤(pán)類型)grub-install --root-directory=/media/fdisk /dev/sda

            2:重啟ubuntu后進(jìn)入grub命令

            3:配置grub(使用tab鍵)
            cat (hd0,1)/etc/fstab
            root (hd0,1)
            linux /boot/vmlinuz-2.6.32-21-generic ro root=/dev/sda1
            (如果是initrd文件損壞,則應(yīng)該在安裝grub時(shí)重新生成)
            sudo mkinitramfs -o /media/fdisk/boot/initrd.img-2.6.32.21-generic
            initrd /boot/initrd.img-2.6.32.21-generic
            boot
              回復(fù)  更多評(píng)論
              
            国产成人香蕉久久久久| 亚洲va久久久噜噜噜久久男同 | 久久久精品人妻无码专区不卡 | 国产成人精品久久一区二区三区| 久久久国产乱子伦精品作者| 伊人色综合久久| 欧美亚洲国产精品久久| 亚洲国产精品无码久久| 久久精品国产91久久麻豆自制| 国产精品久久久久一区二区三区 | 亚洲国产欧美国产综合久久| 九九久久99综合一区二区| 三级韩国一区久久二区综合| 久久精品人人做人人爽电影蜜月| a级毛片无码兔费真人久久| 麻豆一区二区99久久久久| 国产综合精品久久亚洲| 国产精品一区二区久久国产| 无码人妻久久一区二区三区蜜桃| 狠狠色丁香久久综合五月| 亚洲欧美成人久久综合中文网 | 蜜臀久久99精品久久久久久| 久久精品国产第一区二区三区| 婷婷久久五月天| 香蕉久久影院| 久久久精品无码专区不卡| 91精品国产91久久久久久青草 | 久久青草国产精品一区| 亚洲av日韩精品久久久久久a| 久久久噜噜噜久久| 精品国产乱码久久久久久浪潮 | 亚洲AV无码久久精品色欲| 久久亚洲精品无码VA大香大香 | 久久久久亚洲av成人无码电影 | 丁香色欲久久久久久综合网| 久久中文精品无码中文字幕| 国产国产成人久久精品| 亚洲国产精品久久久久久| 日本久久久久久中文字幕| 亚洲∧v久久久无码精品| 漂亮人妻被黑人久久精品|