解决了
必须将由于某种原因标记为“交换”的 Windows 系统分区类型更改为 NTFS 系统类型。我通过登录 Linux 并在分区管理器中更改它来做到这一点。我重新启动,从 GRUB 菜单加载我的 Windows7,最后能够加载登录屏幕。
老问题
因此,我将 Linux Ubuntu 安装在单独的分区上,以避免与 Windows 安装发生冲突。我在解决“同时安装”问题时遇到了很多问题。在我终于能够做到这一点并在成功安装 Linux 后重新启动计算机后,我无法从 Windows 7 启动。
我尝试了很多解决方案,但没有一个能够帮助我。
一些值得一提的相关事项:
当前操作系统为 Windows 7,预装了 Windows 8(但未激活)。我的电脑上没有 CD 读取器。
我有一个显示 Windows 7 的 grub 菜单,但单击它时,它卡在 Windows 徽标上。它只是一直停留在那里,一直加载。
我运行了 bootinfo 脚本;其结果如下:
Boot Info Script 0.61 [1 April 2012]
============================= Boot Info Summary: ===============================
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img. core.img is at this location and looks
in partition 112 for .
sda1: __________________________________________________________________________
File system: vfat
Boot sector type: Dell Utility: FAT16
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /DELLBIO.BIN /DELLRMK.BIN /COMMAND.COM
sda2: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /bootmgr /Boot/BCD
sda3: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System: Windows 7
Boot files: /ubuntu/winboot/menu.lst /bootmgr /Boot/BCD
/Windows/System32/winload.exe /ubuntu/winboot/wubildr
/ubuntu/winboot/wubildr.mbr
sda4: __________________________________________________________________________
File system: ext4
Boot sector type: Grub2 (v1.99)
Boot sector info: Grub2 (v1.99) is installed in the boot sector of sda4
and looks at sector 950258656 of the same hard drive
for core.img. core.img is at this location and looks
in partition 112 for .
Operating System: Ubuntu 14.04.3 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab
============================ Drive/Partition Info: =============================
Drive: sda _____________________________________________________________________
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
Partition Boot Start Sector End Sector # of Sectors Id System
/dev/sda1 63 80,324 80,262 de Dell Utility
/dev/sda2 81,920 24,686,591 24,604,672 27 Hidden NTFS (Recovery Environment)
/dev/sda3 * 24,686,592 945,315,347 920,628,756 82 Linux swap / Solaris
/dev/sda4 945,315,840 976,771,071 31,455,232 83 Linux
"blkid" output: ________________________________________________________________
Device UUID TYPE LABEL
/dev/sda1 5450-4444 vfat DellUtility
/dev/sda2 D68A2A4B8A2A2887 ntfs RECOVERY
/dev/sda3 06EE2C2BEE2C1609 ntfs OS
/dev/sda4 43da45a0-e34e-41ce-ae71-5cf02c75de0a ext4
================================ Mount points: =================================
Device Mount_Point Type Options
/dev/sda4 / ext4 (rw,errors=remount-ro)
======================== sda3/ubuntu/winboot/menu.lst: =========================
--------------------------------------------------------------------------------
debug off
hiddenmenu
default 0
timeout 0
fallback 1
title find /ubuntu/disks/boot/grub/menu.lst
find --set-root --ignore-floppies /ubuntu/disks/boot/grub/menu.lst
configfile /ubuntu/disks/boot/grub/menu.lst
title find /ubuntu/install/boot/grub/menu.lst
fallback 2
find --set-root --ignore-floppies /ubuntu/install/boot/grub/menu.lst
configfile /ubuntu/install/boot/grub/menu.lst
title find /menu.lst
fallback 3
find --set-root --ignore-floppies /menu.lst
configfile /menu.lst
title find /boot/grub/menu.lst
fallback 4
find --set-root --ignore-floppies /boot/grub/menu.lst
configfile /boot/grub/menu.lst
title find /grub/menu.lst
fallback 5
find --set-root --ignore-floppies /grub/menu.lst
configfile /grub/menu.lst
title commandline
commandline
title reboot
reboot
title halt
halt
--------------------------------------------------------------------------------
=========================== sda4/boot/grub/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
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
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 {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
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
if background_color 44,0,30,0; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
linux /boot/vmlinuz-3.16.0-57-generic root=UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.16.0-57-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
menuentry 'Ubuntu, with Linux 3.16.0-57-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-57-generic-advanced-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
echo 'Loading Linux 3.16.0-57-generic ...'
linux /boot/vmlinuz-3.16.0-57-generic root=UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.16.0-57-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-57-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-57-generic-recovery-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
recordfail
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
echo 'Loading Linux 3.16.0-57-generic ...'
linux /boot/vmlinuz-3.16.0-57-generic root=UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.16.0-57-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-30-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-30-generic-advanced-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
echo 'Loading Linux 3.16.0-30-generic ...'
linux /boot/vmlinuz-3.16.0-30-generic root=UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.16.0-30-generic
}
menuentry 'Ubuntu, with Linux 3.16.0-30-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-30-generic-recovery-43da45a0-e34e-41ce-ae71-5cf02c75de0a' {
recordfail
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
echo 'Loading Linux 3.16.0-30-generic ...'
linux /boot/vmlinuz-3.16.0-30-generic root=UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.16.0-30-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,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
knetbsd /boot/memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 43da45a0-e34e-41ce-ae71-5cf02c75de0a
else
search --no-floppy --fs-uuid --set=root 43da45a0-e34e-41ce-ae71-5cf02c75de0a
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-D68A2A4B8A2A2887' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 D68A2A4B8A2A2887
else
search --no-floppy --fs-uuid --set=root D68A2A4B8A2A2887
fi
parttool ${root} hidden-
chainloader +1
}
menuentry 'Windows 7 (loader) (on /dev/sda3)' --class windows --class os $menuentry_id_option 'osprober-chain-06EE2C2BEE2C1609' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 06EE2C2BEE2C1609
else
search --no-floppy --fs-uuid --set=root 06EE2C2BEE2C1609
fi
parttool ${root} hidden-
chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### 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 ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--------------------------------------------------------------------------------
=============================== sda4/etc/fstab: ================================
--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda4 during installation
UUID=43da45a0-e34e-41ce-ae71-5cf02c75de0a / ext4 errors=remount-ro 0 1
--------------------------------------------------------------------------------
=================== sda4: Location of files loaded by Grub: ====================
GiB - GB File Fragment(s)
=============================== StdErr Messages: ===============================
cat: /tmp/BootInfo-cGaxV0L8/Tmp_Log: No such file or directory
答案1
我建议进行启动修复
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
您可以从这里获取更多信息: https://help.ubuntu.com/community/Boot-Repair
“活动操作系统是 Windows 7,预装了 Windows 8(但未激活)。”这到底是什么意思?为什么您不能先升级到 Windows 8 或 Windows 10 - 拥有恢复磁盘(USB),然后再进行全新安装?由于这是全新安装,因此您不会丢失太多数据。
答案2
尝试改变grub配置文件适用于 Windows 7。
- 将系统启动到 GRUB 菜单。
- 选择(突出显示)GRUB 启动菜单项
Windows 7 (loader) (on /dev/sda3)
- 按下e编辑 Windows 7 的 GRUB 启动命令。
您当前的启动命令应如下所示:
insmod part_msdos
insmod ntfs
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 06EE2C2BEE2C1609
else
search --no-floppy --fs-uuid --set=root 06EE2C2BEE2C1609
fi
parttool ${root} hidden-
chainloader +1
将其更改为
insmod part_msdos
insmod ntfs
insmod ntldr
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 06EE2C2BEE2C1609
else
search --no-floppy --fs-uuid --set=root 06EE2C2BEE2C1609
fi
parttool ${root} hidden-
ntldr ($root)/bootmgr
- 添加命令
insmod ntldr
- 将命令更改
chainloader +1
为ntldr ($root)/bootmgr
按下F10使用这些编辑的命令进行启动。
如果成功加载 Windows 7,那么你可以让它永久
- 编辑文件
/etc/grub.d/40_custom
并添加第二个修改后的菜单项。 - 运行命令
update-grub
进行更新grub配置文件包含您的自定义条目。