Blank screen booting Linux

#1
My setup is as follows:

Dell Mini 9 with 64 GB disk. The disk is GPT and has 4 partitions:

EFI
Mac OS X 10.5.6 HFS+
Win 7 NTFS
Ubuntu ext3

This has taken me a couple of weeks to get to this point, including reinstalling Windows and Linux multiple times. Thankfully, I've been able to keep the initial Mac OS install.

Thanks to EASYBCD 2.0 (Beta Build 55), I am able to boot into Win7 and MacOS with no problem. Very cool.

The MacOS boot option seems to use NeoGRUB, and I'd like to think I can just simply (hah!) boot Linux. In the current Linux install, I told it not to install GRUB, and even so it made my computer unbootable. But never mind that, I got around that and as I said I can now successfully boot Win+Mac. From the wiki Linux article, I learned how to install GRUB to the Linux partition, and I tried that, but it did come up with an error.:

Running "embed /boot/grub/fat_stage1_5 (hd0,3)"... failed (this is not fatal)

Since your article said I might get an error, and to just run the setup command a second time, I did so, but got the same error. And again and again. Searching on this error didn't turn up much useful information. GRUB did, however, go on to report:

Running "install /boot/grub/stage1 (hd0,3) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded.

So, I added a Linux entry that pointed to this partition, but when I attempt to boot it, I get a blank screen.

One thing I notice is that in the settings, for entry #3, it shows a Drive of C:\ and a Bootloader Path of \NST\nst_ .mbr

That's right, there's a space between the _ and the . which I assume should have been filled in with something else. In the \NST directory, there exist three files, a menu.lst which appears to be the NeoGRUB data for the MacOS partition, the NeoGrub.mbr file, and the nst_mac.efi file.

What went wrong, and what can I do to fix it?
 

JustinW

Super Moderator
Staff member
#2
You need to add an entry for your linux install to \nst\menu.lst. Since you've installed grub to your linux partition, it would be much easier to have it point to that menu.lst for your linux entry if it already contains entries for booting your linux install. Have you tried re-adding the linux entry in the Windows bootloader using EasyBCD?
 
#3
Yeah, like Justin said, just add a new entry for Linux under the Linux tab in EasyBCD's Add/Remove Entries section, making sure to check that box that reads "Grub isn't installed to the bootsector", and this will give you a version of NeoGrub that reads the menu.lst on the Linux partition.

Cheers and best of luck. :smile:

-Coolname007
 
#4
When I just add a Linux entry, pointing to the appropriate partition, it just boots to a blank screen. When I check the box that says Grub isn't installed, I end up booted to a grub prompt, and I have no clue what to type there. I don't think this is what's intended.

What's the next troubleshooting step?
 
#5
When I just add a Linux entry, pointing to the appropriate partition, it just boots to a blank screen. When I check the box that says Grub isn't installed, I end up booted to a grub prompt, and I have no clue what to type there. I don't think this is what's intended.

What's the next troubleshooting step?
Post your Ubuntu menu.lst, located at /boot/grub/menu.lst on your Ubuntu partition (you can use your LiveCD to access the partition, while you're booting with it).

-Coolname007

Addendum:

And while you're at it, please post the output of:

sudo fdisk -l
while you're booted with the LiveCD. Just navigate to Applications>Accessories>Terminal, and then run that command. And that last letter is a lowercase "L", btw, not an capital "i"...:wink:

-Coolname007
 
Last edited:
#6
This is mildly confusing, of course, because when booted from the LiveUSB stick, /boot/grub is referring to a location on the stick. I assume what you are really interested in is the menu.lst on the linux partition that I want to boot from. Assuming that the folder "boot" in the root directory of that partition is what Linux would mount as /boot, then my sad report is that there is no grub folder there at all.

Here is the fdisk output:

ubuntu@ubuntu:~$ sudo fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 61.6 GB, 61633732608 bytes
255 heads, 63 sectors/track, 7493 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdc7cb276

Device Boot Start End Blocks Id System
/dev/sda1 1 26 204819+ ee GPT
/dev/sda2 26 3143 25035336 af Unknown
/dev/sda3 * 3143 6308 25426944 7 HPFS/NTFS
/dev/sda4 6308 7477 9389976 83 Linux

Disk /dev/sdb: 2063 MB, 2063597568 bytes
255 heads, 63 sectors/track, 250 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005cb6b

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 251 2015181 b W95 FAT32
Partition 1 has different physical/logical endings:
phys=(1023, 254, 63) logical=(250, 224, 63)
 
Last edited:
#8
This is mildly confusing, of course, because when booted from the LiveUSB stick, /boot/grub is referring to a location on the stick. I assume what you are really interested in is the menu.lst on the linux partition that I want to boot from. Assuming that the folder "boot" in the root directory of that partition is what Linux would mount as /boot, then my sad report is that there is no grub folder there at all.
Well, there's at least part of your problem! :brows: With no Grub folder on your Linux partition, then there's no way for your computer to boot Ubuntu. :wink: You will need to reinstall Grub (with the USB stick *out* of your computer), and make sure it gets installed to the Ubuntu partition...unless of course you're trying to boot Ubuntu from the USB stick. :smile:

-Coolname007
 
#10
OK, how would I do this? I need the USB stick to boot...

If I pull it out, grub can't find /boot/grub/stage1
Boot with a LiveCD, unless your Mini computer doesn't have a CD drive, which now that I think about it, it probably doesn't...:brows: Since I have never used one of those, I'm not sure how you can solve this problem...
If you're using your USB stick to (attempt to) boot Ubuntu, then obviously your menu.lst on that USB stick is configured wrong...:wink: You need it to point back at your Ubuntu partition, which according to the fdisk output you posted, is sda4, which translates as (hd0,3) in Grub syntax...:wink: So please post the menu.lst on your USB stick then.

-Coolname007
 
Last edited:
#11
OK, so given past experiences, I was reluctant to reinstall linux, but I took a deep breath and did it, following your guide for installing linux after vista and installing grub to the partition rather than the disk. Held my breath while it rebooted, and it successfully booted into Windows! Yeah! Next I went into easybcd and added a simple linux entry pointing at the correct partition. I still get a blank screen.

Here's what my menu.lst looks like now in linux:
default 0
timeout 10


title Ubuntu 8.10, kernel 2.6.27-7-generic
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/vmlinuz-2.6.27-7-generic
root=UUID=1d9dbe9c-a76d-49ff-8b23-61221c0043e1 ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/vmlinuz-2.6.27-7-generic
root=UUID=1d9dbe9c-a76d-49ff-8b23-61221c0043e1 ro single
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, memtest86+
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/memtest86+.bin
quiet
Back in easybcd, I note that I still have the same curious artifact I did initially. The bootloader path shows \NST\nst_ .mbr, with a space between the underscore and the period. Also, there is no file like that in the NST directory.

I assume that easybcd is supposed to be extracting the boot sector from the selected partition and create a copy of it in a file in the NST directory, perhaps with a numeric subscript, and something here is failing silently?

Please let me help you figure out what's going wrong here -- I am a developer as well, and have written some fairly low level code. I don't have any tools installed on this new system, but please let me know what I can do to help and I'll try.

Thanks for your help so far. I feel so close to having the "holy grail" -- a triple boot of Win, Mac, Linux on this little guy.
 

mqudsi

Mostly Harmless
Staff member
#12
Can you post the output of EasyBCD's "detailed mode" here?
 
#13
Thanks for taking an interest. Here it is:

Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  partition=C:
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {848733d1-03ab-11de-89e6-f03db04a6e3f}
resumeobject            {848733c4-03ab-11de-89e6-f03db04a6e3f}
displayorder            {848733d1-03ab-11de-89e6-f03db04a6e3f}
                        {848733c5-03ab-11de-89e6-f03db04a6e3f}
                        {848733d3-03ab-11de-89e6-f03db04a6e3f}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 30

Real-mode Boot Sector
---------------------
identifier              {848733d1-03ab-11de-89e6-f03db04a6e3f}
device                  partition=C:
path                    \NST\NeoGrub.mbr
description             Mac OS X

Windows Boot Loader
-------------------
identifier              {848733c5-03ab-11de-89e6-f03db04a6e3f}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoverysequence        {848733c6-03ab-11de-89e6-f03db04a6e3f}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {848733c4-03ab-11de-89e6-f03db04a6e3f}
nx                      OptIn

Real-mode Boot Sector
---------------------
identifier              {848733d3-03ab-11de-89e6-f03db04a6e3f}
device                  partition=C:
path                    \NST\nst_.mbr
description             NeoSmart Linux
 

JustinW

Super Moderator
Staff member
#14
Ok, notice the last entry in your menu.lst:

0
timeout 10


title Ubuntu 8.10, kernel 2.6.27-7-generic
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/vmlinuz-2.6.27-7-generic
root=UUID=1d9dbe9c-a76d-49ff-8b23-61221c0043e1 ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/vmlinuz-2.6.27-7-generic
root=UUID=1d9dbe9c-a76d-49ff-8b23-61221c0043e1 ro single
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, memtest86+
uuid 1d9dbe9c-a76d-49ff-8b23-61221c0043e1
kernel /boot/memtest86+.bin
quiet
See how it doesn't have root=... lines like the others? I think its becuase you got both root and uuid lines or the root lines are not formatted properly. Can you boot into memtest (last entry) ok? Go ahead and remove those from your other entries as well that are in bold above and see if you can get it to work.
 
#15
I don't think we're getting that far. Seems to me that when the booting process attempts to reference the file from this section:

Real-mode Boot Sector
---------------------
identifier {848733d3-03ab-11de-89e6-f03db04a6e3f}
device partition=C:
path \NST\nst_.mbr
description NeoSmart Linuxit will be disappointed because there is no such file. Looking at this pasted output, it seems that I was wrong about the space between the underscore and the period in the filename, and rather it is an ascii 1. Could it be that easybcd is attempting to construct a filename indicating this is the first such boot entry, but failed to convert an int 1 into a char 1? Perhaps it was able to read the bootsector from my linux partition just fine, but failed creating the file due to an illegal filename, but it was still able to create the entry in the bcd file?
 

JustinW

Super Moderator
Staff member
#16
It doesnt need to "create" a file as its booting. It "needs" the right files in the right locations in order to boot.

Now unless you actually have a file by the name "\nst\nst_ .mbr" with two spaces between the _ and the .mbr on your C: drive when viewed in Windows than theres going to be issues. Uninstall NeoGrub, delete this file, and re-install by removing the linux entry and adding a new one.
 

mqudsi

Mostly Harmless
Staff member
#17
Clearly there's a bug that's causing it to reference 'nst_ .mbr' for some inexplicable reason.

If you delete the Linux entry and try again, does that still happen?
 
#18
Thanks, C.G.

Looks the same to me after deleting and re-creating, but again, I think it's not a space as I had originally indicated. From the debug info, as pasted here, the font that shows in my browser suggests it's an ASCII 1 character.

Code:
<snipped>
Real-mode Boot Sector
---------------------
identifier              {848733d4-03ab-11de-89e6-f03db04a6e3f}
device                  partition=C:
path                    \NST\nst_.mbr
description             NeoSmart Linux
Let me know how I can help.
 

Terry60

Knows where his towel is.
Staff member
#19
I don't normally get involved in these Linux problems, but I do see them all as I go through all the new posts, and I remember noticing this (nst_.mbr) several times in the past.
Here and here for example.
 
#20
Interestingly, in both cases it seemed as though the user ended up having to use neogrub, when it seems as though a Linux selection should have worked.

I think my situation is relatively straightforward (doesn't everyone think that about their situation?), excepting that I'm running Win7 and my disk is partitioned GPT (but with a "sync'd" MBR). Certainly, EasyBCD recognizes it enough to show the correct partition in the menu, and recognizes it as a Linux partition...