Grub/Lilo/Syslinux on /dev/sda1
OK, to know what I am trying to do, here is a history of my pursuits:
I was trying to install a Linux distribution on my Compact Flash card to use on my tablet pc. It had to be able to install programs on as I need to put on the touchscreen and wifi drivers. So, I came across ThinStation, which besides being made to control other computers, can be used as an actual distribution. ThinStation didn't work out originally as when I found a tutorial with a complete system, it froze when trying to configure the network card (the only network card is the wireless PCMCIA card). During this install, I downloaded SysLinux and used the SysLinux/mtools/syslinux binary to install syslinux to /dev/sda (my CF card). I was not supposed to compile Syslinux, so I didn't. Since ThinStation didn't work, I replaced the kernel (vmlinuz) with my current 12.1 huge smp kernel and deleted the initrd as well as the line concerning it in the syslinux.conf file. This booted the kernel VERY fast.. until I got the message: Code:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (8, 2) So, essentially, how do I get Grub, Lilo, or SysLinux to install on /dev/sda and configure it to boot? As well as, I need a bash shell and dhcp so I can download the programs I need. I don't know if its possible to only install a kernel, bash, and dhcpcd as I have never really gotten that "deep" before, but I would certainly appreciate any help I am offered. Thanks! |
Just realized I would (obviously) need gcc and wget to download sources and install them.
|
If you boot without initrd, the kernel MUST have all drivers necessary for booting compiled into the kernel, not a module. This includes any bus drivers and filesystem drivers for filesystems than need to be accessed to mount the root partition. Once the root partition is mounted, then you can proceed to load other drivers (ethernet etc).
|
Well, I made the initrd.gz with the following command:
Code:
mkinitrd -c -k vmlinuz-huge-smp-2.6.24.5-smp -m ext3 -f ext3 -r /dev/sda1 Here is my full error: Code:
VFS: Cannot open root device "<NULL>" or unknown-block(8,2) Code:
timeout 0 Code:
Missing parameter in configuration file. |
Well, obviously 'grub' starts up. The trick is to press a key to interrupt grub, then use grub's "find" command to locate where the boot device is and specify a suitable root= option.
The CF may be '/dev/sda' on the computer you use to write to the CF with, but on the computer that boots from the CF it may be '/dev/hda' - or hdb, or sdb. Are there any special jumpers you need to put in to make the CF the IDE "master" device? |
No...see, first of all, I'm using syslinux on it right now, not grub. Secondly, my configs are set up for hda1, which is (obviously) what the table reads it as, given there is no other boot media plugged into it.
|
All times are GMT -5. The time now is 12:17 PM. |