当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 多系统下修复linux多点挂载的grub(winXP+ubuntu9.1)
帖子发表于 : 2010-03-16 21:12 

注册: 2009-11-22 10:23
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
我的blog: http://hi.baidu.com/seabird_zh/blog/item/64e2001329f5860e5aaf53df.html
前一段时间,装了个一键还原,老是提示我只有一个常规分区,需要重新分区,实际上我的windows是有两个分区的,两个都是NTFS,而且D上还有30G的空间,我就不明白这玩意怎么认的,还是2010版,真够烂的。

闲话少说,我不想用这个玩意,就把它卸了,没想到我的机器grub就丢了,启动不了了,在网上找来找去,有很多说法,但真正没有几个能用的!

grub4dos其实和windows一样烂,弄了半天,能进grub,但还是启动不了,所以放弃!

还有就是许多人说的用ubuntu 9.1的安装盘进入修复模式,还一篇文章抄来抄去,劝劝大家,自己没有做过就不要把别人错误百出的文章贴来贴去了,ubuntu 9.1的安装盘根本就没有什么修复模式!

下面是我的修复经过,不要照搬啊,经验证,你不用原来的系统盘,哪怕你用的是一张Federo的启动盘,只要能启动进入系统,一样可以修复ubuntu

(多点挂载的系统,和单点挂载的系统,修复完全不一样的)

首先,使用ubuntu 9.1的安装盘,选择“试用ubuntu而不改变任何系统文件”

进去以后,其实就是一个光盘版的linux,启动shell

(注意,有很多人说,这时候 sudo grub什么的,别费劲了,像我这样出的问题,没有mount系统的时候,进去执行root (hd0,5)根本就行不通,问题不是这么简单的!)

1)先mkdir一个临时目录

sudo mkdir -p /mnt/tmp

2)mount所有的你的文件系统(除非你的硬盘直接使用 / 安装的,负责你还是不要漏掉任何一个目录,不是只mount /boot所在的分区就能解决问题),因为我的系统安装的时候,分了很多分区,所以必须一个一个来:

sudo mount /dev/sda7 /mnt/tmp ##sda7是我的“/”挂载点

sudo mount /dev/sda6 /mnt/tmp/boot ##sda6 是我的 “/boot” 挂载点

sudo mount /dev/sda8 /mnt/tmp/usr ##sda8 是我的 "/usr" 挂载点

sudo mount /dev/sda9 /mnt/tmp/usr/local ##sda9 是我的“/usr/local”挂载点

sudo mount /dev/sda10 /mnt/tmp/srv ##sda10 是我的"/srv" 挂载点

sudo mount /dev/sda11 /mnt/tmp/opt ## sda11 是我的“/opt” 挂载点

sudo mount /dev/sda12 /mnt/tmp/var ## sda12 是我的“/var” 挂载点

sudo mount /dev/sda13 /mnt/tmp/home ## sda13 是我的 "/home" 挂载点

sudo mount /dev/sda14 /mnt/tmp/tmp ## sda14 是我的 “/tmp” 挂载点

这是原来的系统分区,下面你还得将当前系统相关的节点 bind到临时


3)mount当前系统的节点,sys,dev 等

sudo mount --bind /proc /mnt/tmp/proc

sudo mount --bind /sys /mnt/tmp/sys

sudo mount --bind /dev /mnt/tmp/dev

大家也许觉得很奇怪,为什么要mount 这么多的点,如果你的分区很简单,当然不需要了,但如果你是一个比较复杂的系统,比如,你不mount /usr分区,只要你用的光盘和你当前的系统不一致,你就会出现找不到命令的情况,其他的也一样。

4) chroot

sudo chroot /mnt/tmp

大家应该明白了,到目前为止,实际是相当于你已经在运行你自己的系统了

5)执行grub

grub> root (hd0,5) ##大家在前面已经看到了我的boot分区是挂载在sda6上的,因为硬盘分区的寻址是从0开始的,所以,这里是5,不管理你的系统中是硬盘识别是SD还是hd,在grub里都是hd

grub> setup (hd0)

grub>quit

6)重新启动系统

这时,如果windos不能启动,不要着急,进入ubuntu,执行以下命令:

#update-grub

好了,多挂载点,这样被修复了!

seabird, 2010.3.15 Beijing
我的blog: http://hi.baidu.com/seabird_zh/blog/item/64e2001329f5860e5aaf53df.html


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译