You are not logged in.

#1 2011-06-11 10:25:37

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,697
Website

booting without initrd - what am I missing [solved]

Can one use the contents of the system's kernel.img to determine exactly what needs to be built into the kernel to avoid booting with the initrd image, and boot to the kernel directly?

For example, initially, I found 5 modules in the image:

bsdtar -t -f /boot/kernel26-ck.img | grep ko
/lib/modules/2.6.39-ck/kernel/drivers/scsi/scsi_mod.ko.gz
/lib/modules/2.6.39-ck/kernel/drivers/ata/libata.ko.gz
/lib/modules/2.6.39-ck/kernel/drivers/ata/libahci.ko.gz
/lib/modules/2.6.39-ck/kernel/drivers/ata/ahci.ko.gz
/lib/modules/2.6.39-ck/kernel/drivers/scsi/sd_mod.ko.gz

I have since added them to the kernel.  After recompiling, I don't see any modules in my kernel26-ck.img at all, yet when I attempt to boot commenting out the initrd line in grub2, I keep getting this damn error, "VFS: unable to mount root fs on unknown block (0,0)" followed by a kernel panic.

Advice is welcomed!

$ bsdtar -t -f /boot/kernel26-ck.img
/proc
/sys
/dev
/bin
/sbin
/lib
/usr
/usr/bin
/usr/lib
/usr/sbin
/run
/dev/null
/dev/zero
/dev/console
/dev/mem
/bin/busybox
/lib/libc.so.6
/lib/libc-2.13.so
/lib/ld-linux-x86-64.so.2
/lib/ld-2.13.so
/sbin/modprobe
/sbin/blkid
/lib/libblkid.so.1
/lib/libblkid.so.1.1.0
/lib/libuuid.so.1
/lib/libuuid.so.1.3.0
/init_functions
/init
/config
/etc
/etc/modprobe.d
/etc/modprobe.d/usb-load-ehci-first.conf
/sbin/udevd
/lib/librt.so.1
/lib/librt-2.13.so
/lib/libpthread.so.0
/lib/libpthread-2.13.so
/sbin/udevadm
/lib/udev
/lib/udev/rules.d
/lib/udev/rules.d/50-firmware.rules
/lib/udev/rules.d/50-udev-default.rules
/lib/udev/rules.d/60-persistent-storage.rules
/lib/udev/rules.d/80-drivers.rules
/lib/udev/firmware
/lib/udev/ata_id
/lib/udev/path_id
/lib/udev/scsi_id
/lib/udev/usb_id
/lib/udev/load-modules.sh
/etc/udev
/etc/udev/udev.conf
/hooks
/hooks/udev

Here is my grub line:

menuentry 'Arch Linux, with Linux vmlinuz26-ck' --class archlinux --class gnu-linux --class gnu --class os {
        load_video
        insmod part_gpt
        insmod ext2
        set root='(hd0,gpt5)'
        search --no-floppy --fs-uuid --set=root 0fc7ed20-0b1e-4e26-860c-6e63dd3a35ea
        echo    'Loading Linux vmlinuz26-ck ...'
        linux   /vmlinuz26-ck root=/dev/disk/by-uuid/6f90540d-6153-48e3-a5e7-58f09b65c5cf ro
}

Last edited by graysky (2011-06-11 11:12:30)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#2 2011-06-11 10:37:51

bangkok_manouel
Member
From: indicates a starting point
Registered: 2005-02-07
Posts: 1,556

Re: booting without initrd - what am I missing [solved]

is your filesystem  module built-in as well?

Offline

#3 2011-06-11 10:45:09

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,697
Website

Re: booting without initrd - what am I missing [solved]

@bang - yes.

EDIT: I found out my problem: grub2 uses uuids that are different from what is listed in ls -l /dev/disk/by-uuid/  Is this a bug in upstream?  If I replace the uuid that grub2 generated for my root disk with /dev/sdb1 I boot just fine.

EDIT2: When I inspect my /boot/grub/grub.cfg the uuids listed there are correct, however, when I read the error message grub2 gives, every uuid it shows as a "correct" one is different from the output of ls -l /dev/disk/by-uuid/.

VFS: Cannot open root device "disk/by-uuid/xxx"
Please append a correct "root=" boot optionl here are the available partitions:

...
...

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

WTF?

Last edited by graysky (2011-06-11 10:50:31)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

Board footer

Powered by FluxBB