重裝windows後無法進入ubuntu?看这里。

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

重裝windows後無法進入ubuntu?看这里。

#1

帖子 millenniumdark » 2005-08-29 17:58

这是很久以前整理的帖子了。也改过几次。帮助有些人解决了问题。也由于其中的一些错误误导了一些人(抱歉)。现在此帖已过时,wiki上有最新的方案:
http://wiki.ubuntu.org.cn/RecoveringUbu ... ingWindows

请有问题的点上面的网址。
上次由 millenniumdark 在 2007-01-28 13:56,总共编辑 4 次。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

[整理]重裝windows後無法進入ubuntu的解決方法

#2

帖子 millenniumdark » 2005-08-29 18:00

[說明]由于重裝windows等原因破坏了grub,無法進入ubuntu的請看這里。本帖是根据論壇里相應的帖子整理的。很可能有漏掉不少帖子,請使用論壇的搜索功能。

下面將給出很多種方法來解決這個問題:

1.用livecd(强烈推荐)
2,用安裝cd
3,使用grub4dos
4,使用grub軟盤





1,使用livecd(强烈推荐)
使用任何你喜歡的linux livecd(比如,ubuntu 6.06的desktop cd)

在终端下输入:

代码: 全选

sudo su
grub


你应该看到像这样的东西:

代码: 全选

grub>


接着输入:

代码: 全选

root (hdx,y)
setup (hdx)


请不要完全照样输入!请弄懂这些命令的含义。

hd表示硬盘,格式是
(hd硬盘号,分区号)
从零开始计算。

所以(按照日常的习惯,从1开始数),(hd0,0)表示第一个硬盘的第一个分区,(hd0,1)表示第一个硬盘的第2个分区,(hd1,4)表示第2个硬盘的第5个分区。

(注意,linux系统里是用hda1表示第一个硬盘的第一个分区,不要把它和grub中的表示混起来。)

root (hdx,y)

这里的(hdx,y) 是/boot 目录所在的分区(通常情况下,也就是你装ubuntu系统的分区,除非你安装的时候把/boot分出去了。)如果你不知道你把ubuntu装在第几个分区,可以在输入root (hd0, 时按Tab键来补全。(假设你把ubuntu装在第一块硬盘上)

按了tab后,你将看到一些有关各个分区的信息。通常你可以通过分区的大小和格式看出你把ubuntu系统装在哪里了。


setup (hdx) 通常情况下,是setup (hd0)。(多半你把ubuntu装在第一块硬盘上。)要注意的是,不要输入setup (hd0,0)。我曾经犯过这个错误。(如果你没把命令抄下来,凭记忆操作的话,可能会犯这种错误。)

最後,用

代码: 全选

quit

退出grub,重啟系統。

好了,总结一下用到的命令(建议你把下面的代码抄在纸上。如果你对(hdx,y)表示的含义还感觉模糊,最好把上面几段解释也抄下来。)

代码: 全选

sudo su
grub
root (hdx,y)
setup(hdx)
quit



很简单吧?关键只要理解grub中硬盘分区的表示法就行了。
上次由 millenniumdark 在 2006-10-03 2:41,总共编辑 5 次。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

2,使用ubuntu安裝cd恢复

#3

帖子 millenniumdark » 2005-08-29 18:11

2,使用ubuntu安裝cd恢复

ubuntu desktop-cd可能用不起来。你可能需要6。06的alternative cd。


1. 用 Ubuntu 安装 CD 开机
2. 在 "boot:" 提示号出现时, 键入 "rescue" 当作开机参数

boot: rescue

3. 顺着屏幕上的指示跟着作
4,例如 假设 /boot 磁碟分区位在 /dev/hda

代码: 全选

#grub-install /dev/hda


下面是另外一种方法。
firehare 写了:1. 启动系统到 Ubuntu 安装CD
2. 沿着屏幕上的命令直到 (千万不要超过这一步)
[!!] Fdisk disks
3. 按 'Ctrl + Alt + F2'
4. 按 'Enter' 进入终端
5.

~ # mkdir /ubuntu
~ # fdisk -l /dev/discs/disc0/disc
~ # mount <你的Ubuntu根设备所在位置> /ubuntu/
~ # chroot /ubuntu/
sh-2.05b#
6. 假设 /dev/hda1 是 /boot 分区的地址
7. sh-2.05b# grub

grub> root (hd0,0)
grub> setup (hd0)
grub> quit




1. 用 Ubuntu 安装 CD 开机
2. 在 "boot:" 提示号出现时, 键入 "rescue" 当作开机参数

boot: rescue

3. 顺着屏幕上的指示跟着作
4,例如 假设 /boot 磁碟分区位在 /dev/hda

代码: 全选

#grub-install /dev/hda
上次由 millenniumdark 在 2006-10-03 2:35,总共编辑 3 次。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

3,使用 grub for dos

#4

帖子 millenniumdark » 2005-08-29 18:15

3,使用 grub for dos
在沒有ubuntu安裝盤或livecd的情況下,你可以使用grub4dos重新安裝grub。你甚至可以用grub4dos代替grub來引導系統。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

3.1使用grub4dos重新安裝grub

#5

帖子 millenniumdark » 2005-08-29 18:29

3.1使用grub4dos重新安裝grub
下載http://www.ubuntu.org.cn/download/installformharddisk/grldr
oneleaf 写了:将 grldr 复制到 C:\,编辑C:\BOOT.INI,加入一行:

C:\GRLDR="GRUB"

再手工输入启动命令
例如:
root (hd0,0)
kernel /vmlinuz-2.6.10-5-686 root=/dev/hdb5 ro quiet splash
initrd /initrd.img-2.6.10-5-686
savedefault
boot

进入后,重新安装grub就好了。

重新安裝grub:
例如 假设 /boot 磁碟分区位在 /dev/hda

代码: 全选

# grub-install /dev/hda
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

3.2用grub4dos代替grub來引導系統

#6

帖子 millenniumdark » 2005-08-29 18:39

3.2用grub4dos代替grub來引導系統
yonsan 写了:(凭记忆写的,如有不完善请指正)

如果你的系统现在正在使用grub引导方式,请在操作之前查看一下/boot/grub/menu.lst的内容,建议将/boot/grub/menu.lst拷贝一份以备用(将它拷到fat32分区中存放就可以)!

进入window环境下

1) 下载grub020p.zip并解压到C盘根目录下,打开C盘查看一下是否有以下文件

C:\boot (文件夹)
C:\ChangeLog.txt
C:\compile
C:\COPYING
C:\grldr
C:\grub4lin
C:\grub-0.95-patch1-startups
C:\grub-0.95-patch2-findroot
C:\grub-0.95-patch3-ntfs
C:\grub-0.95-patch4-emulation
C:\grub-0.95-patch5-splash
C:\grub-0.95-patch6-scdrom
C:\grub-0.95-patch7-bioscdrom
C:\grub.exe
C:\grub.pif
C:\README.txt
C:\robin.xpm.gz
C:\scratchpad.txt

2) 修改C:\boot\grub\menu.lst ,用你刚才从linux系统中拷贝的menu.lst覆盖C:\boot\grub\menu.lst

3) 进入grub命令行方式 (出现grub引导菜单时按c键)
> root (hd0,0)
> setup (hd0)

4) 重启计算机
上次由 millenniumdark 在 2005-08-29 21:10,总共编辑 2 次。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

4.使用grub軟盤

#7

帖子 millenniumdark » 2005-08-29 19:01

4.使用grub軟盤
很簡單,只要用grub軟盤啟動机器就行了。
如何制作grub軟盤?
如果你沒做過grub軟盤,想在用安裝cd恢复的時候順便做一個,那就試試下面這個:
youngong 写了:用安装CD启动电脑,输入rescue回车,启动后执行"grub- install /dev/hda3"重新安装grub到ubuntu分区上,再用"grub-install /dev/fd0"制作一张启动软盘(如果你打算将grub安装在MBR上可就更简单了,只需要grub-install /dev/hda)。再用刚才制作的软盘重启电脑,就可以进入ubuntu linux了。为了还原我原来的NT Loader启动linux的方式,再提取hda3分区的引导记录,即“dd if=/dev/hda3 of=/linux.lnx bs=512 count=1",并将生成的linux.lnx文件复制到C区根目录下,修改boot.ini加入“c:\linux.lnx=Ubuntu linux 5.04",就可以在硬盘引导时选择启动ubuntu了。其实整个过程中制作引导软盘只起了个过渡作用,但同时也方便以后维护系统。
头像
millenniumdark
论坛版主
帖子: 4160
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 43 次
接收感谢: 9 次
联系:

重裝grub後windows無法進入的問題

#8

帖子 millenniumdark » 2005-08-29 19:08

zhan 写了:今天重装了windows系统,将原来的xp装为2003,装完后用ubuntu的安装盘
grub-install /dev/hda 将linux恢复了,但是启动时只有一个winxp的选项,进入时说不能识别文件系统,不能启动,然后出现一个GRUB 就停住了,不过linux系统是还可以用.各位大侠有没有什么好办法,我不想再重装了!!
启动win时的下显示见下:
Booting 'microsoft windows xp professional'

root (hd0,0)
Filesystem type unkown ,partition type 0x7
savedefault
makeactive
chainloader+1

GRUB

到这里就不动了,按键基本都没用,不过,ctrl+alt+delete能重启



yonsan 写了:
用以下方式引导windows

代码: 全选

# Windows
title Windows
rootnoverify (hd0,0)
chainloader +1


头像
firehare
论坛版主
帖子: 2625
注册时间: 2005-04-10 16:54
来自: 温州大学
送出感谢: 0
接收感谢: 2 次
联系:

#9

帖子 firehare » 2005-08-29 20:00

兄弟辛苦了!
我心无畏,源自于我心无知。
图片
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市
送出感谢: 0
接收感谢: 3 次

#10

帖子 yonsan » 2005-08-29 21:24

:o 呵呵,赞一下! 好样的!
yongyi
帖子: 3025
注册时间: 2005-05-07 23:57
送出感谢: 0
接收感谢: 0
联系:

#11

帖子 yongyi » 2005-08-29 22:31

也许这个也行,我曾经用此方法安装一个新内核。

假如 / 区在hda9,
利用“DOS下用ubuntu ISO硬盘安装”的方法,启动安装系统,放心不是真的安装啦。到了分区那一步,按"Ctrl+Alt+F2"切换到命令行,回车后输入:

代码: 全选

mkdir  /linux
mount  /dev/hda9  /linux
chroot  /linux  /bin/bash
mount   -t   proc  /proc   /proc
source /etc/profile
grub

如果进入了grub命令行,就输入:

代码: 全选

root (hd0,8)
setup (hd0)

未经实践,欢迎指正。
独自看一看大海
总想起身边走在路上的朋友
Lenovo E290-420[Celeron-M420/256M/60G/Intel GMA950]
头像
lyreopera
帖子: 771
注册时间: 2005-05-23 13:38
来自: gdsz
送出感谢: 0
接收感谢: 0

#12

帖子 lyreopera » 2005-08-29 22:53

直接在终端输入grub,

按下tab没有反应

grub> root (
grub> root (
grub> root (
grub> root (
grub> root (
grub> root (
grub> root (
grub> root (
grub> root (
……
yongyi
帖子: 3025
注册时间: 2005-05-07 23:57
送出感谢: 0
接收感谢: 0
联系:

#13

帖子 yongyi » 2005-08-29 23:02

终端应该是不行的吧
独自看一看大海
总想起身边走在路上的朋友
Lenovo E290-420[Celeron-M420/256M/60G/Intel GMA950]
头像
lyreopera
帖子: 771
注册时间: 2005-05-23 13:38
来自: gdsz
送出感谢: 0
接收感谢: 0

#14

帖子 lyreopera » 2005-08-29 23:06

http://forum.ubuntu.org.cn/viewtopic.php?t=2475
按照这里的说明,终端也是可以的。

另外,我上次恢复grub的时候也是这里出了问题,只好重装。



知道在哪个盘,是不是可以直接输入呢?
……
头像
lyreopera
帖子: 771
注册时间: 2005-05-23 13:38
来自: gdsz
送出感谢: 0
接收感谢: 0

#15

帖子 lyreopera » 2005-08-29 23:07

没问题了,原来刚才没看到要用root运行……
……
回复

回到 “启动和引导”