• <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>
            posts - 15, comments - 9, trackbacks - 0, articles - 0
            grub2基礎(chǔ)教程-修訂版
                 
                                             smallapple

            目錄

            一、grub2新特性

            二、grub2安裝與啟動(dòng)

            三、grub2配置文件詳解

            四、腳本修改

            五、使用grub2常見(jiàn)錯(cuò)誤及修復(fù)方法


            一、grub2新特性

            1grub2grub有很多不同的地方
            a
            )圖形接口
            b
            )使用了模塊機(jī)制,通過(guò)動(dòng)態(tài)加載需要的模塊來(lái)擴(kuò)展功能
            c
            )支持腳本語(yǔ)言,例如條件判斷,循環(huán)、變量和函數(shù)
            d
            )支持rescue模式,可用于系統(tǒng)無(wú)法引導(dǎo)的情況
            e
            )國(guó)際化語(yǔ)言。包括支持非ASCII的字符集和類似gettext的消息分類,字體,圖形控制臺(tái)等等
            f
            )有一個(gè)靈活的命令行接口。如果沒(méi)有配置文件存在,GRUB會(huì)自動(dòng)進(jìn)入命令模式
            g
            )針對(duì)文件系統(tǒng)、文件、設(shè)備、驅(qū)動(dòng)、終端、命令、分區(qū)表、os loder的模塊化、層次化、基于對(duì)象的框架
            h
            )支持多種文件系統(tǒng)格式
            i
            )可訪問(wèn)已經(jīng)安裝的設(shè)備上的數(shù)據(jù)
            j
            )支持自動(dòng)解壓

            2
            、設(shè)備的命名
            grub2
            同樣以fd表示軟盤(pán),hd表示硬盤(pán)(包含IDESCSI硬盤(pán))。設(shè)備是從0開(kāi)始編號(hào),分區(qū)則是從1開(kāi)始,主分區(qū)從1-4,邏輯分區(qū)從5開(kāi)始,而grub分區(qū)編號(hào)是從0開(kāi)始的。下面給出幾個(gè)例子 :
            (fd0)
            :表示整個(gè)軟盤(pán)
            (hd0,1)
            :表示BIOS中的第一個(gè)硬盤(pán)的第1個(gè)分區(qū)
            (hd0,5)/boot/vmlinuz
            :表示BIOS中的第一個(gè)硬盤(pán)的第一個(gè)邏輯分區(qū)下的boot目錄下的vmlinuz文件

            二、grub2安裝與啟動(dòng)

            1、安裝ubuntu9.10時(shí),grub默認(rèn)安裝在第一硬盤(pán)(hd0)的mbr,其實(shí)就是把引導(dǎo)文件boot.img寫(xiě)入硬盤(pán)的mbr,當(dāng)然,用戶也可以選擇不寫(xiě)入硬盤(pán)mbr而是寫(xiě)入linux分區(qū)的引導(dǎo)扇區(qū)。啟動(dòng)時(shí)根據(jù)mbr所提供信息找到啟動(dòng)分區(qū)后,加載分區(qū)內(nèi)的grub核心文件core.img和配置文件grub.cfg,進(jìn)入選擇菜單畫(huà)面,在菜單畫(huà)面,按上下箭號(hào)選擇需要系統(tǒng)菜單項(xiàng),按Enter進(jìn)入選項(xiàng)。






            e進(jìn)入己選擇菜單的編輯狀態(tài),在編輯狀態(tài)下,由上下左右箭號(hào)來(lái)移動(dòng)光標(biāo),enter鍵換行,ctrl+x以編輯的內(nèi)容啟動(dòng),ctrl+c進(jìn)命令行狀態(tài),按Esc退出,回到菜單項(xiàng)。

            在需要使用額外的內(nèi)核參數(shù)啟動(dòng)時(shí),比如要加上acpi=off時(shí),把光標(biāo)移動(dòng)到linux這一行最后,在splash后加上一空格再輸入acpi=off,然后按ctrl+x啟動(dòng)。



            c進(jìn)入命令行狀態(tài),按Tab鍵可查看所有可用的命令。




            在命令行狀態(tài),可以根據(jù)需要加載或移除相應(yīng)模塊,也可用來(lái)啟動(dòng)在菜單沒(méi)有顯現(xiàn)的的系統(tǒng)。

            比如,在第一硬盤(pán)的第一分區(qū)上裝有windows xp系統(tǒng),但在菜單上沒(méi)顯示出來(lái),我們可以命令行狀態(tài)下輸入命令啟動(dòng):

                grub>set root=(hd0,1)

                grub>chainloader +1

                grub>boot

            又比如啟動(dòng)第二硬盤(pán)第一邏輯分區(qū)上的ubuntu系統(tǒng):

                grub>set root=(hd1,5)

                grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5

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

                grub>boot

            其中內(nèi)核vmlinuzinitrd.img的版本號(hào)可用按Tab鍵自動(dòng)查看。


            2、下面介紹下在grub2中一些常用的命令

                1)help
                    查看命令用法,如
                help search
            :查看search命令詳細(xì)用法
                2)set

                    設(shè)置變量值,如

                set default=0
                set timeout=5

                set root=(hd0,3)等等

                    需要調(diào)用變量AA的值時(shí),使用${AA},如set root=(hd1,1),則${root}=(hd1,1)

                3)default

                    定義默認(rèn)引導(dǎo)的操作系統(tǒng)。0 表示第一個(gè)操作系統(tǒng),1表示第2個(gè),依此類推

                4)timeout

                    定義在時(shí)間內(nèi)用戶沒(méi)有按下鍵盤(pán)上的某個(gè)按鍵,自動(dòng)引導(dǎo)default指定的操作系統(tǒng)。

                5)root

                    指定用于啟動(dòng)系統(tǒng)的分區(qū)。

                6)insmodrmmod

                    加載或移除某模塊,如

            insmod jpeg

            insmod png

            insmod ntfs

            rmmod png

             等

            7)drivemap
             drivemap
            兼容grubmap,主要用于只能從第一硬盤(pán)(hd0)引導(dǎo)啟動(dòng)的系統(tǒng)如 win2000 xp 2003,比如要添加第二硬盤(pán)第一分區(qū)上的xp系統(tǒng):
             menuentry "Windows XP" {
             set root=(hd1,1)
             drivemap -s (hd0) ${root}
             chainloader +1
             }

                8)ls
                    列出當(dāng)前的所有設(shè)備。如(hd0)(hd0,1)(hd0,5)(hd1)(hd1,1)(hd1,2)

                ls -l
                    詳細(xì)列出當(dāng)前的所有設(shè)備。對(duì)于分區(qū),會(huì)顯示其labeluuid
                ls /
                    列出當(dāng)前設(shè)為root的分區(qū)下的文件
                ls (hd1,1)/
                    列出(hd1,1)分區(qū)根目錄的文件
                9)search
                search -f /ntldr
                    列出根目錄里包含ntldr文件的分區(qū),返回為分區(qū)號(hào)
                search -l LINUX
                    搜索labelLINUX的分區(qū)。
                search --set -f /ntldr
                    搜索根目錄包含ntldr文件的分區(qū)并設(shè)為root,注意如果多個(gè)分區(qū)含有ntldr文件,

                set失去作用。

                10)loopback
                loopback
            命令可用于建立回放設(shè)備,如
                loopback lo0 (hd1,1)/abc.iso
                    可以使用lo0設(shè)備來(lái)訪問(wèn)abc.iso里的內(nèi)容,比如說(shuō),可以從abc.iso里的軟盤(pán)映像中啟動(dòng)
                loopback lo0 (hd1,1)/aa.iso
                linux (lo0)/memdisk
                initrd (lo0)/abc.img
                    要?jiǎng)h除某一回放設(shè)備,可以使用-d參數(shù):
                loopback -d lo0
                11)pager
                    分頁(yè)顯示。
                set pager=1
                    顯示滿一頁(yè)時(shí)暫停,按space繼續(xù)
                set pager=0
                    取消分頁(yè)顯示
                12)linux
                    用linux命令取代grub中的kernel命令

                13)chainloader

                    調(diào)用另一個(gè)啟動(dòng)器,如

                chainloader (hd0,1)+1

                    調(diào)用第一硬盤(pán)第一分區(qū)引導(dǎo)扇區(qū)內(nèi)的啟動(dòng)器,可以是windowslinux的啟動(dòng)器

                14) grub2掛載軟盤(pán)鏡像

                    menuentry "Boot from DOS IMG" {

                        linux16 /memdisk

                        initrd16 /win98.img

                    }

                        對(duì)非標(biāo)準(zhǔn)的1.4M和2.8M的其他鏡像掛載方法,需要指定 CHS參數(shù):

                    menuentry "Boot from IMG" {

                        linux16 /memdisk c=* h=* s=* floppy

                        initrd16 /xxx.img

                    }


            三、grub2配置文件詳解

                grub2改用grub.cfg為配置文件,配置文件包含以下基本內(nèi)容:(紅色為解釋部分)


            ### BEGIN /etc/grub.d/00_header ###
            load_env

            #加載變量,如果在grubenv保存變量,則啟動(dòng)時(shí)裝載
            set default="0"

            #設(shè)置默認(rèn)引導(dǎo)項(xiàng),默認(rèn)值為0
            insmod ext2

            #插入文件系統(tǒng)支持的模塊,除了用作啟動(dòng)的分區(qū)外,其他分區(qū)格式可在menuentry底下再添加
            set root=(hd0,8)

            # 指定系統(tǒng)root分區(qū),也就是 / 分區(qū)
            search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b

            #指定uuid=2d61e5f9-1d2a-4167-a6f1-b991ba00878b的分區(qū)為root分區(qū),如果前面的分區(qū)號(hào)(hd0,8)的#uuid與這里的uuid一致,這兩句作用一樣,如果不一致,則指定uuid的起作用。

            if loadfont /usr/share/grub/unicode.pf2 ; then

            #設(shè)置終端字體,unicode.pf2支持中文字符顯示
            set gfxmode=640x480

            #設(shè)置顯示分辨率,默認(rèn)為640x480,可用800x600,1024x768,建議跟你想設(shè)定的圖片大小一致
            insmod gfxterm

            #插入終端模塊gfxterm,支持中文字符顯示和支持24位圖像
            insmod vbe

            #插入vbe模塊,GRUB2引入模塊化機(jī)制,要使用它,需要在這里加入
            if terminal_output gfxterm ; then true ; else
            # For backward compatibility with versions of terminal.mod that don't
            # understand terminal_output
            terminal gfxterm

            #設(shè)定grub2終端為gfxterm
            fi
            fi

            if [ ${recordfail} = 1 ]; then
              set timeout=-1     # 若有啟動(dòng)失敗的記錄,則菜單項(xiàng)不再倒計(jì)時(shí)
            else
              set timeout=10    #倒計(jì)時(shí)10秒后進(jìn)按默認(rèn)啟動(dòng)項(xiàng)啟動(dòng)
            fi

            #設(shè)定默認(rèn)啟動(dòng)前等待時(shí)間,默認(rèn)為10
            ### END /etc/grub.d/00_header ###

            ### BEGIN /etc/grub.d/05_debian_theme ###
            set menu_color_normal=white/black

            #設(shè)定菜單字體及背景顏色
            set menu_color_highlight=black/blue

            #設(shè)定選擇項(xiàng)字體及背景顏色

            #如果使用默認(rèn),背景將完全被藍(lán)色擋住了,需要修改blue為black,背景圖片才能顯示
            ### END /etc/grub.d/05_debian_theme ###


            ### BEGIN /etc/grub.d/10_linux ###

            #10_linux為系統(tǒng)自動(dòng)添加的當(dāng)前root分區(qū)linux引導(dǎo)項(xiàng)

            #每個(gè)菜單項(xiàng)要包括menuentry雙引號(hào)" "和大括號(hào){ }才完整,否則不顯示菜單
            menuentry "Ubuntu, Linux 2.6.31-10-generic" {
            set quiet=1
            insmod ext2
            set root=(hd0,8)
            search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b

            #這句與set root=(hd0,8)效果一樣,可刪除其一,二者不一致以這句為準(zhǔn)
            linux /boot/vmlinuz-2.6.31-10-generic root=UUID=2d61e5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash

            #不喜歡看到一長(zhǎng)串的, roo=UUID=***可用root=/dev/sda8(/分區(qū)的分區(qū)號(hào))代替
            initrd /boot/initrd.img-2.6.31-10-generic
            }


            ### END /etc/grub.d/10_linux ###


            #20_memtest86+為系統(tǒng)自動(dòng)添加的內(nèi)存測(cè)試菜單項(xiàng)
            ### BEGIN /etc/grub.d/20_memtest86+ ###
            menuentry "Memory test (memtest86+)" {
            linux16 /boot/memtest86+.bin
            }
            menuentry "Memory test (memtest86+, serial console 115200)" {
            linux16 /boot/memtest86+.bin console=ttyS0,115200n8
            }
            ### END /etc/grub.d/20_memtest86+ ###
            #30_os-prober
            或30_others為系統(tǒng)自動(dòng)查找并添加其他系統(tǒng)菜單項(xiàng),按windows,linux,macos順序

            #查找并添加,支持windows 7識(shí)別
            ### BEGIN /etc/grub.d/30_os-prober ###
            ### END /etc/grub.d/30_os-prober ###
            ### BEGIN /etc/grub.d/30_otheros ###
            # This entry automatically added by the Debian installer for a non-linux OS
            # on /dev/sda1
            menuentry "Microsoft Windows XP Professional" {
            set root=(hd0,1)
            search --no-floppy --fs-uuid --set e852-230b
            drivemap -s (hd0) $root

            #對(duì)以ntldr引導(dǎo)的系統(tǒng)如win2000,xp,win2003,因其引導(dǎo)機(jī)制只能從第一硬盤(pán)啟動(dòng),系統(tǒng)會(huì)自動(dòng)添加#映射命令,對(duì)vista和win7就沒(méi)有這句命令
            chainloader +1
            }
            ### END /etc/grub.d/30_otheros ###
            #40_custom
            為自定義的啟動(dòng)項(xiàng),如啟動(dòng)cdlinux
            ### BEGIN /etc/grub.d/40_custom ###

            menuentry "CDLinux"{

            set root=(hd0,8)

            linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8

            initrd /CDlinux/initrd

            }
            ### END /etc/grub.d/40_custom ###

            定制個(gè)性化的配置文件,可以加入背景圖片,使用中文字符,讓啟動(dòng)畫(huà)面獨(dú)具特色,而不是單調(diào)的黑、白、藍(lán)三色。下面是一張經(jīng)美化啟動(dòng)畫(huà)面:




            四、腳本修改

            該怎樣定制個(gè)性化的配置文件呢?

            系統(tǒng)安裝完成后,用戶就會(huì)發(fā)現(xiàn)/boot/grub/grub.cfg文件只有root權(quán)限可讀,如果要直接修改grub.cfg文件,要先修改其權(quán)限。好不容易把grub.cfg修改好了,系統(tǒng)內(nèi)核或grub升級(jí)時(shí),會(huì)自動(dòng)執(zhí)行update-grubgrub.cfg文件就會(huì)被打回原形,如何保證修改后的配置文件能一直保留下來(lái)呢?

            其實(shí)不用修改grub.cfg,只要把個(gè)性化配置寫(xiě)入/etc/default/目錄下的grub和/etc/gurb.d目錄下的腳本文件,以后不管升級(jí)內(nèi)核或者是升級(jí)grub所執(zhí)行的update-grub,都會(huì)按要求創(chuàng)建個(gè)性化的grub.cfg

            1、首先看下 /etc/default/grub,先從應(yīng)用程序-附件里打開(kāi)終端,輸入

                        sudo gedit /etc/default/grub

                              用戶密碼



            看看打開(kāi)的文件可作什么修改:


            # If you change this file, run 'update-grub' afterwards to update
            # /boot/grub/grub.cfg.

            GRUB_DEFAULT=0    -------->設(shè)置默認(rèn)啟動(dòng)項(xiàng),按menuentry順序。比如要默認(rèn)從第四個(gè)菜單項(xiàng)啟動(dòng),數(shù)字改為3,若改為 saved,則默認(rèn)為上次啟動(dòng)項(xiàng)。
            GRUB_HIDDEN_TIMEOUT=0         默認(rèn)為0,單系統(tǒng)時(shí)啟動(dòng)菜單自動(dòng)隱藏,要取消自動(dòng)隱藏菜單,改為大于0再sudo update-grub。
            GRUB_HIDDEN_TIMEOUT_QUIET=true
            GRUB_TIMEOUT="3"         ----------->設(shè)置進(jìn)入默認(rèn)啟動(dòng)項(xiàng)的等候時(shí)間,默認(rèn)值10秒,按自己需要修改
            GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
            GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"          ----------->添加內(nèi)核啟動(dòng)參數(shù),這個(gè)為默認(rèn)
            GRUB_CMDLINE_LINUX="noresume"               --------->手動(dòng)添加內(nèi)核啟動(dòng)參數(shù),比如 acpi=off noapic等可在這里添加,加 text 參數(shù)啟動(dòng)進(jìn)入字符模式

            # Uncomment to disable graphical terminal (grub-pc only)
            #GRUB_TERMINAL=console       ---------->設(shè)置是否使用圖形介面。去除前面#,僅使用控制臺(tái)終端,不使用圖形介面

            # The resolution used on graphical terminal
            # note that you can use only modes which your graphic card supports via VBE
            # you can see them in real GRUB with the command `vbeinfo'
            #GRUB_GFXMODE=640x480 設(shè)定圖形介面分辨率,如不使用默認(rèn),把前面#去掉,把分辨率改為800x600或1024x768

            # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
            #GRUB_DISABLE_LINUX_UUID=true       ---------->設(shè)置grub命令是否使用UUID,去掉#,使用root=/dev/sdax而不用root=UUDI=xxx

            # Uncomment to disable generation of recovery mode menu entrys
            #GRUB_DISABLE_LINUX_RECOVERY="true"      ----------->設(shè)定是否創(chuàng)建修復(fù)模式菜單項(xiàng)

            2、再看下/etc/grub.d目錄下的腳本文件:




            00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom這五個(gè)腳本對(duì)應(yīng)grub.cfg上的各個(gè)部分,有的版本的grub可能把30_os-prober分出另一部分為 30_os-others,這并不影響。怎樣修改這些腳本文件才能保證不會(huì)破壞update-grub的運(yùn)行,又能讓生成的grub.cfg合乎意愿呢? 其實(shí)很簡(jiǎn)單,只要在腳本文件中找到
                cat << EOF
                ********
                ********
                ********
                EOF
            這類語(yǔ)句,EOF中間的文本會(huì)直接寫(xiě)入grub.cfg中相應(yīng)位置,所以個(gè)性化的語(yǔ)句添加在這地方就可以了。

            其他使用變量的語(yǔ)句不要隨變做修改,除非你清楚修改后會(huì)有什么結(jié)果。


            1)看看00_header,一樣在終端中打開(kāi)sudo gedit /etc/grub.d/00_header,找到這部分


            cat << EOF
            load_env ->加載由save_env保存在grubenv的變量
            set default="${GRUB_DEFAULT}"        ---------->使用/etc/default/grub中的設(shè)定值
            if [ \${prev_saved_entry} ]; then
              saved_entry=\${prev_saved_entry}
              save_env saved_entry
              prev_saved_entry=           ------------>變里設(shè)置的變量由下句保存到grubenv
              save_env prev_saved_entry
            fi     -------->這里回車添加新行后可插入需要添加的模塊
            insmod jpeg       ------->添加背景圖片格式支持,如jpeg,png,tga等。
            insmod fat       -------->添加文件系統(tǒng)格式支持如fat,ntfs,也可在menuentry下添加
            EOF

            再看看最后這一段


            cat << EOF
            if [ \${recordfail} = 1 ]; then
              set timeout=-1    -------->設(shè)定為若有啟動(dòng)失敗記錄,不倒計(jì)時(shí),不會(huì)進(jìn)入默認(rèn)啟動(dòng),需手動(dòng)選擇才能啟動(dòng)選擇項(xiàng),若要設(shè)置為即使曾啟動(dòng)錯(cuò)誤也進(jìn)行默認(rèn)啟動(dòng),可把時(shí)間設(shè)為
                                                        合適的正值,如 set timeout=5
            else
              set timeout=${GRUB_TIMEOUT}      ------>使用/etc/default/grub中的設(shè)定值
            fi       -------->這行后添加行
            background_image (hd0,7)/boot/images/002.jpg       -------->添加背景圖片的絕對(duì)路徑,可以按05_debian_theme修改圖片路徑。
            EOF


            2)05_debian_theme修改字體及背景顏色、添加背景圖片

            先打開(kāi)文件 sudo gedit /etc/grub.d/05_debian_theme

            看這里

              cat << EOF
            set menu_color_normal=white/black       ------->設(shè)置菜單全局的字體和背景顏色
            set menu_color_highlight=black/white      ------->設(shè)置選擇項(xiàng)的字體和背景顏色。
            EOF

            可供使用菜單顏色有:
            black(當(dāng)背景色時(shí)為透明),blue,green,cyan,red,magenta,brown,light-gray,dark-gray,light-blue,light-green,
            light-cyan,light-red,light-magenta,yellow,white



            添加背景圖片,看這一段

                source /usr/lib/grub/grub-mkconfig_lib

                # this allows desktop-base to override our settings
                f=/usr/share/desktop-base/grub_background.sh
                if test -e ${f} ; then
                  source ${f}
                else
                  WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"
                  COLOR_NORMAL="black/black"
                  COLOR_HIGHLIGHT="magenta/black"
                fi
             
            這里會(huì)自動(dòng)搜索背景文件,把合適的背景圖片更名為 moreblue-orbit-grub.png(moreblue-orbit-grub.tga或moreblue-orbit-grub.jpeg),再放在/usr/share/images/desktop-base/目錄 下,然后執(zhí)行 sudo update-grub,會(huì)出現(xiàn)如下的
                Generating grub.cfg ...
                Found background image: moreblue-orbit-grub.png
                ......

            再重啟,漂亮的背景圖片就會(huì)出現(xiàn)了。


            3)10_linux這部分是自動(dòng)搜索當(dāng)前系統(tǒng),建立當(dāng)前系統(tǒng)的啟動(dòng)菜單,包括系統(tǒng)頭,內(nèi)核等信息,不要隨便修改,要使用個(gè)性菜單名,比如中文菜單,可適當(dāng)添加:

            先打開(kāi)文件 sudo gedit /etc/grub.d/10_linux,找到


                    cat << EOF
            menuentry "$1" {        -------->雙引號(hào)內(nèi)可添加個(gè)性化字符,$1變量也可改為定值,如改為menuentry "啟動(dòng) Ubuntu Karmic" {
                    recordfail=1
                    save_env recordfail       -------->如不要保存啟動(dòng)失敗記錄的,這兩句可刪除
            EOF

              if [ "x$3" = "xquiet" ]; then
                cat << EOF
                set quiet=1
            EOF ->啟動(dòng)畫(huà)面不用splash,要用跳動(dòng)字符的,這段可刪除


            個(gè)性化菜單項(xiàng)也可在這里修改,即上面的menuenrty "$1"不變,修改下面的數(shù)值:
              linux_entry "${OS}, Linux ${version}" \      ------->可改為 linux_entry "啟動(dòng) Ubuntu, Linux ${version}"\
                  "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
                  quiet
              if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
                linux_entry "${OS}, Linux ${version} (recovery mode)" \     --------->可改為 linux_entry "啟動(dòng) Ubuntu, Linux ${version} (修復(fù)模式)"\
                "single ${GRUB_CMDLINE_LINUX}"
              fi

            注意只修改引號(hào)內(nèi)的字符,前面的menuentry,linux_entry和后面的\不要做修改。


            4)20_memtest86+自動(dòng)添加內(nèi)存測(cè)試啟動(dòng)項(xiàng)

            打開(kāi)文件 sudo gedit /etc/grub.d/20_memtest86+,找到


              cat << EOF
            menuentry "Memory test (memtest86+)" {       -------->雙引號(hào)內(nèi)可添加個(gè)性字符如menuentry "啟動(dòng) 內(nèi)存測(cè)試"
                linux16    $MEMTESTPATH
            }
            menuentry "Memory test (memtest86+, serial console 115200)" {
                linux16    $MEMTESTPATH console=ttyS0,115200n8
            }
            EOF
            上面有兩內(nèi)存測(cè)試項(xiàng),可刪除其中一個(gè)。

            5)30_os-prober查找其他分區(qū)中存在的系統(tǒng)并建立菜單項(xiàng),依次為windows,linux,macos。

            對(duì)于單系統(tǒng),默認(rèn)會(huì)隱藏菜單,可在這里去掉隱藏

            先打開(kāi)文件 sudo gedit /etc/grub.d/30_os-prober

            單ubuntu系統(tǒng)會(huì)自動(dòng)隱藏菜單,要取消隱藏菜單,可把這部份的三個(gè)timeout=0改為和/etc/default/grub中的timeout一致,比如timeout=10。
                cat <<EOF
            if [ \${timeout} != -1 ]; then
              if keystatus; then
                if keystatus --shift; then
                  set timeout=-1
                else
                  set timeout=0
                fi
              else
                if sleep$verbose --interruptible 3 ; then
                  set timeout=0
                fi
              fi
            fi
            EOF
                  else
                cat << EOF
            if [ \${timeout} != -1 ]; then
              if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
                set timeout=0
              fi
            fi
            EOF

            下面這段自動(dòng)查找并添加windows、linux和macos啟動(dòng)項(xiàng),可在menuentry內(nèi)修改個(gè)性字符
            windows啟動(dòng)項(xiàng)
            for OS in ${OSPROBED} ; do
               ......
              if [ -z "${LONGNAME}" ] ; then
                LONGNAME="${LABEL}"
              fi
                ......
                  cat << EOF
            menuentry "${LONGNAME} (on ${DEVICE})" {       ------->比如改為menuentry "啟動(dòng) Windows XP" {
            EOF

            linux啟動(dòng)項(xiàng)
                linux)
                  LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
                ......
                    if [ -z "${LLABEL}" ] ; then
                      LLABEL="${LONGNAME}"
                    fi
                    cat << EOF
            menuentry "${LLABEL} (on ${DEVICE})" {       -------->比如改為menuentry "啟動(dòng) Mandriva" {
            EOF

            macos啟動(dòng)項(xiàng)
                macosx)
                  OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
                    cat << EOF
            menuentry "${LONGNAME} (on ${DEVICE})" {       -------->比如改為menuentry "啟動(dòng) MacOS" {
            EOF

            6)40_custom 自定義啟動(dòng)項(xiàng),按菜單標(biāo)準(zhǔn)格式在后面添加即可,如


            #!/bin/sh
            exec tail -n +3 $0
            # This file provides an easy way to add custom menu entries.  Simply type the
            # menu entries you want to add after this comment.  Be careful not to change
            # the 'exec tail' line above.

            menuentry "啟動(dòng) Veket" {
                set root=(hd0,8)
                linux /veket/vmlinuz root=/dev/ram0 PMEDIA=hd
                initrd /veket/initrd.gz
            }
            menuentry "啟動(dòng) CDLinux" {
                set root=(hd0,8)
                linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
                initrd /CDlinux/initrd
            }


            3、把各項(xiàng)腳本修改保存后,在終端執(zhí)行
            sudo update-grub
            再執(zhí)行

            sudo gedit /boot/grub/grub.cfg
            看看配置文件是不是和你想要的一樣了。
            如果有不夠滿意的地方,重新修改下腳本文件,再執(zhí)行sudo update-grub


            4、ubuntu和windows雙系統(tǒng),怎樣讓系統(tǒng)默認(rèn)為從windows啟動(dòng)

            在 /etc/grub.d目錄中的腳本文件的文件名都是以數(shù)字開(kāi)頭,這確定了在執(zhí)行update-grub時(shí)各文件內(nèi)容被執(zhí)行的順序,我們只要把 30_os-prober這個(gè)文件名的數(shù)字30改為05到10之間的數(shù)字即可(沒(méi)多少可選06、07、08、09),比如改為08_os-prober, 這樣創(chuàng)建出來(lái)的grub.cfg內(nèi)的菜單項(xiàng),windows的排序就會(huì)自動(dòng)在ubuntu之前。


            五、使用grub2常見(jiàn)錯(cuò)誤及修復(fù)方法

            1、雙系統(tǒng),重裝windows引起沒(méi)有ubuntu啟動(dòng)項(xiàng)

            使用安裝版的windows重裝windows時(shí)會(huì)改寫(xiě)mbr,造成grub丟失,可以用grub4dos引導(dǎo)進(jìn)入ubuntu后修復(fù)grub或用livecd啟動(dòng)后修復(fù)grub

            1)用grub4dos修復(fù)ubuntu

            先下載最新版的grub4dos,下載地址http://nufans.net/grub4dos/ ,如果是xp系統(tǒng),把grub4dos壓縮包內(nèi)的grldr復(fù)制到C盤(pán)根目錄下,修改boot.ini,在最后加上一行 c:\grldr="grub4dos"




            對(duì) 于vista/win7系統(tǒng),把壓縮包內(nèi)的grldr.mbr和grldr復(fù)制到C盤(pán)根目錄下,在C盤(pán)自己建立一個(gè)boot.ini文件,若有boot隱 藏分區(qū)的,先給boot分區(qū)分配盤(pán)符,再把grldr,grldr.mbr和boot.ini放在boot分區(qū)下,boot.ini內(nèi)容如下:

                 Win7使用軟改激活的請(qǐng)不要使用此方法,否則會(huì)造成win7不能啟動(dòng)。




            然后在根目錄新建一個(gè)menu.lst,內(nèi)容為

                    timeout 0
                    default 0

                    title grub2
                    find --set-root /boot/grub/core.img

                    kernel /boot/grub/core.img
                    boot

                    (有/boot分區(qū)的改為

                    find –set-root /grub/core.img

                    kernel /grub/core.img)

            重啟后選擇Grub4Dos會(huì)自動(dòng)轉(zhuǎn)入grub2,從grub2菜單項(xiàng)選擇ubuntu啟動(dòng)后,在終端執(zhí)行

                    sudo grub-install /dev/sda

            將grub裝入第一硬盤(pán)的mbr,如要裝入第二硬盤(pán)的mbr把sda改為sdb,第三硬盤(pán)為sdc,類推。

            至于要把grub裝到sdasdbsdcmbr上,需根據(jù)自己情況確定,看看要設(shè)置哪一塊硬盤(pán)為啟動(dòng)盤(pán),就把grub裝到那塊硬盤(pán)的mbr上。


            2)用livecd修復(fù)grub

            用ubuntu9.10的livecd啟動(dòng)后,打開(kāi)終端

            假如你的ubuntu的 / 分區(qū)是sda7,又假如 /boot分區(qū)是 sda6,用livecd啟動(dòng),在終端下輸入
                sudo -i
                mount /dev/sda7 /mnt
                mount /dev/sda6 /mnt/boot (如果沒(méi) /boot 單獨(dú)分區(qū)這步跳過(guò))
                grub-install --root-directory=/mnt  /dev/sda
              

                 和前面一樣,要裝入第二硬盤(pán)的把sda改為sdb。


            如果grub.cfg己丟失,或grub.cfg出現(xiàn)錯(cuò)誤,需要重建的繼續(xù)執(zhí)行下面操作:

                mount --bind /proc /mnt/proc
                mount --bind /dev /mnt/dev
                mount --bind /sys /mnt/sys
                chroot /mnt update-grub
                umount /mnt/sys
                umount /mnt/dev
                umount /mnt/proc

                exit


            3)用帶grub啟動(dòng)的光盤(pán)或U盤(pán)修復(fù)

            如果手上有g(shù)rub啟動(dòng)的工具盤(pán),用工具盤(pán)啟動(dòng),在grub菜單上按c進(jìn)入命令行狀態(tài),

            在grub>提示符下輸入

                grub>find /boot/grub/core.img (有/boot分區(qū)的用find /grub/core.img)

                (hdx,y) (顯示查找到的分區(qū)號(hào))

                grub>root (hdx,y)

                grub>kernel /boot/grub/core.img (/boot分區(qū)的用 kernel /grub/core.img)

                grub>boot

            執(zhí)行boot后能轉(zhuǎn)入grub2菜單,啟動(dòng)ubuntu后,再在ubuntu終端下執(zhí)行

                sudo grub-install /dev/sda (或sdb,sdc等)修復(fù)grub。

                如果ubuntu的啟動(dòng)分區(qū)使用ext4格式,要有支持ext4格式的grub才能修復(fù)。



            4)沒(méi)安裝引導(dǎo)器的 grub4dos引導(dǎo)ubuntu的方法

                按第一步的方法使用 boot.ini 建立grub4dos引導(dǎo)項(xiàng),自己編寫(xiě) menu.lst,內(nèi)容如下
               
            timeout 3
            default 0

            title Ubuntu 9.10
            root (hdx,y)  --------> (hd0x,y) 為 /boot分區(qū)的分區(qū)號(hào)
            kernel /vmlinuz-xxx-generic root=/dev/sdxy   ------->/dev/sdxy 為 / 分區(qū)的分區(qū)號(hào)

            initrd /initrd.img-xxx-generic


            沒(méi) /boot 分區(qū)的用

            timeout 3
            default 0

            title Ubuntu 9.10
            root (hdx,y)
            kernel /boot/vmlinuz-xxx-generic root=/dev/sdxy
            initrd /boot/initrd.img-xxx-generic


            2、安裝時(shí)grub沒(méi)裝在mbr上而選擇裝在linux分區(qū)的pbr上,怎么引導(dǎo)ubuntu

            1)按前面的方法一,以grub4dos引導(dǎo)轉(zhuǎn)入grub2。

            2)把ubuntu分區(qū)/boot/grub目錄下的boot.img提取出來(lái),放到C盤(pán)根目錄下,然后修改boot.ini,在最后添加一行 C:\boot.img="grub2"

            對(duì)vista/7可在C盤(pán)新建一個(gè)boot.ini,內(nèi)容為


                [boot loader]

                timeout=0

                default=c:\boot.img

                 [operating systems]

                c:\boot.img="grub2"

            重啟后選擇grub2就可進(jìn)入grub2菜單。

            此法兼容性較差,成功率低,僅供測(cè)試。


            3、由于分區(qū)調(diào)整引起分區(qū)號(hào)或分區(qū)UUID改變?cè)斐傻膅rub2不能正常啟動(dòng)

            己安裝好系統(tǒng),對(duì)硬盤(pán)再次進(jìn)行分區(qū)調(diào)整時(shí)可能會(huì)改變現(xiàn)有分區(qū)的分區(qū)號(hào)發(fā)生變化,或者某種原因改變啟動(dòng)分區(qū)的UUID,都會(huì)造成grub2不能正常啟動(dòng),而啟動(dòng)進(jìn)入修復(fù)模式(grub rescue),這時(shí)就要對(duì)grub進(jìn)行修復(fù)。

            1)用ubuntu9.10的livecd光盤(pán)啟動(dòng),進(jìn)入試用桌面系統(tǒng)后,再修復(fù)grub,操作方法如第一種情況的第二種方法—

            2)在rescue模式下啟動(dòng)并修復(fù)

            由于分區(qū)問(wèn)題,啟動(dòng)時(shí)會(huì)自動(dòng)進(jìn)入rescue模式,只要grub核心文件還在分區(qū)內(nèi),就能由rescue模式轉(zhuǎn)到normal模式,進(jìn)而通過(guò)命令進(jìn)入系統(tǒng)。下面這個(gè)就是rescue介面:

            由于在rescue模式下,只有少量的基本命令可用,必須通過(guò)一定的操作才能加載正常模塊,然后進(jìn)入正常模式。

            rescue模式下可使用的命令有:set,ls,insmod,root,prefix(設(shè)置啟動(dòng)路徑)

            先假設(shè)grub2的核心文件在(hd0,8)分區(qū),再來(lái)看看怎樣從rescue模式進(jìn)入從(hd0,8)啟動(dòng)的正常模式(normal)。

            在rescue模式下search命令不能用,對(duì)不清楚grub2文件處于哪個(gè)分區(qū)的,可以用ls命令查看,比如

                ls (hd0,8)/ 查看(hd0,8)分區(qū)根目錄,看看有沒(méi)有boot文件夾

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

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

            通過(guò)文件查看,可以確定grub2核心文件處于哪個(gè)分區(qū),接下來(lái)就可以進(jìn)行從rescue到normal的轉(zhuǎn)變動(dòng)作:


            先 ls 看看分區(qū),根據(jù)分區(qū)列表,猜下 / 分區(qū)的編號(hào)再 ls (hd0,x)/ 看分區(qū)目錄下文件確定找到 / 分區(qū),不對(duì)的話繼續(xù)找。找到 / 分區(qū)的 (hd0,x) 繼續(xù)
                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分區(qū)的,要先找出 /boot 分區(qū) (hd0,x),再找出 / 分區(qū)的 (hd0,y),同樣用 ls (hd0,x)/ 和 ls (hd0,y)/ 的方式確定分區(qū)
                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


            說(shuō)明:

            1)由于grub2版本的的不一致,有的可能在第9步insmod normal.mod加載正常模塊后直接進(jìn)入normal模式,即出現(xiàn)了normal grub>的提示符,這種情況就不能執(zhí)行第10步,即可以跳過(guò)normal命令的輸入。

            2)雖然輸入normal命令會(huì)出現(xiàn)菜單,但由于缺少加載內(nèi)核的Linux命令,直接從菜單不能進(jìn)入系統(tǒng),需要按c在命令行繼續(xù)操作。

            3)使用/boot單獨(dú)分區(qū)的,要正確修改路徑,如

                prefix=(hd0,8)/grub

                insmod /grub/normal.mod

            另外root=/dev/sda8也要修改根分區(qū)的分區(qū)號(hào)。

            4)按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


            4、雙硬盤(pán)雙系統(tǒng) Grub Loading時(shí)間過(guò)長(zhǎng)的解決方案


            grub2的boot.img設(shè)定root的uuid從第一分區(qū)開(kāi)始搜索分區(qū)的/boot/grub下的模塊并加載, 如果linux分區(qū)處于第二硬盤(pán)甚至第三硬盤(pán),會(huì)導(dǎo)致搜索時(shí)間過(guò)長(zhǎng)而,出現(xiàn)菜單時(shí)間會(huì)長(zhǎng)達(dá)10多秒。
            對(duì)雙(多)硬盤(pán)的情況建議把grub安裝在ubuntu所在硬盤(pán)的mbr上,/boot分區(qū)或 / 分區(qū) 盡量靠前,并設(shè)該硬盤(pán)為啟動(dòng)盤(pán),會(huì)大大縮短啟動(dòng)時(shí)間。

            5、重復(fù)一下,單linux系統(tǒng)或硬盤(pán)安裝時(shí)iso放在C盤(pán),umount /isodevice引起的誤認(rèn)為單系統(tǒng)不能出現(xiàn)菜單項(xiàng)的幾種處理方法。
            1. 開(kāi)機(jī)自檢后時(shí)按幾下shift鍵,可調(diào)出菜單項(xiàng)
            2. sudo update-grub
            重建grub.cfg,會(huì)發(fā)現(xiàn)新的系統(tǒng)而改寫(xiě)grub.cfg,一般能出現(xiàn)菜單項(xiàng)。
            3.如第二種方法不能解決,直接修改grub.cfg
            把在### BEGIN /etc/grub.d/30_os-prober 中的這一段
            if keystatus; then
            if keystatus --shift; then
            set timeout=-1
            else
            set timeout=0
            fi
            else
            if sleep$verbose --interruptible 3 ; then
            set timeout=0
            fi
            fi
            整段刪除或修改三處set timeout=<大于0>,再執(zhí)行
            sudo update-grub

            6、安裝 ubuntu 9.10 后出現(xiàn) Error : No such device: xxx-xxx-xxx,不能啟動(dòng)的修復(fù)辦法(未經(jīng)實(shí)機(jī)測(cè)試)

            由于grub2兼容性問(wèn)題,少部分電腦安裝完ubuntu9.10重啟時(shí)會(huì)出現(xiàn)

            Error:no such device:3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
            Failed to boot default entries.

            Press any key to continue.
            原因是電腦不支持 uuid的搜索, soier 的修復(fù)過(guò)程證實(shí)了這個(gè)問(wèn)題,見(jiàn) http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=238346
            原貼使用的是 live DVD進(jìn)入修復(fù)系統(tǒng)模式,的shell 下change root 修復(fù),livecd 沒(méi)有修復(fù)系統(tǒng)模式,現(xiàn)的根據(jù)他的方法寫(xiě)個(gè) livecd (能支持ext4讀寫(xiě)的其他版本的live Linux一可以)下的修復(fù)辦法,希望有這個(gè)問(wèn)題的朋友測(cè)試下看行不行(我電腦沒(méi)這個(gè)問(wèn)題,沒(méi)辦法測(cè)試  ):

            1)、livecd 啟動(dòng)進(jìn)入試用系統(tǒng)
            2)、掛載 / 分區(qū),比如 / 分區(qū)為 /dev/sda7
            sudo mount /dev/sda7 /mnt
            如果有 /boot 單獨(dú)分區(qū),則掛載 /boot 分區(qū)
            3)、修改 grub.cfg
            sudo chmod +w /mnt/boot/grub/grub.cfg
            sudo chmod +w /mnt/grub/grub.cfg (/boot 單獨(dú)分區(qū)的)
            sudo gedit /mnt/boot/grub/grub.cfg
            sudo gedit /mnt/grub/grub.cfg (/boot 單獨(dú)分區(qū)的)
            找到 grub.cfg 可所有的這句
            search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
            的前面加上 # 號(hào)注釋掉
            # search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
            這句的grub.cfg中有好幾處,后面的uuid不盡相同,要全部找到并注釋掉

            4)、重啟試試能否進(jìn)入系統(tǒng),可這進(jìn)系統(tǒng)再進(jìn)行下個(gè)步
            5)、sudo gedit /usr/lib/grub/grub-mkconfig_lib
            找到173-175行
            if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
            echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
            fi
            前面全部加#注釋掉,記住從 if 開(kāi)始到 fi結(jié)束,以防止語(yǔ)法錯(cuò)誤
            # if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
            # echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
            # fi
            然后
            sudo update-grub
            這樣重建出來(lái)的 grub.cfg 就沒(méi)有
            search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
            的語(yǔ)句


            7、如何從grub2回到grub (wubi使用者勿試)


            sudo apt-get purge grub-pc   ------>清除grub2
            sudo rm -fr /boot/grub/*
            sudo apt-get install grub  ------->安裝 grub
            sudo grub-install /dev/sda  -------->安裝grub到第一硬盤(pán)mbr,第二硬盤(pán)為/dev/sdb,若安裝到分區(qū)引導(dǎo)扇區(qū)則為分區(qū)號(hào)如 /dev/sda7等
            sudo update-grub -------->重建menu.lst

             
            8、重裝windows后出現(xiàn) error: no such device
            由于重裝windows時(shí)會(huì)改變windows引導(dǎo)分區(qū)的uuid,原來(lái)的配置文件grub.cfg中的 search --no-floppy --fs-uuid --set xxx-xxx 在搜索分區(qū)時(shí)會(huì)按原來(lái)的uuid查找分區(qū),找不到相應(yīng)的uuid,就出現(xiàn) error: no such device,在ubuntu下執(zhí)行
            sudo update-grub
            重建grub.cfg,就能解決。此方法也適用于用convert命令把fat改為ntfs格式時(shí)出現(xiàn)的error。

            參考論壇資料: http://bbs.znpc.net/forumdisplay.php?fid=57&page

            http://docs.google.com/Doc?docid=0AeVQ5PqmbeaoZGc0czgyOWtfMjRjbWo0ODVoYw&hl=en#%E4%BA%94%E3%80%81%E4%BD%BF%E7%94%A8grub2%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%8F%8A%E4%BF%AE%E5%A4%8D%E6%96%B9%E6%B3%95


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产69精品久久久久99尤物| 一本色综合网久久| 久久久久99精品成人片牛牛影视| 久久精品夜色噜噜亚洲A∨| 日韩十八禁一区二区久久| 欧美黑人激情性久久| 久久国产成人精品国产成人亚洲| 久久精品国产亚洲αv忘忧草| 久久精品这里热有精品| 久久亚洲sm情趣捆绑调教| 久久久久国产一区二区| 婷婷久久香蕉五月综合加勒比| 国产巨作麻豆欧美亚洲综合久久| 无码久久精品国产亚洲Av影片 | 日韩亚洲国产综合久久久| 精品久久久久香蕉网| 国内精品综合久久久40p| 久久久久亚洲精品无码网址| 久久精品午夜一区二区福利| 香蕉久久夜色精品国产尤物| 一级做a爱片久久毛片| 97精品伊人久久久大香线蕉| 污污内射久久一区二区欧美日韩 | 久久精品成人一区二区三区| 国产精品无码久久久久久| 国产精品久久久久免费a∨| 久久www免费人成看国产片| 日本精品久久久中文字幕| 久久精品欧美日韩精品| 亚洲色婷婷综合久久| 思思久久99热只有频精品66| 性做久久久久久久久老女人| 日日狠狠久久偷偷色综合0| 久久精品成人| 久久久久久极精品久久久| 久久99精品久久久久久野外| 国产精品VIDEOSSEX久久发布| 国产精品成人99久久久久| 精品久久综合1区2区3区激情 | 91久久精品91久久性色| 99久久婷婷国产一区二区|