The symptom of being able to see some files but not all on a filesystem with grub usually means that your BIOS is buggy and can't properly handle large drives ( http://tldp.org/HOWTO/Large-Disk-HOWTO-4.html ). What happens is that the BIOS can't read blocks past a certain point in the drive, and so if your root filesystem starts before that limit, but ends after that limit, then some files will be accessible at boot through the BIOS and others won't. The standard way to work around this problem is to create a small /boot/ partition near the beginning of the drive, to ensure that everything that needs to be read through the BIOS, can be.
I would normally expect "out of disk" errors from grub were this the case, and I don't know why we're not seeing those. One way to confirm that the problem is a BIOS limit is to go into your BIOS menus and see what size it lists the drive as being, if it lists it as being less that the actual size, you know your BIOS is buggy. Another way, if your BIOS doesn't list sizes anywhere in its menus, is to run "ls -l" from grub and look at the size listed there. Unfortunately, you can't run "ls -l" from the rescue shell, so you'd need to boot from a grub CD, or have already fixed the problem with a small /boot/ partition, before you could do the check from within grub.
Try this to gather more information:
- Download the USB flash drive or CD-R image for my rEFInd boot manager.
- Create the relevant medium.
- Boot with it. With any luck, you should see the rEFInd menu pop up, which should show an option to boot Ubuntu.
- Boot Ubuntu.
- In Ubuntu, open a Terminal window and type
sudo efibootmgr -v
.
The efibootmgr
output will show your boot entries. Here's what it shows on the computer I'm using now:
$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000
Boot0000* rEFInd (direct) HD(2,c00,114000,6e49fcaf-d054-47c9-ba69-a668c5ee8192)File(\EFI\refind\refind_x64.efi)
Boot0004* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO
In your case, you should see at least one ubuntu
entry that points to either \EFI\ubuntu\grubx64.efi
or \EFI\ubuntu\shimx64.efi
. There may well be other entries, like the UEFI: Built-in EFI Shell
entry in this example. Furthermore, the ubuntu
entry's number should appear on the BootOrder
line as the first value. (My output doesn't show precisely what I've described because I'm using rEFInd, not GRUB, as my default boot program, and I don't even have GRUB registered on this system. The Ubuntu Shim/GRUB entry would be similar to my rEFInd entry, though.)
If you do not see such an entry, you can try creating a new entry with efibootmgr
:
sudo efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L "ubuntu"
Adjust the disk (-d /dev/sda
), partition (-p 1
), and the exact path to the file for what your system uses. There are also ways to do this using other tools; see this page for more information.
If you already see such an entry but it's not working, or if the entry you create disappears whenever you reboot, then chances are your firmware is broken. Workarounds are possible in such cases, such as installing the boot loader as EFI/BOOT/bootx64.efi
. In some cases, using bcfg
from an EFI shell works even when efibootmgr
in Linux doesn't work, so it may be worth trying that approach.
Best Answer
It seems you have a small SSD (
/dev/sdb
) and a hard drive (/dev/sda
) that uses Intel Smart Response Technology, that Ubuntu recognizes asRAID0
.sudo dmraid -E -r /dev/sda
.(The above worked)
Alternately
If you have the Intel Smart Response Technology:
Then your Ubuntu installer should recognize both disks. (But beware, I don't know how Windows or rather ntfs behaves if you deactivate the RAID mode. Your ntfs filesystem could also get damaged) From No HDD shows up during install 12.04 on Lenovo U410.
Once the RAID is removed you should get the "alongside" option. However, you may choose "something else" and use the small SSD for the
/
partition and the the HDD for/home
and swap. See Is it safe to install the / partition on an SSD?Hope this helps