PDA

View Full Version : [SOLVED] initrd broken



jamapii
January 26th, 2015, 11:24 PM
Hi,

after installing Ubuntu I upgraded the kernel manually, using a plain kernel. make modules bzimage and make modules_install install would make everything bootable. This worked well and created a kernel-specific correct initrd until 3.15.0.

All kernel updates after that are creating a broken initrd. When booting, it will hang and repeat something about usb forever. Once I investigated further, I found that parts of the initrd are missing, and it is unusually small.

And I don't think it depends on the kernel, because 3.15.x will create broken initrds too, but it comes from an Ubuntu update. That's why I avoid doing install tests with old kernels.

Why is that, is that a known problem, could it come from a crash with data loss, what do i have to reinstall in that case? How to find out?

thanks...

Correction 2015-03-17
the initrds of the form /boot/initrd.img-3.13.0-46-generic are much bigger than the self/autogenerated ones like /boot/initrd.img-3.15.0

However, the size does not indicate if it is working. 3.15 initrds work, 3.16 initrds don't

MAFoElffen
January 27th, 2015, 01:33 AM
lsmod

WIll list all your loaded kernel modules.


modinfo module_name

Where module_name is the module you are asking about, will display info on that module.

If you did that on one of your working kernels, that would tell you want is there... Of course, if a kernel is broken, I'm not sure how you would tell wahat modules are present or missing from a non-working kernel??? Because if it is "broke"... not like it's running to answer.

jamapii
March 17th, 2015, 06:32 PM
The problem used to be _not_ missing modules in the initrd. As far as I know, some /dev/disks/by-uuid or something are not found, which is because the initrd is generated with missing files.

However, as of today, in new initrds the modules are missing. This is a theoretical problem I found only with lsinitramfs. The initrd is broken either way.

jamapii
March 17th, 2015, 06:41 PM
Ok i try some rigorous investigation:

lsinitramfs /boot/initrd.img-3.15.0 > /tmp/i3.15.0
lsinitramfs /boot/initrd.img-3.16.0 > /tmp/i3.16.0
diff -u /tmp/i3.* > /tmp/i.diff

Now I edit out some differences:
- lib/modules/* from 3.15.0 to 3.16.0
- other 3.15->16 stuff
- file ordering

What remains shows added files for compcache, fakeroot, and swap. Nothing is missing.

However, for newer kernels, disks are not recognized by uuid. Yes I know about the workaround using /dev/sdxxx. I want to continue using uuids. What happened?



--- /tmp/i3.15.0 2015-03-17 18:33:15.603820817 +0100
+++ /tmp/i3.16.0 2015-03-17 18:33:36.107822490 +0100
@@ -17,6 +17,7 @@
scripts/local-bottom/ntfs_3g
scripts/init-top
scripts/init-top/ORDER
+scripts/init-top/compcache
scripts/init-top/udev
scripts/init-top/blacklist
scripts/init-top/all_generic_ide
@@ -40,6 +41,10 @@
sbin/mount.fuse
sbin/dumpe2fs
sbin/hwclock
+sbin/compcache-enable
+sbin/rzscontrol
+sbin/mkswap
+sbin/swapon
sbin/fsck.btrfs
sbin/btrfs-zero-log
sbin/btrfs
@@ -125,269 +130,271 @@
etc/ld.so.conf.d/libc.conf
etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf
+etc/ld.so.conf.d/fakeroot-x86_64-linux-gnu.conf
etc/ld.so.conf.d/x86_64-linux-gnu.conf
etc/ld.so.conf
etc/console-setup
@@ -399,6 +406,8 @@
etc/uswsusp.conf
etc/udev
etc/udev/udev.conf
+etc/udev/rules.d
+etc/udev/rules.d/80-compcache.rules
etc/modprobe.d
etc/modprobe.d/zram.conf~
etc/modprobe.d/zram.conf
@@ -414,6 +423,7 @@
etc/modprobe.d/blacklist-modem.conf
etc/modprobe.d/blacklist-framebuffer.conf
etc/modprobe.d/blacklist-firewire.conf
+etc/modprobe.d/blacklist-berry_charge.conf
etc/modprobe.d/blacklist-ath_pci.conf
etc/modprobe.d/alsa-base.conf
conf


I think the missing modules in 3.19 are not a problem, I try to make my kernels bootable without modules
I'll try 3.19 and look for more earlier error messages

jamapii
March 17th, 2015, 08:54 PM
I found an error message like this:

http://tuxthink.blogspot.de/2014/10/can-not-create-syskernelueventhelper.html

and I think the solution shoild apply here.

edit:
Yes, that is the solution here. Other problems (missing modules) become visible now