(EDITED 2x) Recently installed Ubuntu 14.10 x64 takes over 4 minutes to boot on the system below. I don't understand the 'dmesg' output; at first I thought a USB MS Mouse was a problem; replaced that with a Logitech mouse and still 4+ minutes. So is the delay here from the Nouveau driver trying to work with my nVidia card? Where is this "broken pipe" coming from? EDIT 2: I guess it is this bug: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-304/+bug/1364630

1 Answer
1

Problem-solving approach

I had a similar problem: booting on a system upgraded to Ubuntu 14.10 x64 took longer than 3 minutes, and I also got the error message

init: Error while reading from descriptor: Broken pipe

in my dmesg-output, but I didn't have a Nvidia card installed and thus also didn't use the Nouveau-driver. From the mentioned Bug #1364630 I got the idea that upstart could be the actual source of the problem. To test that hypothesis, I replaced upstart temporarily with systemd (as described here). Using systemd didn't change the duration of the boot process, but while upstart just hung for 2-3 minutes before the Broken pipe-error was displayed, systemd hung and displayed:

A start job is running for Create Volatile Files and Directories

Googling for that message brought me to the blog-posting Debian hangs during boot by Mattia Migliorini ‘deshack’, where a similar problem is described for Debian. The root cause of deshack's problem was a bloated /tmp-directory, which he simply removed and recreated to solve the problem. By trying out his solution successfully, I got to know that this was also the cause of my problem.

Solution (based on deshack's solution for Debian)

In Grub, press e to edit Ubuntu's entry. Locate the line linux /boot/vmlinuz... and edit it to end with rw init=/bin/bash, for example from:

In my case, . was larger than 112 MB; according to deshack's blog-posting, it can also be that /tmp contains millions of symlinks. Anyways, if it looks strange in some way, it's worth trying to recreate /tmp from scratch (step 3).

Remove and recreate the /tmp-directory:

rm -rf /tmp
mkdir /tmp
chmod 1777 /tmp

Close the shell with exit, ignore the Kernel panic, and reboot the computer.

I found that at step one you need to appendrw init=/bin/bash to linux /boot/vmlinuz... rather than adding after the line. Also, --add is not part of what should be appended and if you have ro already in the line, you'll need to remove.
– JamesFeb 7 at 23:45

@James Thank you for the hints! I have corrected and extended the explanation regarding step 1 of the solution accordingly.
– Günther BaylerFeb 10 at 22:53