[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#663332: [3.1 -> 3.2.6] xorg fails to start after kernel upgrade



Hi again,

I could find more details on this bug:

After booting with a bad initrd the sysfs is missing. 
/proc is mounted as expected, but /sys is missing. Obviously it didn't
get moved from the initrd-location to the real root.
So I suppose this is the actual problem with my initrd.

@Goga: Please check, if /sys is missing on your system too. If not,
please open another bug report.

I tried to find the exact location of the bug and could tackle it down
to the last lines of the init script in the initrd:

This is the code which switches to the real root device:
| # Chain to real filesystem
| if command -v switch_root >/dev/null 2>&1; then
| 	exec switch_root ${rootmnt} ${init} "$@" <${rootmnt}/dev/console >${rootmnt}/dev/console
| elif command -v run-init >/dev/null 2>&1; then
| 	# Move virtual filesystems over to the real filesystem
| 	mount -n -o move /sys ${rootmnt}/sys
| 	mount -n -o move /proc ${rootmnt}/proc
| 
| 	exec run-init ${rootmnt} ${init} "$@" <${rootmnt}/dev/console >${rootmnt}/dev/console
| fi

The "switch_root" command is something new here. If I disable it,
changing the above lines to

| # Chain to real filesystem
| if command -v run-init >/dev/null 2>&1; then
| 	# Move virtual filesystems over to the real filesystem
| 	mount -n -o move /sys ${rootmnt}/sys
| 	mount -n -o move /proc ${rootmnt}/proc
| 
| 	exec run-init ${rootmnt} ${init} "$@" <${rootmnt}/dev/console >${rootmnt}/dev/console
| fi

then my system boots as usual.

I suppose, there is a bug in the switch_root command of the initrd. 
Is it OK to reassign this bug to initramfs-tools (0.101)?



Reply to: