Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I just installed 12.04, clean, from a USB memory stick, to an Asus netbook. As sda is only 4GB, I made a 1GB partition on sdb for /var (along with a partition for swap and /home). I used the desktop i386 iso with unetbootin to load the memory stick. Everything seemed to have worked just fine, and the netbook had been running 11.10 just fine. However, after restarting, I get 3 "error: no such partition" errors from grub at the boot menu.

I've started the machine back up with the memory stick to look around. The latest grub is installed on /dev/sda. (I thought maybe it hadn't "taken.") grub.cfg looks right, and the blkid's match the internal drives. (I thought maybe the memory stick fooled the grub installer, but it all looks good.) If I open a grub command prompt at the boot menu, and try to do an 'ls', I get more "error: no such partition" errors. I even get the message when I try 'help'.

I'm lost. Everything I know from 15 years of running Linux makes me think this thing should boot. I've never seen this kind of error before.


              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 (,msdos1)/boot/grub on this drive. => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 1 of the same hard drive for core.img. core.img is at this location and uses an embedded config file:

---------------------------------------------------------------------------
search.fs_uuid 11adf701-62df-45bd-949b-493582d3e6e4 root 
set prefix=($root)/boot/grub
---------------------------------------------------------------------------
-----.

=> Syslinux MBR (4.04 and higher) is installed in the MBR of /dev/sdc.

sda1: __________________________________________

File system:       ext4
Boot sector type:  -
Boot sector info: 
Operating System:  Ubuntu 12.04 LTS
Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sdb1: __________________________________________

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

sdb2: __________________________________________

File system:       ext4
Boot sector type:  -
Boot sector info: 
Operating System:  
Boot files:        

sdb3: __________________________________________

File system:       ext4
Boot sector type:  -
Boot sector info: 
Operating System:  
Boot files:        

sdc1: __________________________________________

File system:       vfat
Boot sector type:  SYSLINUX 4.05 20120131
Boot sector info:  Syslinux looks at sector 535 of /dev/sdc1 for its 
                   second stage. The integrity of Syslinux couldn't be 
                   verified (install gawk). SYSLINUX is installed in the  
                   directory. The 2 ADV sectors are not the same 
                   (corrupt). No errors found in the Boot Parameter Block.
Operating System:  
Boot files:        /syslinux.cfg /ldlinux.sys

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

Drive: sda _______________________________________

Disk /dev/sda: 4034 MB, 4034838528 bytes 109 heads, 2 sectors/track, 36149 cylinders, total 7880544 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 7,878,655 7,876,608 83 Linux

Drive: sdb _______________________________________

Disk /dev/sdb: 16.1 GB, 16139354112 bytes 255 heads, 63 sectors/track, 1962 cylinders, total 31522176 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/sdb1 * 2,048 3,999,743 3,997,696 82 Linux swap / Solaris /dev/sdb2 3,999,744 5,953,535 1,953,792 83 Linux /dev/sdb3 5,953,536 31,520,767 25,567,232 83 Linux

Drive: sdc _______________________________________

Disk /dev/sdc: 1059 MB, 1059323904 bytes 255 heads, 63 sectors/track, 128 cylinders, total 2068992 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/sdc1 * 63 2,056,319 2,056,257 e W95 FAT16 (LBA)

"blkid" output: ____________________________________

Device UUID TYPE LABEL

/dev/loop0 squashfs
/dev/sda1 11adf701-62df-45bd-949b-493582d3e6e4 ext4
/dev/sdb2 13102a87-bd10-48a1-9762-d52a025a7e87 ext4
/dev/sdb3 58611555-14fd-4f09-b397-667760592be6 ext4
/dev/sdc1 4EEA-35AF vfat SAS_SATA

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

Device Mount_Point Type Options

/dev/loop0 /rofs squashfs (ro,noatime) /dev/sdc1 /cdrom vfat (ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

=========================== sda1/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,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=auto load_video insmod gfxterm insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 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 menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=11adf701-62df-45bd-949b-493582d3e6e4 ro quiet splash $vt_handoff initrd /boot/initrd.img-3.2.0-23-generic-pae } menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 echo 'Loading Linux 3.2.0-23-generic-pae ...' linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=11adf701-62df-45bd-949b-493582d3e6e4 ro recovery nomodeset echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.2.0-23-generic-pae }

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,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 linux16 /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 11adf701-62df-45bd-949b-493582d3e6e4 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 }

END /etc/grub.d/20_memtest86+

BEGIN /etc/grub.d/30_os-prober

if [ "x${timeout}" != "x-1" ]; then if keystatus; then if keystatus --shift; then set timeout=-1 else set timeout=0 fi else if sleep --interruptible 3 ; then set timeout=0 fi fi fi

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

=============================== sda1/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).

#

proc /proc proc nodev,noexec,nosuid 0 0

/ was on /dev/sda1 during installation

UUID=11adf701-62df-45bd-949b-493582d3e6e4 / ext4 errors=remount-ro 0 1

/home was on /dev/sdb3 during installation

UUID=58611555-14fd-4f09-b397-667760592be6 /home ext4 defaults 0 2

/var was on /dev/sdb2 during installation

UUID=13102a87-bd10-48a1-9762-d52a025a7e87 /var ext4 defaults 0 2

swap was on /dev/sdb1 during installation

UUID=75c2cadb-a0b9-4888-a034-c1379420f015 none swap sw 0 0

/dev/mapper/cryptswap1 none swap sw 0 0

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

       GiB - GB             File                                 Fragment(s)

           =                boot/grub/core.img                             1
           =                boot/grub/grub.cfg                             1
           =                boot/initrd.img-3.2.0-23-generic-pae           1
           =                boot/vmlinuz-3.2.0-23-generic-pae              1
           =                initrd.img                                     1
           =                vmlinuz                                        1

============================== sdc1/syslinux.cfg: ==============================


default menu.c32 prompt 0 menu title UNetbootin timeout 100

label unetbootindefault menu label Default kernel /ubnkern append initrd=/ubninit file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --

label ubnentry0 menu label ^Help kernel /ubnkern append initrd=/ubninit

label ubnentry1 menu label ^Try Ubuntu without installing kernel /casper/vmlinuz append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --

label ubnentry2 menu label ^Install Ubuntu kernel /casper/vmlinuz append initrd=/casper/initrd.lz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --

label ubnentry3 menu label ^Check disc for defects kernel /casper/vmlinuz append initrd=/casper/initrd.lz boot=casper integrity-check quiet splash --

label ubnentry4 menu label Test ^memory kernel /install/mt86plus append initrd=/ubninit

label ubnentry5 menu label ^Boot from first hard disk kernel /ubnkern append initrd=/ubninit


================= sdc1: Location of files loaded by Syslinux: ==================

       GiB - GB             File                                 Fragment(s)

        ?? = ??             ldlinux.sys                                    2
        ?? = ??             menu.c32                                       1
        ?? = ??             syslinux.cfg                                   1

============== sdc1: Version of COM32(R) files used by Syslinux: ===============

menu.c32 : COM32R module (v4.xx)

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

sdd

=============================== 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 awk: cmd. line:36: Math support is not compiled in awk: cmd. line:36: Math support is not compiled in awk: cmd. line:36: Math support is not compiled in awk: cmd. line:36: Math support is not compiled in

share|improve this question
    
SOLVED (sort of). Swapping the boot order preference to my secondary "drive" fixed the booting problem. (On these netbooks, the SSD is split into a smaller, faster space, and a larger, slower one.) Ubuntu installed itself correctly (it put / on sda), but there's still the question of why the grub configuration on sda doesn't work, and the one on sdb DOES, while magically pointing back at sda. –  David Krider May 7 '12 at 20:49
    
SOLVED (for real). I got back into an all-setup-and-mounted chroot environment, and then did a grub-install --no-floppy --recheck /dev/sda and I'm booting from the first hard drive. –  David Krider May 8 '12 at 13:43
add comment

2 Answers 2

My guess is that your firmware (for whatever reason) only presents one drive to the bootloader, the drive from which it "booted" (read and executed the code in the MBR). That explains why when sda is first in the boot you're able to boot, because only one drive is involved. You should be able to confirm this by running "ls" from the working grub on sda, and see that only one drive is listed.

The reason that you got "no such partition" errors is that all commands in grub are stored in modules, and if a module for a given command hasn't been loaded yet when you try to run the command (like "help") grub tries to read $prefix/help.mod. When it turns out that the partition in $prefix doesn't exist, you get this error message. Grub's core.img sometimes has to fit in a very small area and so very few modules are included in it by default, meaning very few commands are available if /boot/grub/ can't be read. The most useful of these commmands are listed here: http://www.gnu.org/software/grub/manual/grub.html#GRUB-only-offers-a-rescue-shell (note that while a simple "ls" can function, "ls -l" and other options to ls require more modules).

share|improve this answer
    
When booting from the "second" disk, I see all the partitions I expect, but reversed: 3 partitions (swap, /var, and /home) on sda, and 1 (/) on sdb. So the "drives" do appear to the BIOS and grub as two separate drives. The installer seems to have sorted this all out, and told grub to boot from sdb1, and mounting the partitions in /etc/fstab makes everything right. I've been trying to use grub (installed under the memory-stick environment) to force a "normal" environment of using sda in it's proper boot order, but it can't find /boot/grub/stage1. I don't understand why. –  David Krider May 8 '12 at 12:40
add comment

I'm as bit suspicious of your swap being on sdb1 .... I could be wrong, but .... I've not actually done a system in which the OS is spread over two hard drives as is yours. Home on a different drive, yes, but swap on a different drive, I'm just not sure. Especially as the first partition.

You might try booting into the 'Try Ubuntu' option on the USB stick and snooping around there. You could also try re-installing grub from there and updating it. I'm sure with youre experience you'll know how to do that.

share|improve this answer
    
Your boot system has this to say (above) "Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 1 of the same hard drive for core.img" I think it might be trying to find the image on the swap partition - but I could be wrong .... –  barrydrake May 7 '12 at 20:37
    
I used the "Try" and used a command prompt to mount /dev/sda1 on /mnt, /dev/sda2 on /mnt/var, bind-mounted /dev, /proc, and /sys, and then tried 'update-grub'. No change. –  David Krider May 7 '12 at 20:39
    
Yes - that wasn't what I meant. I meant the try option when booting the live-DVD so you can have Ubuntu running from the DVD in order to see what your installation looks like. –  barrydrake May 8 '12 at 7:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.