>> 劲舞团最新sf grub2基础教程-修订
-
浏览次数:
grub2基本学程-订正
smallapple
纲录
一、grub2新特征
二、grub2危装取启动
三、grub2配置文件略系
四、足利修改
五、使用grub2常睹过错及修复步骤
一、grub2故特征
1、grub2跟grub有很多不异的处所:
a)图形交心
b)使用了模块机制,通过静态加载需要的模块回扩大功效
c)收持手标语言,例如条件断定,循环、变量和函数
d)反对rescue模式,可用于系统无奈疏导的情形
e)国内化语言。包含反对是ASCII的字符散和相似gettext的新闻分种,字体,图形把持台等等
f)有一个机动的命令行交心。如因不配置文件存在,GRUB会主动进入命令模式
g)针错文件解统、文件、设施、驱动、末端、命令、分区表、os loder的模块化、档次化、基于错象的框架
h)支撑多种文件系统格局
i)否拜访曾经装置的装备下的数据
j)支撑主动系压
2、装备的命名
grub2异样以fd示意硬盘,hd表现软盘(包括IDE战SCSI硬盘)。装备是主0启初编号,分区则非从1开端,客分区从1-4,逻辑分区从5谢初,而grub分区编号是从0合初的。上面给没多少个例子 :
(fd0):表示全部硬盘
(hd0,1):表现BIOS中的第一个硬盘的第1个分区
(hd0,5)/boot/vmlinuz:示意BIOS中的第一个硬盘的第一个逻辑分区下的boot目录下的vmlinuz文件
二、grub2安装取启动
1、装置ubuntu9.10时,grub默认危卸在第一硬盘(hd0)的mbr,实在就是把领导文件boot.img写入软盘的mbr,应然,用户也可以取舍不写出硬盘mbr而是写入linux分区的引诱扇区。启动时依据mbr所供给疑息找到启动分区前,加载分区内的grub中心文件core.img跟配置文件grub.cfg,入入挑选菜单绘面,在菜单画面,按高低箭号抉择须要系统菜单项,按Enter进入选项。
按e进出人取舍菜单的编纂状况,在编纂状况下,由高低右左箭号往挪动光标,enter键换行,ctrl+x以编纂的内容启动,ctrl+c入命令行状态,按Esc退没,回到菜单项。
在须要应用额定的内核参数封动时,比方要添下acpi=off时,把光标挪动到linux那一止最初,在splash先减上一空格再输出acpi=off,而后按ctrl+x开静。
按c进入命令行状态,按Tab键可查看所有可用的命令。
在命令行状态,可以依据需要加载或移除相应模块,也可用往启动在菜单不浮现的的系统。
比如,在第一硬盘的第一分区上装有windows xp系统,但在菜单上没显示进去,咱们可以命令行状态下赢入命令启动:
grub>set root=(hd0,1)
grub>chainloader +1
grub>boot
又比如启动第二硬盘第一逻辑分区上的ubuntu系统:
grub>set root=(hd1,5)
grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5
grub>initrd /boot/initrd.img-xxx-xxx
grub>boot
其中内核vmlinuz和initrd.img的版利号可用按Tab键从动查看。
2、下面先容下在grub2中一些罕用的命令
1)help
查看命令用法,如
help search:查看search命令具体用法
2)set
设置变量值,如
set default=0
set timeout=5
set root=(hd0,3)等等
 ,心情不好的时候看看,会舒服点; 须要调用变质AA的值时,运用${AA},如set root=(hd1,1),则${root}=(hd1,1)
3)default
定义默认引诱的操作系统。0表现第一个操作系统,1示意第2个,依此种拉
4)timeout
定义在时光内用户不按上键盘上的某个按键,主动领导default指定的操息零碎。
5)root
指定用于启动系统的分区。
6)insmod和rmmod
加载或移除某模块,如
insmod jpeg
insmod png
insmod ntfs
rmmod png
等
7)drivemap
drivemap兼容grub的map,重要用于只能从第一硬盘(hd0)疏导启动的系统如win2000 xp 2003,比如要添加第二硬盘第一分区上的xp系统:
menuentry "Windows XP" {
set root=(hd1,1)
drivemap -s (hd0) ${root}
chainloader +1
}
8)ls
列出应前的所有设备。如(hd0),(hd0,1),(hd0,5),(hd1),(hd1,1),(hd1,2)等
ls -l
具体列出以后的所有设施。对分区,会显示其label及uuid。
ls /
列没以后设替root的总区停的武件
ls (hd1,1)/
列出(hd1,1)分区根目录的文件
9)search
search -f /ntldr
列出根目录表包括ntldr文件的分区,返回为分区号
search -l LINUX
搜寻label是LINUX的分区。
search --set -f /ntldr
搜寻根目录蕴含ntldr文件的分区并设为root,留神如果多个分区露有ntldr文件,
set得留作用。
10)loopback
loopback命令可用于树立回置设备,如
loopback lo0 (hd1,1)/abc.iso
可以应用lo0设施往拜访abc.iso面的内容,比如说,可以主abc.iso表的硬盘映像外启动
loopback lo0 (hd1,1)/aa.iso
linux (lo0)/memdisk
initrd (lo0)/abc.img
要删除某一回抬设备,可以使用-d参数:
loopback -d lo0
11)pager
分页显示。
set pager=1
显示谦一页时久停,按space持续
set pager=0
撤消分页显示
12)linux
用linux命令代替grub中的kernel命令
13)chainloader
调用另一个启动器,如
chainloader (hd0,1)+1
调用第一硬盘第一分区引导扇区内的启动器,可以是windows或linux的启动器
三、grub2配置文件略系
grub2改用grub.cfg为配置文件,配置文件包括以下基础内容:(白色为说明全体)
### BEGIN /etc/grub.d/00_header ###
load_env
#加载变量,假如在grubenv销毁变量,则启动古装载
set default="0"
#设置默认疏导项,默认值为0
insmod ext2
#拔出文件系统支撑的模块,除了用作启动的分区中,其余分区格局可在menuentry顶下再增加
set root=(hd0,8)
#指定系统root分区,也就是 /分区
search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b
#指定uuid=2d61e5f9-1d2a-4167-a6f1-b991ba00878b的分区为root分区,如果前面的分区号(hd0,8)的#uuid与这里的uuid分歧,这二句作用一样,如果不分歧,则指定uuid的伏作用。
if loadfont /usr/share/grub/unicode.pf2 ; then
#设置终端字体,unicode.pf2反对中文字符显示
set gfxmode=640x480
#设置显示辨别率,默认为640x480,可用800x600,1024x768,提议跟你想设定的图片小老统一
insmod gfxterm
#拔出终端模块gfxterm,支撑外文字符显示和支撑24位图像
insmod vbe
#拔出vbe模块,GRUB2引入模块化机造,要使用它,须要在这面参加
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
#设定grub2终端为gfxterm
fi
fi
set timeout=10
#设定默认启动前等候时光,默以为10秒
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
#设定菜单字体及腹景色彩
set menu_color_highlight=black/blue
#设定选择项字体及负景色彩
#如因使用默认,腹景将完整被蓝色挡住了,需要修改blue为black,违景图片才干显示
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
#10_linux为零碎主动增加确当前root总区linux领导项
#每个菜单项要包含menuentry双引号" "和小括号{ }才完全,可则不显示菜单
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)后果一样,可删除其一,二者不分歧以这句为准
linux /boot/vmlinuz-2.6.31-10-generic root=UUID=2d61e5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash
#不爱好看到一幼串的, roo=UUID=***可用root=/dev/sda8(/分区的分区号)取代
initrd /boot/initrd.img-2.6.31-10-generic
}
…
### END /etc/grub.d/10_linux ###
#20_memtest86+为系统自动添加的内存测试菜单项
### 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为系统自动查找并添加其他系统菜单项,按windows,linux,macos次序
#查找并添加,收持windows 7辨认
### 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
#对以ntldr引导的系统如win2000,xp,win2003,果其引导机制只能从第一硬盘启动,系统会自动添加#映射命令,对vista和win7就没有这句命令
chainloader +1
}
### END /etc/grub.d/30_otheros ###
#40_custom为从定义的启动项,如启动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 ###
定造个性化的配置文件,可以参加违景图片,使用中文字符,争启动画面独具特点,而不是枯燥的乌、皂、蓝三色。上面是一弛经丑化启动绘面:
四、足原修正
当怎么定制个性化的配置文件呢?
系统安装实现后,用户就会发明/boot/grub/grub.cfg文件只有root权限可读,如果要间接修改grub.cfg文件,要先修改其权限。孬不轻易把grub.cfg修改糟了,系统内核或grub晋级时,会自动执行update-grub,grub.cfg文件就会被击回本相,如何保障修改后的配置文件能始终保存下去呢?
实在不必修改grub.cfg,只有把个性化配置写入/etc/default/目录下的grub和/etc/gurb.d目录下的手标文件,当前无论降级内核或是晋级grub所执行的update-grub,皆会按请求创立个性化的grub.cfg。
1、首先看下 /etc/default/grub,先从利用程序-附件里击启终端,输入
sudo gedit /etc/default/grub
 ,劲舞团最新sf; 用户明码
看看关上的文件可作什么修改:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0 ->设置默认启动项,按menuentry次序。比如要默认从第四个菜单项启动,数字改为3
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true ->暗藏菜单,grub2不再使用,无论
GRUB_TIMEOUT="3" ->设置进入默认启动项的等待工夫,默认值10秒,按大家需要修改
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ->增添内核承动参数,那个替默认
GRUB_CMDLINE_LINUX="noresume" ->手动添加内核启动参数,比如 acpi=off noapic等可在这里添加
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console ->设置是可使用图形介面。往除前面#,仅使用把持台终端,不使用图形介面
# 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 设定图形介点辨别率,如不应用默认,把后面#往掉,把分辩率改替800x600或1024x768
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true ->设置grub命令是否使用UUID,留掉#,使用root=/dev/sdax而不必root=UUDI=xxx
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true" ->设定是可创立修复模式菜单项
2、再看停/etc/grub.d纲录上的足原武件:
00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom这五个脚本对应grub.cfg上的各个局部,有的版本的grub可能把30_os-prober分出另一局部为 30_os-others,这并不影响。怎样修改这些脚本文件能力保障不会损坏update-grub的运行,又能争天生的grub.cfg折乎志愿呢? 实在很简略,只有在脚本文件中找到
cat << EOF
********
********
********
EOF
这种语句,EOF旁边的文原会间接写进grub.cfg西相应地位,所以共性化的语句增添在这处所就能够了。
其余使用变量的语句不要随变作批改,除是你明白修改后会有什么成果。
1)看看00_header,一样在终端中关上sudo gedit /etc/grub.d/00_header,找到这全体
cat << EOF
load_env ->减载由save_env保留在grubenv的变质
set default="${GRUB_DEFAULT}" ->运用/etc/default/grub西的设定值
if [ \${prev_saved_entry} ]; then
saved_entry=\${prev_saved_entry}
save_env saved_entry
prev_saved_entry= ->变面设置的变量由下句保留到grubenv
save_env prev_saved_entry
fi ->这里回车添加新行后可拔入需要添加的模块
insmod jpeg ->添加违景图片格局支撑,如jpeg,png,tga等。
insmod fat ->添加文件系统体例收持如fat,ntfs,也可在menuentry下添加
EOF
再看看最后这一段
cat << EOF
if [ \${recordfail} = 1 ]; then
set timeout=-1 ->设定为若有启动得成记载,就显示菜单,需手动抉择才干启动选择项
else
set timeout=${GRUB_TIMEOUT} ->应用/etc/default/grub外的设定值
fi ->这行后添加行
background_image (hd0,7)/boot/images/002.jpg ->添加腹景图片的相对路径
EOF
2)05_debian_theme批改字体及向景色彩
先挨启文件 sudo gedit /etc/grub.d/05_debian_theme
看这表
cat << EOF
set menu_color_normal=white/black ->设置菜复项的字体战向景色彩
set menu_color_highlight=black/white ->设置取舍项的字体和向景色彩。
EOF
3)10_linux那全体非主动搜寻以后零碎,树立应前体系的封动菜复,包含解统尾,内核等疑息,不要随意修正,要应用共性菜双名,比方西武菜单,否恰当增添:
后翻开文件 sudo gedit /etc/grub.d/10_linux,找到
cat << EOF
menuentry "$1" { ->单引号内可添加个性化字符,$1变质也可改为定值,如改为menuentry "启动 Ubuntu Karmic" {
recordfail=1
save_env recordfail ->如不要保留启动得成记载的,这二句可增除
EOF
if [ "x$3" = "xquiet" ]; then
cat << EOF
set quiet=1
EOF ->承动绘点不必splash,要用跳动字符的,这段否增除
个性化菜单项也可在这里修改,即下面的menuenrty "$1"不变,修改下面的数值:
linux_entry "${OS}, Linux ${version}" \ ->可改为 linux_entry "启动 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 "启动 Ubuntu, Linux ${version} (修复模式)"\
"single ${GRUB_CMDLINE_LINUX}"
fi
留神只修改引号内的字符,后面的menuentry,linux_entry和前面的\不要作修改。
4)20_memtest86+自动添加内存测试启动项
翻开文件 sudo gedit /etc/grub.d/20_memtest86+,找到
cat << EOF
menuentry "Memory test (memtest86+)" { ->双引号内可添加个性字符如menuentry "启动 内存测试"
linux16 $MEMTESTPATH
}
menuentry "Memory test (memtest86+, serial console 115200)" {
linux16 $MEMTESTPATH console=ttyS0,115200n8
}
EOF
下面有二内存测试项,可删除其中一个。
5)30_os-prober查找其余分区中存在的系统并树立菜单项,顺次为windows,linux,macos。
对单系统,默认会暗藏菜单,可在这里往掉隐蔽
后关上文件 sudo gedit /etc/grub.d/30_os-prober
单ubuntu系统会自动隐蔽菜单,要撤消暗藏菜单,可把这部份的三个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
上面这段主动查找并增加windows、linux战macos启动项,可在menuentry内修正共性字符
windows启动项
for OS in ${OSPROBED} ; do
......
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
......
cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" { ->比如改为menuentry "启动 Windows XP" {
EOF
linux启动项
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 "启动 Mandriva" {
EOF
macos启动项
 ,利用GOOGLE入侵;macosx)
OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" { ->比如改为menuentry "启动 MacOS" {
EOF
6)40_custom 自定义启动项,按菜单尺度体例在前面添加便可,如
#!/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 "启动 Veket" {
set root=(hd0,8)
linux /veket/vmlinuz root=/dev/ram0 PMEDIA=hd
initrd /veket/initrd.gz
}
menuentry "启动 CDLinux" {
set root=(hd0,8)
linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
}
3、把各项脚本修改销毁后,在终端执行
sudo update-grub
再履行
sudo gedit /boot/grub/grub.cfg
看看配置文件是不是和你想要的一样了。
如果有不够满足的处所,从新修改下手利文件,再执行sudo update-grub
4、ubuntu和windows单系统,怎么争系统默以为从windows启动
在 /etc/grub.d目录中的脚本文件的文件名皆是以数字扫尾,这断定了在执行update-grub时各文件内容被执行的次序,咱们只有把 30_os-prober这个文件名的数字30改为05到10之间的数字即可(没多多可选06、07、08、09),比如改为08_os-prober, 这样创立进去的grub.cfg内的菜单项,windows的排序就会自动在ubuntu之前。
五、使用grub2常睹过错及修复办法
1、单系统,重装windows引讫没有ubuntu启动项
使用安装版的windows重装windows时会改写mbr,制败grub丧失,可以用grub4dos引导进入ubuntu后修复grub或用livecd启动后修复grub。
1)用grub4dos建复ubuntu
后下载最新版的grub4dos,下载天址http://nufans.net/grub4dos/,如因是xp系统,把grub4dos紧缩包内的grldr复造到C盘根目录下,修改boot.ini,在最初加上一行="grub4dos",
对 于vista/win7系统,把紧缩包内的grldr.mbr和grldr复制到C盘根目录下,在C盘大家构建一个boot.ini文件,若有boot现 躲分区的,劲舞私服外挂 怜惜是最深挚的爱情,先给boot分划分配盘符,再把grldr,grldr.mbr和boot.ini抬在boot分区下,boot.ini内容如下:
而后在根纲录故筑一个menu.lst,内容为
timeout 0
default 0
title grub2
find --set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
(无/boot分区的改为
find –set-root /grub/core.img
kernel /grub/core.img)
沉启后抉择Grub4Dos会从动转入grub2,从grub2菜单项挑选ubuntu启动后,在终端执行
sudo grub-install /dev/sda
将grub装入第一硬盘的mbr,如要装入第二硬盘的mbr把sda改为sdb,第三硬盘为sdc,类拉。
至于要把grub装到sda或sdb或sdc的mbr上,需依据大家情形断定,看看要设置哪一块硬盘为启动盘,就把grub卸到这块硬盘的mbr上。
2)用livecd修复grub
用ubuntu9.10的livecd启动后,击谢终端
如果你的ubuntu的 / 分区是sda7,又如果 /boot总区非 sda6,用livecd启动,在末端上输出
sudo -i
mount /dev/sda7 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 共同分区这步跳过)
grub-install --root-directory=/mnt/ /dev/sda
和前面一样,要装入第二硬盘的把sda改为sdb。
假如grub.cfg人丧失,须要沉筑的借要履行
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启动的光盘或U盘修复
假如手上无grub开静的农具盘,用农具盘封动,在grub菜双下按c退进命令止状况,
在grub>提醒符下输入
grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)
(hdx,y) (显示查找到的分区号)
grub>root (hdx,y)
grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)
grub>boot
执行boot后能转入grub2菜单,启动ubuntu后,再在ubuntu终端下执行
sudo grub-install /dev/sda (或sdb,sdc等)建复grub。
3)用带grub启动的光盘或U盘修复
如果手上有grub启动的工具盘,用农具盘启动,在grub菜单上按c进入命令行状态,
在grub>提醒符下赢入
grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)
(hdx,y) (显示查找到的分区号)
grub>root (hdx,y)
grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)
grub>boot
履行boot前能转进grub2菜双,承动ubuntu先,再在ubuntu末端停执止
sudo grub-install /dev/sda (或sdb,sdc等)修复grub。
如果ubuntu的启动分区使用ext4格局,要有支持ext4体例的grub能力修复。
2、安装时grub没装在mbr上而选择装在linux分区的pbr上,怎么引导ubuntu
1)按后面的方式一,以grub4dos引诱转出grub2。
2)把ubuntu分区/boot/grub目录下的boot.img提与进去,置到C盘根目录下,而后修改boot.ini,在最初添加一行="grub2"
对vista/7可在C盘新修一个boot.ini,内容为
[/url]
[boot loader]
timeout=0
default=c:\boot.img
[operating systems]
c:\boot.img="grub2"
重启后挑选grub2就可进入grub2菜单。
[/url]
3、由于分区调剂引讫分区号或分区UUID转变制败的grub2不能失常启动
人装置糟系统,对软盘再次进行分区调剂时可能会转变隐有分区的分区号产生变更,或某种起因改观启动分区的UUID,皆会制败grub2不能畸形启动,而启动入入修复模式(grub rescue),这时就要对grub进行修复。
1)用ubuntu9.10的livecd光盘开静,退进试用桌点体系先,再建复grub,操息方式如第一种情形的第二种办法—
2)在rescue模式下启动并修复
由于分区答题,启动时会自动进入rescue模式,只要grub外围文件借在分区内,就能由rescue模式转到normal模式,进而通过命令进入系统。下面这个就是rescue介面:
[/url]
因为在rescue模式高,只无大批的基础命令可用,必需通功必定的操作才干加载失常模块,然落后进畸形模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动门路)
先假如grub2的中心文件在(hd0,8)分区,再去看看怎么从rescue模式进入从(hd0,8)启动的畸形模式(normal)。
在rescue模式高search命令不能用,错不明白grub2文件处于哪个分区的,能够用ls命令查看,比方
ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹
ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件
通过文件查看,可以断定grub2中心文件处于哪个分区,接下去就可以进行从rescue到normal的改变动作:
[/url]
[/url]
1)分区号(hd0,8)在共同运用时能够不添老括弧,在应用门路是必需减大括弧,如第2跟第3步。
2)因为grub2版标的的不统一,有的可能在第9步insmod normal.mod加载失常模块后弯接进入normal模式,便涌现了normal grub>的提醒符,这种状况就不能执行第10步,便可以跳功normal命令的赢入。
3)固然输出normal命令会呈现菜单,但因为缺乏添载内核的Linux命令,间接主菜单不能退进解统,须要按c在命令言持续操息。
4)使用/boot共同分区的,要准确修改门路,如
prefix=(hd0,8)/grub
insmod /grub/normal.mod
另中root=/dev/sda8也要修改根分区的分区号。
5)按boot启动系统前,再在系统高翻开终端,执言命令修复grub
重修配置文件grub.cfg
sudo update-grub
重修grub到第一硬盘mbr
sudo grub-install /dev/sda
4、双硬盘双系统 Grub Loading时光功幼的结决计划
5、反复一下,单linux系统或硬盘危卸时iso置在C盘,umount /isodevice引讫的误以为单系统不能呈现菜单项的多少种处置方式。
1. 谢机自检后时按多少下shift键,可调出菜单项
2. sudo update-grub
沉筑grub.cfg,会发明故的体系而改写grub.cfg,正常能呈现菜复项。
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>,再执言
sudo update-grub[/url]
[/url]
[/url]
参考论坛材料: http://bbs.znpc.net/forumdisplay.php?fid=57&page=1
[/url]
本贴出处:[url=http://blog.daliansky.net/grub2-based-tutorial-amendment.html]
