You are not logged in.

#1 2013-02-10 13:41:50

clalbus
Member
Registered: 2013-02-10
Posts: 8

[SOLVED] /sbin/init does not exist error on boot

Hi all,

Let me first say that Arch Linux is a great distribution and I couldn't be more happier with it! Thanks to everyone who is involved in building it.

However, as the subject line suggests, I have run into a problem. I have tried every trick in my book and every suggestion on Google but the problem still persists.

The setup
* UEFI boot loader on /dev/sda1
* BTRFS file system on /dev/sda2 in __active subvolume
* The system was installed in Jan using the latest install CD (I presume systemd changes were already applied)

The problem
Booting halts on rEFInd screen

What I have tried
Since the last pacman command upgraded git and kernel to 3.7.6-1 (this is not the first kernel upgrade on this system)my first idea was to rollback to 3.7.5-1 which results in /sbin/init not found error.

Re-installing 3.7.6-1 halts the system on rEFInd boot screen. I tried booting from rEFI shell and it results in the same /sbin/init not found error (on 3.7.6-1 kernel) so I presume that's the main issue here.

From there on (as suggested by various posts online) I have verified that rEFInd points to the correct root partition. Also, I've tried passing /bin/systemd explicitly but the error still persists.

I can boot into Live install environment and chroot into the setup on my drive. I have checked that /sbin/init exists (as well as /bin/systemd).

I am out of options here. Any help will be much appreciated.

Please let me know if you require any other information from me.

Last edited by clalbus (2013-02-10 20:59:42)

Offline

#2 2013-02-10 15:06:37

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,995

Re: [SOLVED] /sbin/init does not exist error on boot

you say it's rEFInd is pointing to the correct root partition, but is it pointing to the correct subvolume, too?

Offline

#3 2013-02-10 15:23:20

clalbus
Member
Registered: 2013-02-10
Posts: 8

Re: [SOLVED] /sbin/init does not exist error on boot

Hi Scimmia,

Thanks for your input. Where can I check that? The only place I have defined a subvol was in /etc/fstab.

As far as I am aware none of the system config has changed but I'm happy to verify that.

Offline

#4 2013-02-10 15:28:16

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,995

Re: [SOLVED] /sbin/init does not exist error on boot

The __active subvolume either needs to be marked as default (btrfs subvolume set-default <id> <fspath>) or you need to pass the kernel a parameter telling it to mount that subvolume (rootflags=subvol=__active)

Last edited by Scimmia (2013-02-10 15:44:12)

Offline

#5 2013-02-10 15:51:29

clalbus
Member
Registered: 2013-02-10
Posts: 8

Re: [SOLVED] /sbin/init does not exist error on boot

Scimmia, I'm posting this from my laptop. Finally! I was able to boot using EFI shell and passing the rootflags=subvol=__active parameter. I will mark the subvolume default and reboot (to see if it works) in a second.

I have one question - would you have any idea how/why this broke? I was using the system since Jan and I have gone through a few kernel upgrades successfully.

Offline

#6 2013-02-10 15:56:22

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,995

Re: [SOLVED] /sbin/init does not exist error on boot

If you were booting without passing that kernel parameter, you must have had the subvolume marked as default. With all of the changes happening with BTRFS, I would guess that somehow that got reset to the top level with the new kernel. Personally, I don't mess with changing the default, I just pass the mount parameters.

Offline

#7 2013-02-10 16:06:58

clalbus
Member
Registered: 2013-02-10
Posts: 8

Re: [SOLVED] /sbin/init does not exist error on boot

Thanks for all your help and information!

Booting through the EFI shell is working for me.

However, I can't boot using the rEFInd boot loader. I have marked __active subvolume as default but it did not boot my system. I have also edited the /boot/efi/EFI/arch/refind_linux.conf file and I have appended rootflags=subvol=__active at the end of both options e.g.

"Boot with defaults" "root=PARTUUID=626f545b-44f5-4a72-b1f3-d942fbcd0b46 ro rootfstype=btrfs add_efi_memmap systemd.unit=graphical.target rootflags=subvol=__active" 
"Boot to terminal" "root=PARTUUID=626f545b-44f5-4a72-b1f3-d942fbcd0b46 ro rootfstype=btrfs add_efi_memmap systemd.unit=multi-user.target rootflags=subvol=__active"

and it is still not booting.

Am I doing it wrong?

I am happy that I can at least boot into the system using EFI shell. Thanks again!

Offline

#8 2013-02-10 18:00:14

clalbus
Member
Registered: 2013-02-10
Posts: 8

Re: [SOLVED] /sbin/init does not exist error on boot

OK, now that I have marked the __active subvolume as default I can boot (using EFI shell) without using the rootflags=subvol=__active kernel parameter.

However, rEFInd boot loader is still not working (with or without rootflags=subvol=__active). Unfortunately I don't see any error messages as the system hangs at rEFInd boot screen.

Here's my archlinux.nsh (that I use to boot through EFI shell):

echo -on
\EFI\arch\vmlinuz-arch.efi root=PARTUUID=626f545b-44f5-4a72-b1f3-d942fbcd0b46 ro rootfstype=btrfs add_efi_memmap systemd.unit=graphical.target initrd=\EFI\arch\initramfs-linux.img rootflags=subvol=__active

Here's my refind_linux.conf from (/boot/efi/EFI/arch)

"Boot with defaults" "root=PARTUUID=626f545b-44f5-4a72-b1f3-d942fbcd0b46 ro rootfstype=btrfs add_efi_memmap systemd.unit=graphical.target rootflags=subvol=__active" 
"Boot to terminal" "root=PARTUUID=626f545b-44f5-4a72-b1f3-d942fbcd0b46 ro rootfstype=btrfs add_efi_memmap systemd.unit=multi-user.target rootflags=subvol=__active"

Any idea why booting through EFI shell would work but not through rEFInd?

Is it worthwhile rebuilding /boot?

Offline

#9 2013-02-10 20:00:55

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,995

Re: [SOLVED] /sbin/init does not exist error on boot

I wish I could help more, but I haven't dealt with UEFI.

Offline

#10 2013-02-10 20:35:26

clalbus
Member
Registered: 2013-02-10
Posts: 8

Re: [SOLVED] /sbin/init does not exist error on boot

Scimmia, thanks for your help. I don't think I would have gotten this far without you! smile

I downgraded to 3.7.5-1 and now the system is bootable using rEFInd (with and without rootflags=subvol=__active). Thanks to you mentioning to mark __active as the default subvolume. As per your advice I will keep the rootflags=subvol=__active parameters.

It must be something in the 3.7.6-1 kernel. I'll wait till the next kernel upgrade to see if it boots or not.

Thanks again.

Not sure how I can edit the subject but I am happy for this to be marked [SOLVED]. Thanks again!

Last edited by clalbus (2013-02-10 20:38:08)

Offline

Board footer

Powered by FluxBB