booting 9.3 install on laptop w/ reiserfs root
I've got an old (IBM Thinkpad 760EL) laptop. It won't boot from CD, and I don't have a floppy drive. So, I got an adapter, and hooked up the hard drive in a SuSE 9.2 system. I partitioned the 2GB drive into a 250MB swap partition (hdc2) and a 1.5GB root (hdc1). I formatted the root with reiserfs (default options), ran mkswap on the swap partition, and mounted the root on /mnt. Then I fired up Yast and did the install to directory thing, checking the "run yast on startup to detect hardware" option. I essentially did a "basic with KDE" install, with the thinkpad utils and a few other things added. Then I installed grub to the drive with grub-install --root-directory=/mnt /dev/hdc I forgot to write a grub.conf, but I figured that'd be fine, I'm relatively comfortable with grub's command line. I replaced the drive in the laptop, and fired it up. I got dumped to a grub prompt, as expected. I type root, and it says that it's using (hd0,0), which is correct, AFAIK. It's the only hard drive in the system. Then I type kernel /boot/vmlinuz root=/dev/hda1 which grub recognizes as a linux bzimage, and I then type "boot". The kernel loads, and then hangs where it should be mounting the root filesystem. It says "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)". A few lines up, it recognizes the hard drive as an IBM ATA disk drive, and sees that hda has 2 partitions, hda1 and hda2. The geometry agrees with what's printed on the drive itself. I've tried specifying an initrd (the one in /boot) with grub, too, and there's the same problem, though the kernel does say that it found a ramdisk before it hangs on the root filesystem. Now, using grub's tab completion, I can see that the device nodes /dev/hda1 and /dev/pts are where they should be. The root filesystem is fine. What I'm wondering is, does the default 9.2 kernel not have reiserfs support? That seems very odd, especially for SuSE. Did I miss something else? I think I did everything required for making a drive bootable, but maybe I missed a step that someone outside the situation can see? I'd appreciate any debugging steps that I'm missing here. I guess I could build a new kernel and put that on this drive, but it's such a pain to take the drive out of the laptop, remove it from the caddy, hook it up to a working machine, etc. :) Thanks. --Danny, probably putting the laptop back up on eBay anyway, since it can't boot from the darn CD-ROM, but it can boot from a *token ring* network.
On Friday 22 April 2005 05:26, Danny Sauer wrote:
only hard drive in the system. Then I type kernel /boot/vmlinuz root=/dev/hda1 [...] It says "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)". [...] I've tried specifying an initrd (the one in /boot) with grub, too, and there's the same problem, though the kernel does say that it found a ramdisk before it hangs on the root filesystem.
The kernel doesn't have built-in reiser support, you need the reiserfs module in the initrd. Do you have that?
Now, using grub's tab completion, I can see that the device nodes /dev/hda1 and /dev/pts are where they should be. The root filesystem is fine. What I'm wondering is, does the default 9.2 kernel not have reiserfs support?
No suse kernel has ever had that built-in
On Thursday 21 April 2005 10:08 pm, Anders Johansson wrote:
On Friday 22 April 2005 05:26, Danny Sauer wrote:
only hard drive in the system. Then I type kernel /boot/vmlinuz root=/dev/hda1
[...]
It says "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)".
[...]
I've tried specifying an initrd (the one in /boot) with grub, too, and there's the same problem, though the kernel does say that it found a ramdisk before it hangs on the root filesystem.
The kernel doesn't have built-in reiser support, you need the reiserfs module in the initrd. Do you have that?
I'm not sure. There's only one initrd in /boot, and it's whatever Yast put in there. I'm just doing this: kernel /boot/vmlinuz root=/dev/hda1 initrd /boot/vmlinux-2.6.8-24.10-default.gz boot There's not something else weird that I have to do to get it to use the initrd, is there? I don't generally use an initrd, so I could be screwing up the syntax somewhere...
Now, using grub's tab completion, I can see that the device nodes /dev/hda1 and /dev/pts are where they should be. The root filesystem is fine. What I'm wondering is, does the default 9.2 kernel not have reiserfs support?
No suse kernel has ever had that built-in
I'll be darned. --Danny, hitting google too
On Friday 22 April 2005 06:03, Danny Sauer wrote:
I'm not sure. There's only one initrd in /boot, and it's whatever Yast put in there. I'm just doing this: kernel /boot/vmlinuz root=/dev/hda1 initrd /boot/vmlinux-2.6.8-24.10-default.gz
erm, what? That's not an initrd, that's a kernel. The initrd is called, well, initrd :) If that wasn't a typo in this mail then that would be why it doesn't boot. You seriously need an initrd with a reiserfs module in it
boot
There's not something else weird that I have to do to get it to use the initrd, is there? I don't generally use an initrd, so I could be screwing up the syntax somewhere...
No, the syntax is fine. It's just the file name that's messed up :)
On Thursday 21 April 2005 10:33 pm, Anders Johansson wrote:
On Friday 22 April 2005 06:03, Danny Sauer wrote:
I'm not sure. There's only one initrd in /boot, and it's whatever Yast put in there. I'm just doing this: kernel /boot/vmlinuz root=/dev/hda1 initrd /boot/vmlinux-2.6.8-24.10-default.gz
erm, what? That's not an initrd, that's a kernel. The initrd is called, well, initrd :)
There's a /boot/vmlinuz-2.6.8-24.10-default and a /boot/vmlinux-2.6.8-24.10-default.gz - note the z v/s x in the file name and the .gz extension on one. I figured that the x meant "this is an initrd, load me into memory". When I try to specify "kernel /boot/vmlinux-2.6.8-24.10-default.gz" grub says "invalid format", but when I specify "initrd /boot/vmlinux-2.6.8-24.10-default.gz" grub says it found a Linux initrd. It says that for vmlinuz as well, though, so I think maybe it treats anything unknown as a Linux initrd... Either way, theres no file called /boot/initrd. There's a vmlinux-blah.gz and a symvers-blah.gz, and a grub directory (as well as an evil recursive symlink to /boot). There's also vmlinuz and vmlinuz-blah, which are both the same kernel as far as I can tell from booting them. :)
If that wasn't a typo in this mail then that would be why it doesn't boot. You seriously need an initrd with a reiserfs module in it
The packages all installed successfully, where would an initrd have come from? Wouldn't that be in the same package as the kernel? Is it installed somewhere other than /boot, or at a later time in the install process? Let's assume that one of those .gz files actually is an initrd - is there a kernel command line that should force the loading of the reiserfs module? I'm wondering if maybe the lack of a module dep file is preventing the reiser module from automatically loading, maybe? What filesystems does the default kernel support? Just ext2, or could I redo this using ext3 for the root? --Danny, noting that this is the reason he doesn't use initrds - such a pain
On Thu, Apr 21, 2005 at 11:55:40PM -0500, Danny Sauer wrote:
The packages all installed successfully, where would an initrd have come from? Wouldn't that be in the same package as the kernel? Is it installed somewhere other than /boot, or at a later time in the install process?
It is generated by /sbin/mkinitrd -Kastus
On Thursday 21 April 2005 11:24 pm, Kastus wrote:
On Thu, Apr 21, 2005 at 11:55:40PM -0500, Danny Sauer wrote:
The packages all installed successfully, where would an initrd have come from? Wouldn't that be in the same package as the kernel? Is it installed somewhere other than /boot, or at a later time in the install process?
It is generated by /sbin/mkinitrd
Oh. Well, I guess I'll do that, then. :) --Danny, glad to see the missing step...
On Thursday 21 April 2005 11:24 pm, Kastus wrote:
On Thu, Apr 21, 2005 at 11:55:40PM -0500, Danny Sauer wrote:
The packages all installed successfully, where would an initrd have come from? Wouldn't that be in the same package as the kernel? Is it installed somewhere other than /boot, or at a later time in the install process?
It is generated by /sbin/mkinitrd
Ohh, wait, if I just run mkinitrd in a chroot, will that be adequate, or is there some configuring that I'll need to do somewhere to make mkinitrd work as intended? --Danny, heading to bed for now...
Danny Sauer wrote:
Ohh, wait, if I just run mkinitrd in a chroot, will that be adequate, or is there some configuring that I'll need to do somewhere to make mkinitrd work as intended?
Make sure you have reiserfs in the INITRD_MODULES line of /etc/sysconfig/kernel -- Joe Morris New Tribes Mission Email Address: Joe_Morris@ntm.org Registered Linux user 231871
On Friday 22 April 2005 06:32 am, Joe Morris (NTM) wrote:
Danny Sauer wrote:
Ohh, wait, if I just run mkinitrd in a chroot, will that be adequate, or is there some configuring that I'll need to do somewhere to make mkinitrd work as intended?
Make sure you have reiserfs in the INITRD_MODULES line of /etc/sysconfig/kernel
Oh yeah, you said that once, didn't you? :) Thanks. --Danny, trying it out now
On Friday 22 April 2005 06:55, Danny Sauer wrote:
There's a /boot/vmlinuz-2.6.8-24.10-default and a /boot/vmlinux-2.6.8-24.10-default.gz - note the z v/s x in the file name and the .gz extension on one. I figured that the x meant "this is an initrd, load me into memory".
The vmlinux-whatever.gz is a regular kernel with debugging symbols in it. I believe there is a readme file somewhere in there that explains it. note that with a 2.6.8 kernel, $SUBJECT is wrong. 2.6.8 is from 9.2, not 9.3
On Friday 22 April 2005 09:09 am, Anders Johansson wrote:
On Friday 22 April 2005 06:55, Danny Sauer wrote:
There's a /boot/vmlinuz-2.6.8-24.10-default and a /boot/vmlinux-2.6.8-24.10-default.gz - note the z v/s x in the file name and the .gz extension on one. I figured that the x meant "this is an initrd, load me into memory".
The vmlinux-whatever.gz is a regular kernel with debugging symbols in it. I believe there is a readme file somewhere in there that explains it.
Ohhh. I guess that's why not much interesting happens when it's loaded as an initrd, eh?
note that with a 2.6.8 kernel, $SUBJECT is wrong. 2.6.8 is from 9.2, not 9.3
I'm not sure why I keep referring to 9.2 as 9.3 - there's something wrong in my head. :) Also, I can't reach a solution to this problem for a few days now - some idiot hooked up the hard drive in a machine to make the initrd, and laid the exposed circuit board down on the case of the computer. The machine's fans slowed down momentarily, and the hard drive never spun up again. Hooray for short circuits! Though, part of the drive's board does get pretty hot now when power's applied... A [larger] replacemend eBay drive is on the way now. Next time, I know what to do to make it work. :) --Danny, better insulating drives when temporarily hooked up from now on (or until that gets boring)
The Thursday 2005-04-21 at 23:55 -0500, Danny Sauer wrote:
When I try to specify "kernel /boot/vmlinux-2.6.8-24.10-default.gz" grub says "invalid format", but when I specify "initrd /boot/vmlinux-2.6.8-24.10-default.gz" grub says it found a Linux initrd. It says that for vmlinuz as well, though, so I think maybe it treats anything unknown as a Linux initrd...
Either way, theres no file called /boot/initrd.
I think it gets created during the install. And yes, it works fine in a chroot, I tried once.
The packages all installed successfully, where would an initrd have come from? Wouldn't that be in the same package as the kernel? Is it installed somewhere other than /boot, or at a later time in the install process?
It comes either in the rpm kernel package, or it is created during the install run. Perhaps both. I'll try to check. [...] Ah, yes (suse 9.3): cer@nimrodel:~> rpm -q -f /boot/vmlinuz-2.6.11.4-20a-default \ /boot/initrd-2.6.11.4-20a-default kernel-default-2.6.11.4-20a kernel-default-2.6.11.4-20a If yours is missing, something failed.
What filesystems does the default kernel support? Just ext2, or could I redo this using ext3 for the root?
Both ext2/3 would work. Actually, ext3 also uses modules, in the initrd, but as it can be mounted as ext2, it does so. Later, when running, you can perhaps remount as ext3 (automatic :-? ), create the proper initrd, and reboot.
--Danny, noting that this is the reason he doesn't use initrds - such a pain
Funny you didn't notice before :-) I hope you get your hardware working. Next time, don't use a metal table top ;-) -- Cheers, Carlos Robinson
Danny Sauer wrote:
What I'm wondering is, does the default 9.2 kernel not have reiserfs support?
It is a module that needs to be loaded via your initrd, reiserfs.
That seems very odd, especially for SuSE. Did I miss something else? The modules needed should be added to /etc/sysconfig/kernel "INITRD_MODULES" How you can get it to boot to make another initrd I'm not sure. -- Joe Morris New Tribes Mission Email Address: Joe_Morris@ntm.org Registered Linux user 231871
participants (5)
-
Anders Johansson
-
Carlos E. R.
-
Danny Sauer
-
Joe Morris (NTM)
-
Kastus