• <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
            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            系統: ubuntu12.04 beta (development version) 環境: 這臺是測試機,多系統并存在一枚硬盤上(ubunntu12.04/10.04/debian 6/win7/Xen server等等)

            幾天前通過apt 把ubuntu12.04 beta2升級軟件到ubuntu 12.04LTS。升級時,在apt的輸出中,看到grub軟件包更新有warning,寫著“…not a good choice..”,有不詳預感,grub的升級一定出了問題。果然,升級后,啟動時,進入grub菜單選擇后提示:

            grub error: no such partition

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

             

            出錯原因

            grub2在升級過程中出錯,重新install一遍即可。問題是,連系統都進入不了,如何reinstall呢?

            解決方法

            使用u盤或cd等外部系統啟動,chroot到原系統后 re-install grub。

            步驟

            找一張liveCD的linux系統,發行版任意,ubuntu/fedora/等等,都行。目的是用它啟動機器,掛載硬盤,然后chroot回到原來的系統路徑。筆者是使用SD卡中的tinycore linux啟動機器。

            啟動后,檢查分區情況,定位你升級失敗的ubuntu12.04的根目錄安裝在哪個分區。

            sudo fdisk -l

            掛載、綁定所需要的系統設備到原ubuntu12.04系統的分區下

            # 例如,我的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到原系統下

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

            執行grub的恢復 (reinstall)

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

            安裝好后,請退出chroot的環境

            logout 或者  exit 或者 CTRL-D

            退出掛載的設備和分區

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

            至此,重啟即可。

             

            注1:這個過程中,請注意liveCD運行環境和已安裝linux版本的兼容性問題,32bit的要使用32bit的liveCD,64bit的要使用64bit的liveCD,否則在chroot時會出現提示:

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

             





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

             

            自從ubuntu 9.10開始,ubuntu正式開始使用grub2作為引導程序。對于多系統用戶,可能有時候會將引導搞丟了(比如雙系統下重新安裝windows系統等),下面奶牛來介紹下ubuntu等linux系統的grub2的修復。

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

            用live-cd引導進入系統,然后在mnt目錄下掛載分區。

            首先我們需要確定一個問題,你的/boot是否單獨分區了,如果單獨分區了請按照方法A進行,如果/boot沒有單獨分區,可以按照B來進行。

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

            打開終端,

            sudo su

            fdisk -l (查看分區內容,并且確定硬盤為sda啊還是sdb,或者hda還是sda)

            mount /dev/sda9 /mnt

            mount /dev/sda8 /mnt/boot

            mount –bind /dev /mnt/dev

            mount –bind /proc /mnt/proc

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

            chroot /mnt

            這時沒有意外的話我們就已經進入了ubuntu的系統了

            sudo grub-install /dev/sda

            sudo update-grub

            完工,重啟,linux系統應該可以進入了。

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

            如果在sudo update-grub后出現提示

            Cannot find list of partitions!

            請不要慌張,因為在多系統的環境下會出現這個提示,告訴我們無法識別linux之外的windows系統,正常重啟還是可以進入linux的,進入系統后就啥都好說了,繼續多來一次update-grub就可以了。

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

            由于寒假,本站已經相當長時間沒有更新了。如今開學自然可充分利用時間,所以現在就講下我前段時間碰到的一個問題:前陣子我硬盤分區失誤,導致系統啟動時自動進入rescue模式。

            當時折騰了好些時間,都解決不了,現在就將解決辦法曬出來。

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

            此問題還需要分類解決,分為兩種情況:1. /boot 沒有單獨分區,默認包含在 / 分區;2. /boot 分區有單獨分區。

            第一種情況:

            先確定grub核心文件所在分區

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

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

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

            確定分區之后,執行下列命令:

            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 ——–>若出現啟動菜單,按c進入命令行模式

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

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

            rescue>boot

            內核版本號 -xxx-xxx可以按Tab鍵查看后再手動補全。

            第二種情況:

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

            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 ——–>若出現啟動菜單,按c進入命令行模式

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

            rescue>initrd /initrd.img-xxx-xxx

            rescue>boot

            boot啟動系統后,再在系統下打開終端,執行命令修復grub 重建配置文件grub.cfg

            sudo update-grub

            重建grub到第一硬盤mbr

            sudo grub-install /dev/sda

            本文大部分數據來源于網絡,由于時間已久,來源已無處可尋,如有侵犯到您的著作權,請告知,本站將立即刪除!


             

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

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

            2:重啟ubuntu后進入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文件損壞,則應該在安裝grub時重新生成)
            sudo mkinitramfs -o /media/fdisk/boot/initrd.img-2.6.32.21-generic
            initrd /boot/initrd.img-2.6.32.21-generic
            boot
              回復  更多評論
              
            久久久无码一区二区三区| 97久久精品人妻人人搡人人玩 | 国产激情久久久久影院老熟女| 综合久久一区二区三区 | 久久天天躁狠狠躁夜夜网站| 亚洲精品乱码久久久久久蜜桃图片 | 国产精品免费看久久久香蕉| 国内精品伊人久久久久网站| 一本大道久久东京热无码AV | 色综合久久天天综合| 国产三级观看久久| 国产成人久久精品一区二区三区| 国内精品久久久久久久97牛牛| 久久精品成人欧美大片| 日韩人妻无码精品久久久不卡 | 国产成人无码精品久久久久免费| 久久影院午夜理论片无码| 精品久久无码中文字幕| 日日狠狠久久偷偷色综合96蜜桃| 国产Av激情久久无码天堂| 久久人人爽人人爽人人片AV东京热| 99久久久国产精品免费无卡顿| 无码人妻久久一区二区三区蜜桃 | 老司机国内精品久久久久| 一本色道久久88精品综合| 久久精品国产黑森林| 亚洲国产成人久久综合碰碰动漫3d | 久久久久99这里有精品10| 一本伊大人香蕉久久网手机| 欧美伊人久久大香线蕉综合| 久久精品国产一区二区电影| 国产综合久久久久| 国内精品久久久久久99蜜桃| 久久人人爽人人爽人人AV| 久久强奷乱码老熟女网站| 亚洲人成网站999久久久综合 | 欧美午夜精品久久久久久浪潮| 成人久久精品一区二区三区| 久久亚洲AV成人无码国产| 99久久99久久精品国产片果冻 | 狠狠综合久久综合中文88|