You are not logged in.
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 packages • Zsh and other configs
Offline
is your filesystem module built-in as well?
Offline
@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 packages • Zsh and other configs
Offline