BOOTMGR is missing [LÖST]
Postat: 15 maj 2010, 15:47
Jag kör dual-boot med Ubuntu 10.04 och Windows 7. När jag igår (fredag den 14 maj) ville starta Windows 7 hände inget mer än att följande felmeddelande visades:
Senaste felfria start av Windows 7 skedde söndag den 9 maj och min gissning är att någon grub-uppdatering under den gångna veckan har förstört boot-sektorn för Windows 7.
Nu har jag löst problemet och behöver alltså ingen hjälp med att få igång mitt Windows 7-system, men jag är intresserad av svar och kommentarer på följande frågor:
1. Har någon annan forum-medlem råkat ut för samma sak mellan den 9 och 14 maj?
2. Kan det vara en grub-uppdatering som orsakat problemet? Om någon grub-uppdatering inte är orsak, vad kan det då vara? (Jag har råkat ut för ett liknande problem tidigare p.g.a. av en grub-uppdatering och då vet jag att det även kom upp en dialogruta om var grub-uppdateringen skulle skrivas. Nu minns jag inte om det har skett någon grub-uppdatering mellan den 9 och 14 maj, men jag är säker på att det inte har kommit upp någon dialogruta angående grub-uppdatering.)
3. Är det dags att bugg-rapportera? Jag har sökt i Launchpad och det finns en del liknade gamla buggar, men jag har inte hittat något som är relaterat till Ubuntu 10.04.
4. Finns det något enklare och bättre sätt att lösa problemet än min beskrivning nedan?
Sammanfattningvis så gjorde jag två misslyckade försök att lösa problemet, men lyckades den tredje gången då jag startade datorn med en "Windows 7 Recovery Disc 64-Bit (x64)" från http://neosmart.net/blog/2009/windows-7 ... air-discs/ och nyttjade verktyget "Startup Repair" som "automagiskt" löste allting. I detalj så gick det till så här:
Först sökte jag här och på Ubuntu Forums. Genom att kombinera ihop tips och råd från http://ubuntu-se.org/phpBB3/viewtopic.php?f=200&t=48223 , http://ubuntuforums.org/showthread.php?t=1483291 och http://ubuntuforums.org/showthread.php?t=1014708 så hittade jag min lösning.
Till att börja med så visste jag från grub-menyn att Windows 7 finns på partitionen sda2 och att sda1 används för reparations- och återställningsverktyg (grub betecknar det som en Vista-installation).
Kommandot " sudo fdisk -l " resulterade i
Boot Info Script från http://bootinfoscript.sourceforge.net/ resulterade i
Jag ser inga fel hos informationen hos sda2, t.ex. att det står något om grub eller grub2, men å andra sidan står det inget alls på raden om "Boot files".
Jag tog även och listade innehållet i den bootsektorn med hjälp av kommandot " sudo dd if=/dev/sda1 count=1 | hexdump -C " och fick då resultatet
På slutet står det "BOOTMGR is missing" vilket ju anges som felmeddelande vid försök av start av Windows 7-installationen.
Först försökte jag lösa problemet med hjälp av programmet "testdisk" i enlighet med guiden som rubriken "Solution" på http://sourceforge.net/apps/mediawiki/b ... oot_Sector . Men det gick inte att fullfölja (antagligen p.g.a. att boot-sektorn var skadad).
Nästa steg var att ta hem en "Windows 7 Recovery Disc 64-Bit (x64)" från http://neosmart.net/blog/2009/windows-7 ... pair-discs , starta datorn med denna CD, välja svenskt tangentbord, invänta att Windows 7-partitionen hittades och sedan fortsätta med det förvalda "Use recovery tools [...]", välja "Command Prompt" (d.v.s. ett terminalfönster) och där ge kommandot
men det hade ingen effekt.
Det som fungerade var att starta datorn med "Windows 7 Recovery Disc 64-Bit (x64)", men att inte välja "Command Prompt" för att köra fixboot-kommandot, utan istället välja "Startup Repair" som fixade allting.
P.S. Det blev en lång beskrivning för en ganska lösning på ett mycket irriterande problem, men förhoppningsvis så dels har jag lärt mig något och dels kan detta vara till nytta för andra.
Kod: Markera allt
BOOTMGR is missing
Press Ctrl+Alt+Del to restart
Nu har jag löst problemet och behöver alltså ingen hjälp med att få igång mitt Windows 7-system, men jag är intresserad av svar och kommentarer på följande frågor:
1. Har någon annan forum-medlem råkat ut för samma sak mellan den 9 och 14 maj?
2. Kan det vara en grub-uppdatering som orsakat problemet? Om någon grub-uppdatering inte är orsak, vad kan det då vara? (Jag har råkat ut för ett liknande problem tidigare p.g.a. av en grub-uppdatering och då vet jag att det även kom upp en dialogruta om var grub-uppdateringen skulle skrivas. Nu minns jag inte om det har skett någon grub-uppdatering mellan den 9 och 14 maj, men jag är säker på att det inte har kommit upp någon dialogruta angående grub-uppdatering.)
3. Är det dags att bugg-rapportera? Jag har sökt i Launchpad och det finns en del liknade gamla buggar, men jag har inte hittat något som är relaterat till Ubuntu 10.04.
4. Finns det något enklare och bättre sätt att lösa problemet än min beskrivning nedan?
Sammanfattningvis så gjorde jag två misslyckade försök att lösa problemet, men lyckades den tredje gången då jag startade datorn med en "Windows 7 Recovery Disc 64-Bit (x64)" från http://neosmart.net/blog/2009/windows-7 ... air-discs/ och nyttjade verktyget "Startup Repair" som "automagiskt" löste allting. I detalj så gick det till så här:
Först sökte jag här och på Ubuntu Forums. Genom att kombinera ihop tips och råd från http://ubuntu-se.org/phpBB3/viewtopic.php?f=200&t=48223 , http://ubuntuforums.org/showthread.php?t=1483291 och http://ubuntuforums.org/showthread.php?t=1014708 så hittade jag min lösning.
Till att börja med så visste jag från grub-menyn att Windows 7 finns på partitionen sda2 och att sda1 används för reparations- och återställningsverktyg (grub betecknar det som en Vista-installation).
Kommandot " sudo fdisk -l " resulterade i
Kod: Markera allt
Disk /dev/sda: 500,1 GB, 500107862016 byte
255 huvuden, 63 sektorer/spår, 60801 cylindrar
Enheter = cylindrar av 16065 · 512 = 8225280 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Diskidentifierare: 0x4674c0a3
Enhet Start Början Slut Block Id System
/dev/sda1 1 1783 14317568 27 Okänd
/dev/sda2 * 1783 1796 102400 7 HPFS/NTFS
/dev/sda3 1796 31226 236396568 7 HPFS/NTFS
/dev/sda4 31226 60802 237568001 5 Utökad
/dev/sda5 31226 60280 233372672 83 Linux
/dev/sda6 60280 60802 4194304 82 Linux växling / Solaris
Kod: Markera allt
Boot Info Script 0.55 dated February 15th, 2010
============================= Boot Info Summary: ==============================
=> Grub 2 is installed in the MBR of /dev/sda and looks on the same drive in
partition #5 for /boot/grub.
sda1: _________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files/dirs: /bootmgr /boot/bcd
sda2: _________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files/dirs:
sda3: _________________________________________________________________________
File system: ntfs
Boot sector type: Windows Vista/7
Boot sector info: No errors found in the Boot Parameter Block.
Operating System: Windows 7
Boot files/dirs: /Windows/System32/winload.exe
sda4: _________________________________________________________________________
File system: Extended Partition
Boot sector type: -
Boot sector info:
sda5: _________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 10.04 LTS
Boot files/dirs: /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img
sda6: _________________________________________________________________________
File system: swap
Boot sector type: -
Boot sector info:
=========================== Drive/Partition Info: =============================
Drive: sda ___________________ _____________________________________________________
Disk /dev/sda: 500,1 GB, 500107862016 byte
255 huvuden, 63 sektorer/spår, 60801 cylindrar, totalt 976773168 sektorer
Enheter = sektorer av 1 · 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
Partition Boot Start End Size Id System
/dev/sda1 2,048 28,637,183 28,635,136 27 Hidden HPFS/NTFS
/dev/sda2 * 28,637,184 28,841,983 204,800 7 HPFS/NTFS
/dev/sda3 28,841,984 501,635,119 472,793,136 7 HPFS/NTFS
/dev/sda4 501,637,118 976,773,119 475,136,002 5 Extended
/dev/sda5 501,637,120 968,382,463 466,745,344 83 Linux
/dev/sda6 968,384,512 976,773,119 8,388,608 82 Linux swap / Solaris
blkid -c /dev/null: ____________________________________________________________
Device UUID TYPE LABEL
/dev/sda1 BA5611BB56117979 ntfs Recovery
/dev/sda2 AC729786729753C4 ntfs System Reserved
/dev/sda3 98F89944F8992194 ntfs
/dev/sda4: PTTYPE="dos"
/dev/sda5 2641e235-07dd-4f4c-b282-8a96c14888b9 ext4
/dev/sda6 34e56a1f-4400-4812-8a65-53aa9ffa86b4 swap
/dev/sda: PTTYPE="dos"
============================ "mount | grep ^/dev output: ===========================
Device Mount_Point Type Options
/dev/sda5 / ext4 (rw,errors=remount-ro)
=========================== sda5/boot/grub/grub.cfg: ===========================
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/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
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
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
set locale_dir=($root)/boot/grub/locale
set lang=sv
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, med Linux 2.6.33-020633-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
linux /boot/vmlinuz-2.6.33-020633-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro quiet splash
initrd /boot/initrd.img-2.6.33-020633-generic
}
menuentry 'Ubuntu, med Linux 2.6.33-020633-generic (återställningsläge)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
echo 'Läser in Linux 2.6.33-020633-generic ...'
linux /boot/vmlinuz-2.6.33-020633-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro single
echo 'Läser in initial ramdisk ...'
initrd /boot/initrd.img-2.6.33-020633-generic
}
menuentry 'Ubuntu, med Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro quiet splash
initrd /boot/initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu, med Linux 2.6.32-22-generic (återställningsläge)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
echo 'Läser in Linux 2.6.32-22-generic ...'
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro single
echo 'Läser in initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu, med Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro quiet splash
initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, med Linux 2.6.32-21-generic (återställningsläge)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
echo 'Läser in Linux 2.6.32-21-generic ...'
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 ro single
echo 'Läser in initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 2641e235-07dd-4f4c-b282-8a96c14888b9
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set ba5611bb56117979
chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" {
insmod ntfs
set root='(hd0,2)'
search --no-floppy --fs-uuid --set ac729786729753c4
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 ###
=============================== sda5/etc/fstab: ===============================
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' 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>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda5 during installation
UUID=2641e235-07dd-4f4c-b282-8a96c14888b9 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=34e56a1f-4400-4812-8a65-53aa9ffa86b4 none swap sw 0 0
=================== sda5: Location of files loaded by Grub: ===================
381.5GB: boot/grub/core.img
433.2GB: boot/grub/grub.cfg
381.5GB: boot/initrd.img-2.6.32-21-generic
381.6GB: boot/initrd.img-2.6.32-22-generic
381.6GB: boot/initrd.img-2.6.33-020633-generic
381.5GB: boot/vmlinuz-2.6.32-21-generic
261.9GB: boot/vmlinuz-2.6.32-22-generic
257.9GB: boot/vmlinuz-2.6.33-020633-generic
381.6GB: initrd.img
381.6GB: initrd.img.old
261.9GB: vmlinuz
257.9GB: vmlinuz.old
Jag tog även och listade innehållet i den bootsektorn med hjälp av kommandot " sudo dd if=/dev/sda1 count=1 | hexdump -C " och fick då resultatet
Kod: Markera allt
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
00000010 00 00 00 00 00 f8 00 00 3f 00 ff 00 00 08 00 00 |........?.......|
00000020 00 00 00 00 80 00 80 00 ff ef b4 01 00 00 00 00 |................|
00000030 00 00 0c 00 00 00 00 00 02 00 00 00 00 00 00 00 |................|
00000040 f6 00 00 00 01 00 00 00 79 79 11 56 bb 11 56 ba |........yy.V..V.|
00000050 00 00 00 00 fa 33 c0 8e d0 bc 00 7c fb 68 c0 07 |.....3.....|.h..|
00000060 1f 1e 68 66 00 cb 88 16 0e 00 66 81 3e 03 00 4e |..hf......f.>..N|
00000070 54 46 53 75 15 b4 41 bb aa 55 cd 13 72 0c 81 fb |TFSu..A..U..r...|
00000080 55 aa 75 06 f7 c1 01 00 75 03 e9 dd 00 1e 83 ec |U.u.....u.......|
00000090 18 68 1a 00 b4 48 8a 16 0e 00 8b f4 16 1f cd 13 |.h...H..........|
000000a0 9f 83 c4 18 9e 58 1f 72 e1 3b 06 0b 00 75 db a3 |.....X.r.;...u..|
000000b0 0f 00 c1 2e 0f 00 04 1e 5a 33 db b9 00 20 2b c8 |........Z3... +.|
000000c0 66 ff 06 11 00 03 16 0f 00 8e c2 ff 06 16 00 e8 |f...............|
000000d0 4b 00 2b c8 77 ef b8 00 bb cd 1a 66 23 c0 75 2d |K.+.w......f#.u-|
000000e0 66 81 fb 54 43 50 41 75 24 81 f9 02 01 72 1e 16 |f..TCPAu$....r..|
000000f0 68 07 bb 16 68 70 0e 16 68 09 00 66 53 66 53 66 |h...hp..h..fSfSf|
00000100 55 16 16 16 68 b8 01 66 61 0e 07 cd 1a 33 c0 bf |U...h..fa....3..|
00000110 28 10 b9 d8 0f fc f3 aa e9 5f 01 90 90 66 60 1e |(........_...f`.|
00000120 06 66 a1 11 00 66 03 06 1c 00 1e 66 68 00 00 00 |.f...f.....fh...|
00000130 00 66 50 06 53 68 01 00 68 10 00 b4 42 8a 16 0e |.fP.Sh..h...B...|
00000140 00 16 1f 8b f4 cd 13 66 59 5b 5a 66 59 66 59 1f |.......fY[ZfYfY.|
00000150 0f 82 16 00 66 ff 06 11 00 03 16 0f 00 8e c2 ff |....f...........|
00000160 0e 16 00 75 bc 07 1f 66 61 c3 a0 f8 01 e8 09 00 |...u...fa.......|
00000170 a0 fb 01 e8 03 00 f4 eb fd b4 01 8b f0 ac 3c 00 |..............<.|
00000180 74 09 b4 0e bb 07 00 cd 10 eb f2 c3 0d 0a 41 20 |t.............A |
00000190 64 69 73 6b 20 72 65 61 64 20 65 72 72 6f 72 20 |disk read error |
000001a0 6f 63 63 75 72 72 65 64 00 0d 0a 42 4f 4f 54 4d |occurred...BOOTM|
000001b0 47 52 20 69 73 20 6d 69 73 73 69 6e 67 00 0d 0a |GR is missing...|
000001c0 42 4f 4f 54 4d 47 52 20 69 73 20 63 6f 6d 70 72 |BOOTMGR is compr|
000001d0 65 73 73 65 64 00 0d 0a 50 72 65 73 73 20 43 74 |essed...Press Ct|
000001e0 72 6c 2b 41 6c 74 2b 44 65 6c 20 74 6f 20 72 65 |rl+Alt+Del to re|
000001f0 73 74 61 72 74 0d 0a 00 8c a9 be d6 00 00 55 aa |start.........U.|
00000200
Först försökte jag lösa problemet med hjälp av programmet "testdisk" i enlighet med guiden som rubriken "Solution" på http://sourceforge.net/apps/mediawiki/b ... oot_Sector . Men det gick inte att fullfölja (antagligen p.g.a. att boot-sektorn var skadad).
Nästa steg var att ta hem en "Windows 7 Recovery Disc 64-Bit (x64)" från http://neosmart.net/blog/2009/windows-7 ... pair-discs , starta datorn med denna CD, välja svenskt tangentbord, invänta att Windows 7-partitionen hittades och sedan fortsätta med det förvalda "Use recovery tools [...]", välja "Command Prompt" (d.v.s. ett terminalfönster) och där ge kommandot
Kod: Markera allt
bootrec.exe /fixboot
Det som fungerade var att starta datorn med "Windows 7 Recovery Disc 64-Bit (x64)", men att inte välja "Command Prompt" för att köra fixboot-kommandot, utan istället välja "Startup Repair" som fixade allting.
P.S. Det blev en lång beskrivning för en ganska lösning på ett mycket irriterande problem, men förhoppningsvis så dels har jag lärt mig något och dels kan detta vara till nytta för andra.