windows启动陷入死循环(处女帖)

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
mushui1989
帖子: 4
注册时间: 2011-04-24 14:29

windows启动陷入死循环(处女帖)

#1

帖子 mushui1989 » 2011-04-24 14:54

之前windows和Ubuntu的启动过程都很正常,后来,升级了grub后,问题就出现了,在论坛里翻了很久之前到帖子,但是还是没有找到解决的方法,所以发帖求助,请各位高手指点一二!

为了把问题说明白,帖子会比较长,请各位耐心些哈~~

1.打开电脑后,启动界面如下:
Ubuntu, with Linux 2.6.35-28-generic
Ubuntu, with Linux 2.6.35-28-generic (recovery mode)
Ubuntu, with Linux 2.6.35-22-generic
Ubuntu, with Linux 2.6.35-22-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Microsoft Windows XP Professional (on /dev/sda1)
于是,选择最后一项,之后进入一个空白界面,光标在左上角闪了几下就又跳回这个界面。

2.我到grub.cfg文件的详细内容:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
insmod vbe
insmod vga
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.35-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
linux /boot/vmlinuz-2.6.35-28-generic root=UUID=4792df2a-ffb6-44a3-a28d-8408feb4427a ro quiet splash
initrd /boot/initrd.img-2.6.35-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
echo 'Loading Linux 2.6.35-28-generic ...'
linux /boot/vmlinuz-2.6.35-28-generic root=UUID=4792df2a-ffb6-44a3-a28d-8408feb4427a ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=4792df2a-ffb6-44a3-a28d-8408feb4427a ro quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
echo 'Loading Linux 2.6.35-22-generic ...'
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=4792df2a-ffb6-44a3-a28d-8408feb4427a ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-22-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos11)'
search --no-floppy --fs-uuid --set 4792df2a-ffb6-44a3-a28d-8408feb4427a
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 5aec8239ec821005
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
3.输入sudo fdisk -l之后的显示如下:

Device Boot Start End Blocks Id System
/dev/sda1 * 1 3037 24391602 7 HPFS/NTFS
/dev/sda2 3037 30401 219804353+ f W95 Ext'd (LBA)
/dev/sda5 4048 7782 30000000 7 HPFS/NTFS
/dev/sda6 9417 12992 28716451+ 7 HPFS/NTFS
/dev/sda7 17366 30401 104711638+ 7 HPFS/NTFS
/dev/sda8 3037 4047 8115200 83 Linux
/dev/sda9 7782 9416 13125632 83 Linux
/dev/sda10 12992 13241 1999872 82 Linux swap / Solaris
/dev/sda11 13241 17365 33131520 83 Linux
(windows系统装于硬盘下第一个分区,Ubuntu装于/dev/sda11)

4.使用过的解决方法如下,均无法解决此问题:
(1) sudo update-grup
(2)进入后采用“C”命令运行
[a]root (hd0,0)(显示no such partition)【输入root (hd0,1)后显示为什么ntfs】
chainloader +1
[c]boot
【结果】继续跳回最初的选择界面。

5.本人电脑是上网本,没有光驱,没有启动盘。
希望我把问题说明白了,请各位高手指点呀~~
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: windows启动陷入死循环(处女帖)

#2

帖子 onshoestring » 2011-04-24 15:02

代码: 全选

sudo fdisk -lu
结果贴上来
mushui1989
帖子: 4
注册时间: 2011-04-24 14:29

Re: windows启动陷入死循环(处女帖)

#3

帖子 mushui1989 » 2011-04-24 16:37

Device Boot Start End Blocks Id System
/dev/sda1 * 63 48783266 24391602 7 HPFS/NTFS
/dev/sda2 48783358 488392064 219804353+ f W95 Ext'd (LBA)
/dev/sda5 65015180 125015179 30000000 7 HPFS/NTFS
/dev/sda6 151268103 208701005 28716451+ 7 HPFS/NTFS
/dev/sda7 278968788 488392064 104711638+ 7 HPFS/NTFS
/dev/sda8 48783360 65013759 8115200 83 Linux
/dev/sda9 125016064 151267327 13125632 83 Linux
/dev/sda10 208701440 212701183 1999872 82 Linux swap / Solaris
/dev/sda11 212703232 278966271 33131520 83 Linux
结果如上
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: windows启动陷入死循环(处女帖)

#4

帖子 onshoestring » 2011-04-24 17:06

命令仅对楼主,他人勿试:
第一步:

代码: 全选

sudo grub-install /dev/sda
sudo update
第二步:

代码: 全选

sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=63 skip=48783266
头像
TeliuTe
论坛版主
帖子: 7668
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: windows启动陷入死循环(处女帖)

#5

帖子 TeliuTe » 2011-04-24 17:40

看了一下我的grub.cfg,没发现有什么不同:

代码: 全选

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
	insmod part_msdos
	insmod ntfs
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 4028b77b28b76f12
	drivemap -s (hd0) ${root}
	chainloader +1
}
mushui1989
帖子: 4
注册时间: 2011-04-24 14:29

Re: windows启动陷入死循环(处女帖)

#6

帖子 mushui1989 » 2011-04-24 21:30

感谢oneshoestring,问题已解决。 :em11

输入后的具体变化如下:
输入——sudo grub-install /dev/sda
显示——Installation finished.No error reported.
输入——sudo update
显示——command not found
输入——sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=63 skip=48783266
显示——1+0 records in. 1+0 records out. 512 bytes(512 B) copied,0.0168027s, 30.5kB/s

顺便请问oneshoestring,你是如何看出我启动项的问题的,我的启动项是哪里出的问题,你的给出的命令是针对什么在执行的?
我不仅想知其然,还想知其所以然。
还望oneshoestring耐心解释一下 :em06 谢谢啦~~~
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: windows启动陷入死循环(处女帖)

#7

帖子 onshoestring » 2011-04-24 21:47

输入——sudo update
显示——command not found
应该是sudo update-grub,漏打上了。
1.打开电脑后,启动界面如下:
Ubuntu, with Linux 2.6.35-28-generic
Ubuntu, with Linux 2.6.35-28-generic (recovery mode)
Ubuntu, with Linux 2.6.35-22-generic
Ubuntu, with Linux 2.6.35-22-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Microsoft Windows XP Professional (on /dev/sda1)
于是,选择最后一项,之后进入一个空白界面,光标在左上角闪了几下就又跳回这个界面。
这个现象就是grub2错装到sda1的pbr。
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 4028b77b28b76f12
drivemap -s (hd0) ${root}
chainloader +1
}
按 "Microsoft Windows XP Professional (on /dev/sda1)" 菜单项,执行chainloader到sda1的pbr。接着运行sda1的pbr里的代码(错装的grub2代码),自然就
选择最后一项,之后进入一个空白界面,光标在左上角闪了几下就又跳回这个界面。
修复有个顺序,不可错,先装grub2到mbr,保证ubuntu能正常启动。
再修复sda1的pbr,用的billbear的dd大法。这里要感谢billbear。链接:http://www.linux-wiki.cn/index.php?titl ... iant=zh-cn
没看懂billbear文章的不要试。
mushui1989
帖子: 4
注册时间: 2011-04-24 14:29

Re: windows启动陷入死循环(处女帖)

#8

帖子 mushui1989 » 2011-04-24 23:27

多谢多谢,受教了,希望以后技术提高后,自己也能帮助更多的人~~~
好好学习喽~~~
回复