debian boot kernel panic

Debian kernel or initramfs seems to have intermittent kernel panic at boot time. I have had these on & off over many kernels/upgrades. Many times, this problem seems to go away after a few hours or days. Till then, I dual-boot one of my other systems.

Initramfs unpacking failed: junk in compressed archive
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 1 PID: 1 Comm: swapper/0 not tainted 4.6.0-1-686-pae #1 Debian 4.6.4-1
...
Kernel Offset: disabled
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

I suspect this happens more with the testing flavours, than with stable. I keep trying occassionally if debian kernel would boot without the kernel panic. If could boot atleast once, then I update my initramfs by

# update-initramfs -uv

Most times, this has resolved the issue.

This time, the problem seems to have continued far longer, probably because I am continuously using the system, and trying to reboot into this kernel very often. I have noticed the problem goes away, if I power off the system and come back after a few hours or days.

So, I tried to boot the alternate kernel /vmlinuz.old. And it booted clean :)

Thus the problem is further narrowed down to the current kernel, in this case linux-image-4.6.0-1-686-pae.

There are two methods to update the initramfs of an installed-kernel on debian systems.

Debian Kernel Handbook recommends
# dpkg-reconfigure linux-image-4.6.0-1-686-pae

Alternatively,
# update-initramfs -u -c 4.6.0-1-686-pae

ref: http://kernel-handbook.alioth.debian.org/ch-initramfs.html#s-initramfs-regen

wpa_supplicant systemd

I still don't prefer systemd, but sometimes you can't avoid demandware. Below is my preferred way to get systemd on wifi. This method now works with all flavours, including debian.

Identify wifi device(s)

$ iw dev
phy#0
        Interface wlp3s0
                ifindex 3
                wdev 0x1
                addr 00:00:00:00:00:00
                type managed
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

Config wifi device

# vi /etc/systemd/network/wlp3s0.network 
[Match]
Name=wlp3s0

[Network]
DHCP=ipv4
IPv6PrivacyExtensions=true

[DHCP]
RouteMetric=20

Config wpa_supplicant

# vi /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf 
[sudo] password for superuser: 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

Add wifi network(s)

# wpa-passphrase wlan passphrase >> /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf

Enable relevant systemd services

# systemctl enable wpa_supplicant@wlp3s0
# systemctl enable systemd-networkd

Reboot to test connectivity :)

If this worked, use wpa_gui for a SysTray icon to help manage wifi networks. No need for NetworkManager/Gnome all-singing all-dancing bloatware!

most popular posts