The closest question I could find is this one, however it is still quite a bit different from what I am needing: GRUB fails to install
My specific setup and the steps I followed to produce this
I am attempting to build the Linux From Scratch project, using book version 7.2. I have followed every step up along the way, and performed every test that I could do to make sure that everything was operating correctly after building. The largest change I had to make was the partitioning, I have /dev/sda1 (as /), /dev/sda2 (as /home), /dev/sda3 (as swap), and /dev/sdb1 (as /source for compiling).
I am performing the installation on a blank hard drive inside of VirtualBox using a LiveCD as the host OS. So, I have ran into very few problems up until the very end. For compiling the kernel, it is not very specific for what options I need to select, so I selected the default options with one change, I made sure the option in "Device Drivers ---> Generic Driver Options ---> Maintain a devtmpfs filesystem to mount at /dev" was checked.
After following the rest of the instructions on setting up GRUB, after the reboot the boot process freezes with the following output visible:
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3.00: ATA-6: VBOX HARDDISK, 1.0, max UDMA/133 ata3.00: 33554432 sectors, multi 128: LBA48 NCQ (depth 31/32) ata3.00: configured for UDMA/133 scsi 2:0:0:0: Direct-Access ATA VBOX HARDDISK 1.0 PQ: 0 ANSI: 5 scsi 4:0:0:0: CD-ROM VBOX CD-ROM 1.0 PQ: 0 ANSI: 5 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) Pid: 1, comm: swapper/0 Not tainted 3.5.2 #1 Call Trace: ? panic ? mount_block_root ? xen_write_msr_safe ? mount_root ? prepare_namespace ? kernel_init ? start_kernel ? kernel_thread_helper atkbd serio0: Spurious ACK on isa0060/serio0. Some program might be trying to access hardware directly.
So, when I first received that, I thought that maybe it was something to do with the kernel, maybe I didn't select what I had to select, and after a bit of googling, I found out that I should make sure that "SATA_SIL" is enabled. I also found a website detailing the kernel options that need to be enabled for a kernel running in VirtualBox (http://en.gentoo-wiki.com/wiki/Virtualbox_Guest). I then restored my machine to the saved state right before I compiled the kernel and recompiled it with the options specified on that website, along with SATA_SIL.
However, after the long compilation of the kernel, I went along with the book and issued the command
grub-install /dev/sda. However, this time, rather than installing, GRUB returned the following error:
Path to `/boot/grub' is not readable by GRUB on boot. Installation is impossible. Aborting.
My first thought was that it had something to do with file permissions (because "is not readable" really sounds like file permissions). So, just to see, I set the /boot folder (recursively) to 777. Still no success. After that, I did some googling, but really returned no meaningful results.
So, following along with that, I restored the machine to the version where GRUB was working but wouldn't boot up, used the same configuration and recompiled the kernel there (which, I had to add a new hard drive, /dev/sdc, because there wasn't enough space in /dev/sdb1 to compile the kernel with the new options). After going through the long compilation again, I installed the kernel, rebooted, and ... same error dump as before.
The main question
So, now I am to the point where I think I may need some help, if anyone has any ideas how I may get past this boot error and/or the GRUB installation path error, that would be great!
All of my software is the exact version from the LFS version 7.2, a full list may be found here: http://pastebin.com/TiJBhbce
Here is a complete list of the structure and setup of all of the drives in the computer: root:~# fdisk -l
Disk /dev/sda: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xeeeb9d91 Device Boot Start End Blocks Id System /dev/sda1 2048 6293503 3145728 83 Linux /dev/sda2 6293504 6817791 262144 83 Linux /dev/sda3 6817792 8388607 785408 83 Linux Disk /dev/sdc: 17.2 GB, 17179869184 bytes 171 heads, 2 sectors/track, 98112 cylinders, total 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x4c41c1df Device Boot Start End Blocks Id System /dev/sdc1 2048 33554431 16776192 83 Linux Disk /dev/sdb: 4294 MB, 4294967296 bytes 43 heads, 32 sectors/track, 6096 cylinders, total 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xd3de256f Device Boot Start End Blocks Id System /dev/sdb1 2048 8388607 4193280 83 Linux
And the drive that should start as / upon reboot, here's the contents of /dev/sda1:
drwxr-xr-x 24 root root 4096 Feb 17 20:46 . drwxr-xr-x 3 root root 60 Feb 17 22:46 .. drwxr-xr-x 2 root root 4096 Feb 17 13:11 bin drwxr-xr-x 3 root root 4096 Feb 17 16:00 boot drwxr-xr-x 2 root root 4096 Feb 17 20:46 build drwxr-xr-x 2 root root 4096 Feb 16 20:06 dev drwxr-xr-x 12 root root 4096 Feb 17 15:52 etc drwxr-xr-x 2 root root 4096 Feb 16 13:11 home drwxr-xr-x 7 root root 4096 Feb 17 22:11 lib drwx------ 2 root root 16384 Feb 16 13:09 lost+found drwxr-xr-x 4 root root 4096 Feb 16 20:24 media drwxr-xr-x 2 root root 4096 Feb 16 20:24 mnt drwxr-xr-x 2 root root 4096 Feb 16 20:24 opt drwxr-xr-x 2 root root 4096 Feb 16 20:06 proc drwxr-x--- 3 root root 4096 Feb 17 22:14 root drwxr-xr-x 3 root root 4096 Feb 17 09:38 run drwxr-xr-x 2 root root 4096 Feb 17 14:36 sbin drwxr-xr-x 2 root root 4096 Feb 16 13:11 sources drwxr-xr-x 2 root root 4096 Feb 16 20:24 srv drwxr-xr-x 2 root root 4096 Feb 16 20:06 sys drwxrwxrwt 3 root root 20480 Feb 17 22:12 tmp drwxr-xr-x 13 root root 4096 Feb 16 18:51 tools drwxr-xr-x 9 root root 4096 Feb 16 20:24 usr drwxr-xr-x 11 root root 4096 Feb 16 23:26 var