Sunday, May 5, 2024
 Popular · Latest · Hot · Upcoming
2
rated 0 times [  2] [ 0]  / answers: 1 / hits: 4565  / 1 Year ago, sat, november 26, 2022, 7:10:21

I am dual-booting Windows 7 and Ubuntu 12.04. I reduced my Windows 7 partition and increased my Ubuntu partition using gparted from a 12.04 live CD. Everything was fine for about a week. Then the other day I booted and was met with "grub rescue." I purged and re-installed both grub and then grub2 as per the many tutorials on line, but all efforts have met with the same results: It seems that os-prober sees my 2 Windows 7 (actual and restore) partitions, as well as the Ubuntu 12.04 LTS partition; but when I run any variant of update-grub or update-grub2, it only detects the 2 Windows 7 partitions. As a result I cannot boot into Ubuntu (which is where 99% of my work is). Here is the output of bootinfoscript:



    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
for (,msdos5)/boot/grub on this drive.

sda1: __________________________________________________________________________

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

sda2: __________________________________________________________________________

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: /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda3: __________________________________________________________________________

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:

sda4: __________________________________________________________________________

File system: Extended Partition
Boot sector type: -
Boot sector info:

sda5: __________________________________________________________________________

File system: ext4
Boot sector type: Grub2 (v1.99)
Boot sector info: Grub2 (v1.99) is installed in the boot sector of sda5
and looks at sector 525161552 of the same hard drive
for core.img. core.img is at this location and looks
for (,msdos5)/boot/grub on this drive.
Operating System: Ubuntu 12.04 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sda6: __________________________________________________________________________

File system:
Boot sector type: -
Boot sector info:
Mounting failed: mount: unknown filesystem type ''

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition Boot Start Sector End Sector # of Sectors Id System

/dev/sda1 2,048 206,847 204,800 7 NTFS / exFAT / HPFS
/dev/sda2 206,848 504,360,959 504,154,112 7 NTFS / exFAT / HPFS
/dev/sda3 591,218,688 625,137,663 33,918,976 7 NTFS / exFAT / HPFS
/dev/sda4 504,360,960 591,218,687 86,857,728 5 Extended
/dev/sda5 * 504,363,008 583,360,511 78,997,504 83 Linux
/dev/sda6 583,362,560 591,218,687 7,856,128 82 Linux swap / Solaris


"blkid" output: ________________________________________________________________

Device UUID TYPE LABEL

/dev/loop0 squashfs
/dev/sda1 DA669D8C669D69D1 ntfs System Reserved
/dev/sda2 BAAAA703AAA6BAF1 ntfs
/dev/sda3 8E22D1E022D1CCF9 ntfs OS Recovery
/dev/sda5 c35e7a0a-408c-4586-8a18-b3faa368ef3f ext4
/dev/sr0 iso9660 Ubuntu 12.04 LTS amd64

================================ Mount points: =================================

Device Mount_Point Type Options

/dev/loop0 /rofs squashfs (ro,noatime)
/dev /mnt/dev none (rw,bind)
/dev/pts /mnt/dev/pts none (rw,bind)
/dev/sda2 /media/BAAAA703AAA6BAF1 fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sda5 /media/c35e7a0a-408c-4586-8a18-b3faa368ef3f ext4 (rw,nosuid,nodev,uhelper=udisks)
/dev/sda5 /mnt ext4 (rw)
/dev/sr0 /cdrom iso9660 (ro,noatime)


=========================== sda5/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
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 video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
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
if background_color 44,0,30; 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
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
### END /etc/grub.d/10_linux ###

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

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root DA669D8C669D69D1
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 ###
--------------------------------------------------------------------------------

=============================== sda5/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>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda5 during installation
UUID=c35e7a0a-408c-4586-8a18-b3faa368ef3f / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
#UUID=a4d335d5-6a81-4af8-a1c7-3beeee8699a1 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
--------------------------------------------------------------------------------

=================== sda5: Location of files loaded by Grub: ====================

GiB - GB File Fragment(s)

= boot/grub/core.img 1
= boot/grub/grub.cfg 1

========= Devices which don't seem to have a corresponding hard drive: =========

sdb

=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt
xz: (stdin): Compressed data is corrupt
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in


And of sudo os-prober from 12.04 LiveCD:



/dev/sda1:Windows 7 (loader):Windows:chain
/dev/sda2:Windows 7 (loader):Windows1:chain
/dev/sda5:Ubuntu 12.04 LTS (12.04):Ubuntu:linux


I have read pretty much every guide, tutorial and question that exists out there for updating any version of grub, but nothing has worked. But what is most confusing is that os-prober sees the installation; I would very much appreciate any assistance in this matter.


More From » 12.04

 Answers
2

Have you tried adding a "custom" menuentry to boot Ubuntu by editing grub.cfg?





I decided I might as well suggest this since even if it does not work perhaps it will result in a more useful error message.




  1. Boot your system using your 12.04 LiveCD.


  2. Mount the sda5 partition Ubuntu is installed on. In this example I will assume sda5 was mounted at /mnt using, for example, sudo mount -t ext4 /dev/sda5 /mnt.


  3. Determine which kernel(s) you have installed by listing the contents of the /mnt/boot directory. You will need this information to complete step (5) below.

    Note: The command below is one way you could do this.



    ls /mnt/boot/{initrd*,vmlinuz*}

  4. Use sudo to edit the file /mnt/boot/grub/grub.cfg (i.e. the grub.cfg file on your sda5 Ubuntu partition).


  5. Find the the lines below in the file. They should be ~10 lines before the end of the file.



    ### 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 ###


    Replace the above with the GRUB commands for the menuentry below.

    Important: In the example below you must replace ?.?.?-?? in the linux and initrd lines with the version number (from step (3)) of the kernel you wish to boot.



    ### BEGIN /etc/grub.d/40_custom ###
    menuentry 'Ubuntu on sda5' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
    linux /boot/vmlinuz-?.?.?-??-generic root=UUID=c35e7a0a-408c-4586-8a18-b3faa368ef3f ro quiet splash
    initrd /boot/initrd.img-?.?.?-??-generic
    }
    ### END /etc/grub.d/40_custom ###

  6. Reboot and see if this custom entry allows you to boot Ubuntu from /dev/sda5.







If the suggestion above worked, then I would suggest trying the following.




  • Use sudo to edit the file /etc/grub.d/40_cutom and append the
    menuentry commands from step (5) to the end of the file. This way the
    menu entry will not be lost if you run update-grub.


    Warning: Do not delete the two lines below! They need to be at the beginning of the file 40_custom for update-grub to work properly.



    #!/bin/sh
    exec tail -n +3 $0

  • Try reinstalling GRUB yet one more time using the command below. (Why
    not?)



    sudo grub-install --recheck /dev/sda






Update responding to comment that kernel files are missing from /boot





I've never run into a situation where the kernel files were missing from /boot. My first concern would be that if your kernel files are missing, then something else could be seriously wrong with the Ubuntu installed on sda5.



I suggest that you update your question and its title to reflect that there are no kernel files in /boot. Doing this increases your chances of getting a better answer from someone else.



I searched AskUnbuntu for a similar question, but all I found was the one linked below.

How to restore a system after accidentally removing all kernels?



The best answer to that question was to chroot and then try re-installing the kernel which you say you've already tried. The only change I could suggest is you try again using these commands. (Note: sudo was not used below because if you chroot you already are root.)




apt-get update
apt-get --reinstall install linux-generic linux-image-generic linux-headers-generic




  • Note: If the above appears to work it is probably safest to also run

    grub-install --recheck /dev/sda



The manpage for update-initramfs may also help provide some context about what happens when a kernel is "installed".



In hindsight I should have realized something was wrong from reading your BootInfo summary. It ends with the excerpt below.



=================== sda5: Location of files loaded by Grub: ====================

GiB - GB File Fragment(s)

= boot/grub/core.img 1
= boot/grub/grub.cfg 1

========= Devices which don't seem to have a corresponding hard drive: =========

sdb

=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt
xz: (stdin): Compressed data is corrupt
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in


But instead of the errors above I should have expected to see something like the excerpt below from a BootInfo summary I created as an example.



=================== sda5: Location of files loaded by Grub: ====================

GiB - GB File Fragment(s)

23.440826416 = 25.169395712 boot/grub/core.img 1
23.440864563 = 25.169436672 boot/grub/grub.cfg 1
18.791522980 = 20.177244160 boot/initrd.img-3.2.0-23-generic 1
25.439197540 = 27.315130368 boot/vmlinuz-3.2.0-23-generic 1
18.791522980 = 20.177244160 initrd.img 1
25.439197540 = 27.315130368 vmlinuz 1


ADDITIONAL INFORMATION :
=================== log of boot-repair 2012-06-13__16h58 ===================
boot-repair version : 3.18-0ppa25~precise
boot-sav version : 3.19-0ppa14~precise
glade2script version : 0.3.2.1-0ppa7~precise
boot-repair is executed in live-session (Ubuntu 12.04 LTS , precise , Ubuntu , x86_64)

=================== OSPROBER:
/dev/sda1:Windows 7 (loader):Windows:chain
/dev/sda5:Ubuntu 12.04 LTS (12.04):Ubuntu:linux

... et cetera ....




[#37667] Sunday, November 27, 2022, 1 Year  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ngthmated

Total Points: 12
Total Questions: 115
Total Answers: 113

Location: Saint Vincent and the Grenadines
Member since Wed, Apr 21, 2021
3 Years ago
;