You are on page 1of 14

Grub 2

T Ubuntu-VN
Bn dch ny li thi, trong khi ch bn dch mi hn, cc bn c th tham kho ti liu gc y: Grub2 (https://help.ubuntu.com/community/Grub2)

GRand Unified Bootloader, version 2 (Grub 2) l phin bn th hai ca GNU GRUB. N l chng trnh chu trch nhim qu trnh np v giao quyn iu khin cho nhn h iu hnh trong lc khi ng. Grub 2 tng thch vi chun POSIX (v d nh GNU/Linux, *BSD, Mac OS,...) v cng c th kt ni n nhng h thng khng tng thch vi POSIX (Portable Operating System Interface for Unix). GRUB 2 c vit li mi hon ton v mt giao din. Da trn nghin cu ca d n PUPA, GRUB 2 h tr tnh m-un v c ng nhiu hn ngi tin nhim ca n. Sau y l mt vi ci tin d kin ca GRUB 2: h tr giao din ha, k c theo ch ; m-un ha qu trnh np (modular loading); tng thch a nn tng (h iu hnh); h tr nhng m (scripting support); ty bin cc mc khi ng; kim tra tn phn vng.

Mc lc
1 Th nghim GRUB 2 2 Ci t / Nng cp 2.1 Ci t (Ubuntu 9.10) 2.2 Ci t (Ubuntu 9.04+) 3 H thng th mc v tp tin ca Grub 2 3.1 grub.cfg (/boot/grub/grub.cfg) 3.2 grub (/etc/default/grub) 3.3 /etc/grub.d/ (th mc) 4 Thm mc la chn vo Grub 2 4.1 T ng thit lp 4.2 Ngi dng t thit lp 4.3 G b mc la chn trong Grub 2 5 Ch 5.1 Hnh Splash 5.2 nh v mu nn 5.2.1 Sao chp v chnh sa mu mc nh

5.2.2 To mt tp tin ch mi 6 Cu lnh 7 Phc hi Grub 2 bng a LiveCD 8 Li 8.1 Bng la chn khi ng Grub 2 bin i u ri!?!?! 8.2 Khi ng kp 9 Lin kt

Th nghim GRUB 2
Grub 2 hin ang phin bn 1.97 v vy ngi dng vn cn thi gian ng gp cho s pht trin ca n. Hy theo link ny v vui lng h tr chng ti. GRUB 2 Testing (https://wiki.ubuntu.com/KernelTeam/Grub2Testing) .

Ci t / Nng cp
Ci t (Ubuntu 9.10)
GRUB 2 s c ci mc nh trn phin bn Karmic. Nu bn mun nng cp t Jaunty 9.04 ln Karmic 9.10 bn c th theo cc bc hng dn di y:

Ci t (Ubuntu 9.04+)
Nu bn c bt k vn no lin quan n vic nng cp Grub hin hu (Grub Legacy) ln Grub 2 t Jaunty cho n Karmic, hy tra cu trong mc bo co li: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/386789 M mt ca s dng lnh (Terminal) v nhp
$ sudo apt-get install grub2

Chn OK t grub-pc configuration Chn Chainload from menu.lst YES Ti du nhc lnh, n ENTER NOTE: Ci ny ch l tm thi, bn phi c nh n li bng cch... Nhp vo mt terminal
$ sudo upgrade-from-grub-legacy

Sau GRUB 2 s cho bit a ch m n khi ng. Trn h thng th nghim ca chng ti, n hin th (hd0) /dev/sda nhng c th khc trn my ca bn. Nu cha chnh xc, bn phi chnh sa file /boot/grub/device.map khp vi h thng ca bn v th l chy:

$ sudo grub-install

GRUB 2 s c ci y , cn GRUB hin hu th b g ra v cu hnh ca n s c sao lu li. Cu hnh ca GRUB c c lu ti /boot/grub v c tn l menu.lst* Bn c th xc nh li phin bn m bn va ci bng cch nhp:
grub-install -v

H thng th mc v tp tin ca Grub 2


Trong khi ton b cc file ca n vn cn nm trong th mc /boot/grub, th khng cn c khi nim menu.lst . Tp tin iu khin Grub by gi l grub.cfg. N c to ra bi nhiu kch bn (scripts) c chy khi lnh "update-grub" c thc thi (lu phi chy di quyn root: "sudo update-grub"). Nhng files ng vai tr chnh v ni dung ca grub.cfg /etc/default/grub v nhng file kch bn ring l c t ti /etc/grub.d/ Nhiu tp tin trong /boot/grub s rt xa l vi ngi dng quen vi Grub trc. c bit ng ch l c v s cc file *.mod trong th mc /boot/grub. Grub 2 c tnh m-un v nhng d liu trong *.mod c np ln khi cn thit bi grub. Mc d c s b sung ca nhng tp tin ny, tng kch thc ca th mc /boot/grub gn nh khng i so vi Grub Legacy v khng i hi nhiu khng gian cho phn vng /boot.

grub.cfg (/boot/grub/grub.cfg)
KHNG CHNH SA TP TIN NY y l tp tin chnh ca Grub 2. N l "vt tch" ca /boot/grub/menu.lst trong Grub Legacy. N cha cc lnh ch th cc mc cho Grub. Nhng khng ging nh file menu.lst trong Grub Legacy, grub.cfg vn sinh ra KHNG NGI DNG CHNH SA!!! grub.cfg c to ra mt cch t ng hot t cp nht khi v ch khi lnh "update-grub" c thi hnh. Lnh ny phi c chy di quyn ca "ngi qun tr" ("root"). Cc kch bn c dng khi to grub.cfg bao gm cc tp tin cha trong th mc /etc/grub.d v thng tin c thu thp t /etc/default/grub Tp tin ny c chia thnh tng khu vc. Mi phn khu c m t v c th nhn bit bng dng ### BEGIN. Thng tin trong dng ny cp n nhng tp tin trong th mc /etc/grub.d vn dng lin kt thng tin vo trong grub.cfg Mc nh, v mi khi lnh "update-grub" c thc thi, tp tin ny c "nim ch" ch c m thi. iu ny gi cho ni dung ca tp tin s khng b thay i mt cch "th cng". Nu bn mun chnh sa file ny, hng dn nm cui bi. y l ni dung mu ca grub.cfg, bao gm hai li (kernel) Ubuntu, memtest86+, Windows v mt mc ty chnh (41_srcd), c nhp t cc kch bn /etc/grub.d/ :
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/update-grub using templates # from /etc/grub.d and settings from /etc/default/grub

# from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### set default=0 set timeout=5 set root=(hd0,5) search --fs-uuid --set b02e1934-12dd-418a if font /usr/share/grub/ascii.pff ; then set gfxmode=640x480 insmod gfxterm insmod vbe terminal gfxterm fi ### END /etc/grub.d/00_header ### ### set set ### BEGIN /etc/grub.d/05_debian_theme ### menu_color_normal=cyan/blue menu_color_highlight=white/blue END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ### ### END /etc/grub.d/10_hurd ### ### BEGIN /etc/grub.d/10_linux ### set root=(hd0,5) search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea menuentry "Ubuntu, linux 2.6.28-13-generic" { linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a initrd /boot/initrd.img-2.6.28-13-generic } menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" { linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a initrd /boot/initrd.img-2.6.28-13-generic } menuentry "Ubuntu, linux 2.6.28-11-generic" { linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a initrd /boot/initrd.img-2.6.28-11-generic } menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" { linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a initrd /boot/initrd.img-2.6.28-11-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { linux /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { linux /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" { set root=(hd0,1) chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # This file is an example on how to add custom entries ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_srcd ###

ro

quiet splash vga800

ro single

ro

quiet splash vga800

ro single

### BEGIN /etc/grub.d/41_srcd ### menuentry "SystemRescue CD on hard drive" { set root=(hd0,10) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } ### END /etc/grub.d/41_srcd ###

grub (/etc/default/grub)
Tp tin ny cha ng d liu nm phn trn trong tp tin /boot/grub/menu.lst vn thuc v grub trc y. N lu li nhng thit t chnh yu nh hng n vic hin th cc mc ca Grub. Tp tin ny c th c chnh sa bi root thay i cc thit t ny; chng s c a vo grub.cfg khi chy lnh "update-grub".
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # 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 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"

This file contains information formerly contained in the upper section of Grub Legacy's ''menu.lst'' and The items in this file can be edited by a user with administrator (root) privileges. Grub developers have have placed explanatory comments within the file itself.

GRUB_DEFAULT=0 Thit t la chn khi ng mc nh. Gi tr c th l con s hoc t "saved" GRUB_DEFAULT=0 Thit t mc nh theo v tr trong mc. Ging vi Grub Legacy, dng mc u tin trong grub.cfg l 0, th hai l 1, ... GRUB_DEFAULT=saved Thit t mc nh theo la chn ln khi ng trc. Nu bng la chn c hin th trong lc khi ng th la chn trc s c lm ni bt. Nu khng tc ng g n bn phm hoc bng la chn khng xut hin th la chn s c khi ng khi ht thi gian ch.

GRUB_DEFAULT="xxxx" Vi xxxx l tn chnh xc ca mc la chn (ch phi c thm 2 du ngoc kp). Trong trng hp ny th khng cn phi quan tm n th t ca mc la chn. bit tn ca mc cn chn, chy lnh ny trong terminal:
grep menuentry /boot/grub/grub.cfg

GRUB_TIMEOUT=5 Khng c g thay i t phin bn trc. y l thi gian m ngc (tnh bng giy) hin th bng la chn trc khi la chn mc nh c khi ng. Thit t gi tr l -1 s hin th bng la chn cho n khi ngi dng a ra quyt nh (khng c thi gian ch). GRUB_HIDDEN_TIMEOUT=0 Bng la chn s b n i nu khng c du "#" t u dng ny. ( # GRUB_HIDDEN_TIMEOUT=0 ) Thit t mc nh ban u ph thuc vo s hin din ca h iu hnh khc. Nu pht hin c h iu hnh khc: bng la chn s xut hin (dng ny s chm du "#") Nu khng pht hin h iu hnh khc: bng s b n i. Nu t mt s nguyn ln hn 0, khi khi ng my s xut hin thi gian ch tng ng vi con s , nhng vn khng hin bng la chn. 0: khi ng ngay tc khc, khng c bng la chn, khng c thi gian ch. Khi thit t gi tr 0: Ngi dng c th p buc my phi hin th bng la chn bng cch n v gi phm SHIFT. Trong qu trnh khi ng, h thng s kim tra trng thi ca phm SHIFT. Nu n khng xc nh c trng thi ca phm, s hin ra mt khong thi gian ngn cho php hin th bng la chn bng cch n phm ESC. Nu c kch hot, mt hnh nn (splash screen) kiu 05_debian_theme s c hin th k c khi tnh nng n bng la chn c bt. GRUB_HIDDEN_MENU_QUIET=true true - Khng hin th thi gian m ngc. Mn hnh hon ton trng. false - Hin th thi gian m ngc da trn gi tr ti dng GRUB_HIDDEN_TIMEOUT. GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` Xc nh phn m t ca tn mc trong bng la chn. (Ubuntu, Xubuntu, Debian, ...) GRUB_CMDLINE_LINUX Nu c dng ny c gn thng tin, n s nhp thng tin vo cui dng ca mc (cho cc ch normal v recovery). Lnh ny ging vi lnh "altoptions" trong menu.lst trc y. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" Dng ny nhp thng tin vo cui dng ca mc (ch p dng cho ch normal). N tng t nh dng "defoptions" trong menu.lst . Nu bn mun lc khi ng vo Ubuntu s hin chi cht ch v s hy g b cm t "quiet splash". Nu bn mun c mt t thng tin chy di logo ca Ubuntu

th ch l "splash". <-- iu ny ("splash") khng c tc dng trong qu trnh khi ng ca Karmic v trnh xsplash khng cho php hin th thng tin, nhng lc tt my (shutdown) th li c. #GRUB_TERMINAL=console Nu b ch thch th s v hiu tnh ha ca terminal (ch grub-pc). #GRUB_DISABLE_LINUX_UUID=true B ch thch nu bn khng mun GRUB b qua thng s "root=UUID=xxx" trong Linux. GRUB_DISABLE_LINUX_RECOVERY=true Thm hoc b ch thch (#) dng ny ngn khng cho ch "Recovery" xut hin trong bng la chn. GRUB_DISABLE_OS_PROBER=true Bt/Tt kim tra cc h iu hnh khc c trong h thng, bao gm Windows, Linux, OSX v Hurd.

/etc/grub.d/ (th mc)


Nhng tp tin trong th mc ny c truy xut trong qu trnh thc thi lnh "update-grub". Cc on m trong nhng tp tin ny xut thng tin vo trong /boot/grub/grub.cfg. Cc tp tin c chy mt cch tun t - tp tin no c tn bt u bng s th chy trc, k n l tn bng ch ci. Th t ca tp tin c chy quyt nh v tr ca cc mc trong bng la chn. Cc mc ty chn c th c thm vo tp tin "40_custom" hoc c t vo mt tp tin mi. Bt k tp tin no c to ra phi c tnh thc thi c trch xut vo trong tp tin "grub.cfg" ti thi im thc hin lnh "update-grub". C th t c iu ny bng cch g vo trong terminal "sudo chmod u+x /etc/grub.d/tn-tp-tin". Di dy l m t tng qut nhim v ca cc tp tin: 00_header Ti cc thit lp t /etc/default/grub, bao gm cch trnh by, m ngc v cc tu chn v terminal . 05_debian_theme Chnh hnh nn, mu ch v ch . 10_hurd nh v hurd kernels (hin ti khng dng). 10_linux nh v kernels da trn tn bn phn phi c xc nh bi kt qu ca lnh "lsb_release -i -s" ("Ubuntu"). 20_memtest86+ Nu c tn ti tp tin /boot/memtest86+.bin, n s c a vo danh sch la chn lc khi ng. 30_os-prober

D tm cc h iu hnh khc v a n vo danh sch la chn. 40_custom Mt kiu mu dng to cc la chn tu bin s c a vo trong grub.cfg khi thc hin lnh "update-grub". Tp tin ny v bt k tp tin tu bin no khc phi c tnh thc thi cho php nhp ni dung vo trong grub.cfg. Nhng tp tin ny c t vo trong bng la chn theo s th t ghi trn tn tp tin.

Thm mc la chn vo Grub 2


grub.cfg c cp nht khi update-grub hoc update-grub c thc thi. Cc thay i trong grub.cfg phi c to ra bng cc tp tin cha m tng ng ch khng phi t chnh bn thn grub.cfg. LU : Dng ghi ch u tin trong grub.cfg c ngha l "KHNG C CHNH SA TP TIN NY" . Tp tin ny mang thuc tnh "ch c" v d bn c c gng sa th n vn tr v trng thi nh c mi khi lnh updategrub c chy.

T ng thit lp
Khi "update-grub" c thc thi, Grub 2 s c d liu t /etc/default/grub v nhng tp tin nm trong th mc /etc/grub.d. S kt hp ny s to nn nhng thng s trc quan cho bng la chn (/etc/default/grub) v tm kim cc nhn linux, cc h iu hnh khc v cc tu chn khc do ngi dng thit lp trong /etc/grub.d. Cc tp tin kch bn trong /etc/grub.d thc hin cc thao tc sau: 10_linux d tm nhng nhn linux c ci t. 30_os-prober d tm cc h iu hnh khc . 40_custom v nhng tp tin khc do ngi dng t thit lp trong th mc /etc/grub.d c vai tr thm cc nhng mc tu chn vo trong bng la chn. Tn tp tin s quyt nh th t ca cc mc trong bng la chn. Cc mc trong 30_os-prober s ng trc cc mc trong 40_custom. Cc mc c s cao hn s xp sau cc mc c s nh hn. Mi tp tin do ngi dng to ra phi c tnh thc thi. iu ny c th thc hin vi quyn root bng cch chy:
sudo chmod u+x /etc/grub.d/tn-tp-tin

Ngi dng t thit lp


Ngi s dng vi quyn "root" c th to cc kch bn trong th mc /etc/grub.d/ c th st nhp chng vo trong tp tin grub.cfg khi update-grub c chy. Tn tp tin nn c dng XX_tn, vi XX l con s. Th t ca mc bng la chn khi ng da trn s th t cc tp tin trong /etc/grub.d. Cc tp tin thc thi trong th mc /etc/grub.d bt u bng ch ci s c u tin xp trc cc tp bt u bng s trong bng la chn.

Tp tin phi c thit lp thuc tch thc thi bng cc g trong terminal:
sudo chmod +x /etc/grub.d/'''filename'''

y l mt v d v mc tu chn. Tp tin ny to mt mc trong bng la chn khi chy qu trnh ci t SystemRescueCD trn phn vng sdb10 v mt nhn tu chn trn sda1. LU : v quy c t tn phn vng mi: Cc thit b vn bt u m t 0 nh trc y Tuy nhin vi Grub 2, ch s cc phn vng bt u t 1 V d: phn vng u tin trn a cng u tin: (hd0,1) phn vng th 5 trn a cng th 3: (hd2,5)
#!/bin/sh echo "Adding Custom Kernel & SystemRescue" >&2 cat << EOF menuentry "Ubuntu, linux 2.6.31-11-custom" { set root=(hd0,9) linux /boot/vmlinuz-2.6.31-11-custom root=UUID=c6829e27-2350-4e84-bdbb-91b83f018f98 ro initrd /boot/initrd.img-2.6.28-11-generic } menuentry "Boot SystemRescue CD from hard drive" { set root=(hd1,10) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } EOF

Dng "echo "Adding SystemRescueCD" >&2" khng bt buc. Thm n vo tp tin cho php n c hin th trong terminal khi "update-grub" c kch hot. iu ny cung cp nhng thng tin phn hi rng ci mc ny c nhn din v c vo (grub.cfg). Nu c bin son ng chun th mc la chn c a vo grub.cfg d cho ci dng c c chn vo hay khng. Chnh sa th cng grub.cfg Nu bn phi chnh sa tp tin ny:
sudo chmod +w /boot/grub/grub.cfg sudo nano /boot/grub/grub.cfg # Remove 'read-only', necessary even for "root" # Edit as "root"

Lu : Tp tin ny s tr li trng thi 'ch c' v nhng thit lp ca ngi dng trong s b ghi mi khi lnh "update-grub" c chy.

G b mc la chn trong Grub 2

Cc mc c g b bng cch iu chnh hoc xo b cc tp tin trong th mc /etc/grub.d. Tp tin /boot/grub/grub.cfg ch c v khng nn chnh sa mt cch trc tip. Lm t ng. Nhng nhn Linux c g b bi Synaptic cng s t bin mt trong grub.cfg m khng cn ngi dng ng tay n. Nhng h iu hnh khc nu c g b khi my tnh cng s bin mt trong danh sch la chn mt khi lnh "update-grub" c chy vi quyn root . Lm th cng. ngn khng cho mt tp tin trong /etc/grub.d np cc mc vo trong bng la chn, hy thay i thuc tnh thc thi hoc xo tp tin ng dng. memtest86+: Nu bn khng mun thy memtest86+ xut hin trong bng la chn, chy lnh
sudo chmod -x /etc/grub.d/20_memtest86+

. Tp tin vn cn nhng s khng phn ng vi lnh update-grub. Recovery mode: Nu bn khng mun thy mc Recovery mode i km vi mc nhn kernel, hy chnh sa file /etc/default/grub bng cch thm dng ny:
GRUB_DISABLE_LINUX_RECOVERY=true

Nu mt kch bn tu bin trong th mc /etc/grub.d/ c cha nhiu mc la chn, c th xo b tng mc mt m khng nh hng n cc mc cn li. Mo: Nu ngi dng mun cc mc tu bin xut hin u bng la chn, hy t tn c gi tr nh hn "10_linux" , v d nh "07_custom" . Kim tra gi tr "Mc nh" trong /etc/default/grub tr n ng menuentry sau khi xc lp s thay i. S thay i s khng din ra cho n khi lnh "update-grub" c chy cp nht grub.cfg.

Ch
phin bn GRUB 2 h tr hin th theo ch . Giao din ho ca GRUB gip cho vic tu bin cch b tr v din mo ca bng la chn GRUB. Ch c cu hnh bng mt tp tin text n thun m n ch r cch sp xp ca nhiu thnh phn GUI khc nhau (bao gm bng la chn, thanh hin th qu trnh m ngc v cc thng ip) cng nh din mo bng vic s dng mu sc, kiu ch v hnh nh. bit chi tit xin xem bi vit ny: [Grub 2 Themeing (http://ubuntuforums.org/showthread.php?t=1182436) ]

Hnh Splash
y l mt d n thuc Google Summer of Code ca Colin Bennett. Ci [GRUB 2 graphical menu project (http://grub.gibibit.com/) ] ny nhm to ra mt h thng menu ho tu bin cao cho GNU GRUB bootloader. Xem ti [y. (http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.html) ]

nh v mu nn
nh v mu nn c cu hnh trong mt kch bn nm /etc/grub.d/ nu bn vo y s thy mt tp tin tn l 05_debian_theme , l s phi mu mc nh ca GRUB 2. By gi to cch phi mu cho ring bn th c vi la chn, bn c th sao chp v chnh sa tp tin 05_debian_theme or hoc t to mt ci mi hon ton. Mi tp tin /etc/grub.d/ u c chy c th t, nu nh bn c 2 tp tin ch , 05_debian_theme v 06_mytheme chng hn, ci th hai (06_mytheme) s c chy sau cng, cng l ci c hin th cho bn xem. Sao chp v chnh sa mu mc nh Sao chp s mu sc ca ch mc nh
$ sudo cp /etc/grub.d/05_debian_theme /etc/grub.d/05_debian_theme.BACKUP $ sudo nano /etc/grub.d/05_debian_theme

By gi bn c th chnh sa theo thch. To mt tp tin ch mi To tp tin ch mi


$ sudo nano /etc/grub.d/06_mytheme

By gi bn c th bt tay vo thit k.

Cu lnh
V GRUB 2 c vit li hon ton, cho nn c mt s lnh tng s dng Grub c c th khng tn ti GRUB 2. Hy kim tra chng danh sch lnh ca Grub 2 ti y (http://grub.enbug.org/CommandList) . Phm SHIFT by gi cho php bn can thip vo qu trnh boot nhanh buc my phi hin bng la chn.

Phc hi Grub 2 bng a LiveCD


u tin, ti v phin bn LiveCD mi nht ti [Ubuntu LiveCD (http://www.ubuntu.com/getubuntu/download) ] v khi ng n. M terminal v g
$ sudo fdisk -l

By gi bn cn ghi nh thit b no trong danh sch lit k cha bn phn phi Linux ca bn. Chng hn /dev/sda1. Tip theo chng ta cn gn kt (mount) n ti /mnt

$ sudo mount /dev/sda1 /mnt

Nu bn /boot trn mt phn vng ring bit, th cng cn phi mount n ln lun. V d nh /dev/sda2.
$ sudo mount /dev/sda2 /mnt/boot

Kim tra chc chn rng bn khng nhm ln gia chng, ch k ti thng tin m FDISK a ra. Cch 1 Dng lnh install grub ln thit b ca bn v d vi ci trn th
$ sudo grub-install --root-directory=/mnt/ /dev/sda

Cn lu y sda l tn ci cng hoc thit b ca bn, c th l sda, sdb, sdc ... cn ci sda1 cc lnh trn l phn vng u tin ca thit b sda. Sau bn vo ubuntu ca bn ri dng lnh
$ sudo update-grub

li hoc chnh sa g ty thch Cch 2 Mount cc thit b cn li.


$ sudo mount --bind /dev /mnt/dev

K tip l chroot vo h thng ca bn.


$ sudo chroot /mnt

Bn cn thc hin chroot vo h thng vi quyn root, v vy bn nn chuyn vai tr sang root khi phi thm sudo trc mi dng lnh. Gi th bn cn chnh sa tp tin /etc/default/grub cho ph hp vi h thng
$ nano /etc/default/grub

Khi mi th xong bn cn chy lnh update-grub to tp tin cu hnh.


$ update-grub

ci GRUB 2 vo MBR, bn cn chy bc tip theo: grub-install /dev/sda


$ grub-install /dev/sda

Nu bn gp bt k li no, hy th grub-install --recheck /dev/sda


$ grub-install --recheck /dev/sda

n Ctrl+D thot khi chroot. Mt khi bn tr v vai tr ngi dng quen thuc, hy tho b cc gn kt vo h thng, u tin l /dev
$ sudo umount /mnt/dev

Nu lc u c gn /boot vo th gi tho n ra:


sudo umount /mnt/boot

Gi th bn c th tho gn kt cui cng.


$ sudo umount /mnt

V bn c th khi ng li h thng ca mnh v GRUB 2 s li xut hin v ch lnh ca bn.

Li
Bng la chn khi ng Grub 2 bin i u ri!?!?!
Nu bn khng thy bng la chn th c l n b n i ri. mc n ra ch cn chnh /etc/default/grub bng cch v hiu ho dng GRUB_HIDDEN_TIMEOUT
$ sudo nano /etc/default/grub

Lm cho dng ging nh th ny...


#GRUB_HIDDEN_TIMEOUT=3 GRUB_TIMEOUT=XXX

<---bo m rng bn t mt gi tr no vo y.

Lu li v thot, sau chy...


$ sudo update-grub

Khi ng kp

Thng s dng khi ci li Grub 2 m khng nhn h iu hnh khc ngoi Ubuntu nh Windows.
$ sudo apt-get install --reinstall libdebian-installer4 $ sudo os-prober $ sudo update-grub

Lin kt
Grub2 (https://help.ubuntu.com/community/Grub2) (Community Documentation) Ly t http://wiki.ubuntu-vn.org/index.php/Grub_2 Ln sa cui : 03:07, ngy 9 thng 5 nm 2011.

You might also like