You are not logged in.

#1 2012-07-27 04:54:07

Registered: 2008-12-27
Posts: 34

[SOLVED] switch_root fails to run /sbin/init after upgrade

My system fails to boot after doing the big upgrade.

I did it all the right way, as the wiki says, with help from the IRC channel. I never used --force and fixed all the problems I encountered as specified in the wiki. I had to uninstall udev to get it to work, as someone in the IRC channel told me to. I didn't reinstall it afterward before rebooting, but have since after chrooting into my install. I've tried reinstalling glibc, mkinitcpio, linux, and udev, as well as installing systemd and attempting to use it, but none of these have allowed me to boot. The root partition gets mounted, then it says:

:: running cleanup hook [udev]
switch_root: failed to execute /sbin/init: No such file or directory.

If I attempt init=/bin/systemd as a kernel parameter:

ERROR: Root device mounted successfully, but /bin/systemd does not exist.

Both /bin/systemd and /sbin/init are on the root filesystem and exist, and the file command reports that they are 32-bit executables, as they should be.

This system booted fine 3 days ago before updating. fstab seems to be fine, menu.lst (I still use grub-legacy for now... I was going to switch to grub2 after getting this to work) remains unchanged, no new drives or anything. It mounts the root partition from an lvm, so I know I'm getting the right partition. I'm pretty sure it gets mounted successfully, so I really have no idea what's going on, and every time I ask in the IRC channel my question seems to fall upon deaf ears. I've worked on this all day today and I've ran out of things to try.

I've also searched for packages with missing files. The only ones reported were hal-info (which was no longer in the repos so I removed it), ttf-ms-fonts had some temporary files in /tmp that weren't there (obviously), and a udev rule was missing from udev-android-rules. I've tried chrooting and not chrooting and reinstalling linux and remaking the initramfs and reinstalling glibc quite a few times, and it finds the root device, but can't seem to find any init...\

EDIT: turns out it wasn't loading any libraries because my /usr/ (thus /usr/libs) is on a different partition. Adding the usr hook to mkinitcpio.conf fixed the problem.

Last edited by Nathan (2012-07-27 15:55:30)


Board footer

Powered by FluxBB