Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218159
  • 博文数量: 67
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-17 09:42
文章分类

全部博文(67)

文章存档

2010年(5)

2009年(7)

2008年(55)

我的朋友

分类: LINUX

2008-04-28 22:43:26

文件: grub.rar
大小: 91KB
下载: 下载
由于前一段时间重新装了XP系统导致UBUNTU进不去了,我想很多人遇到过这样的问题,但是本次的问题不一样的地方在于,其一,我使用的是DELL OPTIPLEX320,在网上有很多的贴子在说这种机型的问题及解决方法,
如果原来装地GRUB引导的只需:

1.从CD-ROM启动,从Live CD启动进入桌面。 
2.打开终端或者切换到一个tty(Ctrl+Alt+F1)。 
3.输入:sudo grub 
4.输入:find /boot/grub/stage1 ##有人说这一步不用,不过个人感觉还是应该加上这一步 
5.输入:root (hd0,x) ##输入find命令反馈的数据 
6.输入:setup (hd0) ##如果想用xp进行多系统引导就写(hd0,x) 
输入:quit ##退出grub。 
重新启动,不出意外的话,那么恭喜,呵呵,可以看到XP和UBUNTU的双系统引导咯^_^

但我的情况又不同于其它的情况,由于原系统中没有安装GRUB而是安装的LILO,所以在修复的时候出现了一些网上没有的解决方法,为了方便大家以后使用,所以现在将我的步骤整理出来发在网上!!

1.得用LIVECD(桌面版)进入到安装界面
2.手到安装GRUB引导
首先应该确保(hd0,X-1)分区内的/boot/grub目录下已经有stage1、stage2、*_stage*等文件,这些文件可以通过释 放Grub的打包文件来获得,或者直接从LiveCD光盘内的/boot/grub目录复制。
如果LiveCD带有grub-install脚本,也可以直接执行
# mount /dev/hdaX /mnt
# grub-install --root-directory=/mnt /dev/hdaX
    以上指令首先将带有Grub目录/boot/grub的/hdaX挂载到/mnt,然后将Grub安装到/hdaX。
注:本人的hdaX=sda3,自己可根据自己的情况进行相应的修改
即:
     # mount /dev/sda3 /mnt
        # grub-install --root-directory=/mnt /dev/sda3

        重启系统
3.
将Grub装配到ntloader内
   
Grub已经安装到了Linux分区内,但它还不能引导系统,我们需要把它和ntloader联接起来,由ntloader对Grub加以引导。这是通过把hdaX分区内的Grub引导扇区转换为文件,并装配到Windows的ntloader内来实施的。
仍然用LiveCD启动Linux系统(因为你所安装的Linux系统目前还是不能引导的),或者在安装程序可以进入shell的情况下,执行以下指令:
# mount -t vfat /dev/hda1 /mnt
# dd if=/dev/hdaX of=/mnt/linux.lnx bs=512 count=1
以上两条指令将Windows的启动分区(本文中为hda1)挂载到/mnt下,然后把Linux分区(hdaX)的第一个扇区(大小为512字节)复制为Windows启动分区根目录下名为linux.lnx的文件。
   
注:本人的*可根据实际情况决定,通过Computer查看方可.
即:
# mount -t vfat /dev/* /mnt
# dd if=/dev/sda3 of=/mnt/linux.lnx bs=512 count=1

4.设置menu.lst文件
可拷贝其它好使机器的配置文件,可参考
menu.lst

## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## ## End Default Options ##

title        Ubuntu, kernel 2.6.20-15-generic
root        (hd0,2)
kernel        /boot/vmlinuz-2.6.20-15-generic root=UUID=79d1d770-2722-4c25-8515-ea9ef59f2440 ro quiet splash
initrd        /boot/initrd.img-2.6.20-15-generic
quiet
savedefault

title        Ubuntu, kernel 2.6.20-15-generic (recovery mode)
root        (hd0,2)
kernel        /boot/vmlinuz-2.6.20-15-generic root=UUID=79d1d770-2722-4c25-8515-ea9ef59f2440 ro single
initrd        /boot/initrd.img-2.6.20-15-generic

title        Ubuntu, memtest86+
root        (hd0,2)
kernel        /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title        Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title        Microsoft Windows XP Professional
root        (hd0,0)
savedefault
makeactive
chainloader    +1

此时完成了LILO向GRUB的转换,但些时GRUB仍不可引导LINUX,以下说明修改方式,主要采用


LINUX 下,假设Ubuntu 7.04安装所在硬盘为 /dev/sda(注意:某些情况下,多块硬盘的情况下,ubuntu 7.04安装所在硬盘就不一定是 sda 了),进入 bootlace.com 所在目录(可以是windows系统下分区),运行命令 sudo ./bootlace.com /dev/sda 即可。 
 
在硬盘上找一个或新建一个 fat16/fat32/ext2/ext3 分区,将附件中的 grldr 拷至其根目录, 并在同一目录下建立 menu.lst 文件,内容如下: 
 
timeout 10 
default 0 
 
title Ubuntu, kernel 2.6.20-15-generic 
find --set-root /boot/vmlinuz-2.6.20-15-generic 
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/sda3 ro splash 
initrd /boot/initrd.img-2.6.20-15-generic 
boot 
 
title Ubuntu, kernel 2.6.20-15-generic (recovery mode) 
find --set-root /boot/vmlinuz-2.6.20-15-generic 
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/sda3 ro single 
initrd /boot/initrd.img-2.6.20-15-generic 
boot 

---------------以下部分在本人机器上无效---------------
title Windwos XP 
rootnoverify (hd0,0) 
makeactive 
 
------------将其修改为-----------------
title        Microsoft Windows XP Professional
root        (hd0,0)
savedefault
makeactive
chainloader    +1
-----------------------

其中,,我的Ubuntu7.04安装在第一块硬盘第三分区上,/dev/sda3表示第一块硬盘第三分区,大家可以根据自己的安装改变,当然/dev/sda3也可以用UUID替换。/boot/vmlinuz-2.6.20-15-generic 版本根据自己系统内核改变,不过我安装的ubuntu-7.04-desktop-i386.iso在没有更新升级之前是2.6.20-15。我是在一块硬盘安装多系统,在安装ubuntu之前己经WinXp,安装在硬盘第一分区上,下面内容即可引导时入WinXP 

重启即可看grub4dos引导项,可以成功引导进入Ubuntu


 参考网文:


阅读(1474) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~