Cannot boot with newly installed systemd if /tmp/ is filled with files
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | systemd (Ubuntu) |
Undecided
|
Unassigned | ||
| | upstart (Ubuntu) |
Undecided
|
Unassigned | ||
Bug Description
On a new lubuntu 14.10 install, after installing a bunch of new packages, I rebooted the machine and it stalls on startup. It stays on the four dots of plymouth (not the graphical version).
After trying various options in rescue mode, I end up understanding that the boot system has switched to systemd by looking at /var/log/dpkg.log (attached).
I then tried init=/lib/
So, in rescue mode, I did a mv /tmp/ to /fulltmp/ (an ls wouldn't return so I'm guessing the /tmp/ is really full and the disk is not rocket fast). I recreated /tmp and did a chmod 1777 /tmp, reboot and it works!
While describing this, am not entirelly sure upstart is exempt from this bug (how do I check which init was used after I've booted ?)
This is a very frustrating bug since it doesn't appear on startup even when removing quiet or splash.
| Arthur Lutz (arthur-lutz) wrote : | #1 |
| Martin Pitt (pitti) wrote : | #2 |
| Martin Pitt (pitti) wrote : | #3 |
Under upstart, /etc/init/
| Didier Roche (didrocks) wrote : | #4 |
Here is a patch to get under that situation /tmp mounted as tmpfs and tagged appropriatly
| Changed in systemd (Ubuntu): | |
| assignee: | nobody → Didier Roche (didrocks) |
| status: | New → Triaged |
| Martin Pitt (pitti) wrote : | #5 |
Thanks Didier! Some remarks:
+ * Add systemd-
... "generator"?
Also, s/enablement/
+avail=`df -BM -P /tmp/ | awk 'NR==2 { print substr($4, 0, length($4)-1) }'`
This needs guarding against /tmp not existing. Strange, I know, but let's better be correct. tmpfiles.d/tmp will create it later on if it's missing.
Also, this generator will trigger if tmp.mount is already (manually) enabled, right? In this case you wouldn't have an overflow in /tmp as it's overmounted later on, and that unit should stay inert. You could check for enablement symlinks in /etc, /lib, and /run, but that gets a bit fiddly... Perhaps the "After=tmp.mount" emergency-
| tags: | added: patch |
| Didier Roche (didrocks) wrote : | #6 |
It seems the current plan of record (after long discussion on IRC and upstream ML) would be to enable /tmp on tmpfs on vivid+1 (it's quite late to do it this cycle, even if we switch to systemd by default).
Upstream ML reference after another approach with a service to disable tmp.mount: http://
| Changed in systemd (Ubuntu): | |
| assignee: | Didier Roche (didrocks) → nobody |


You are still running upstart. However, it'd be good to check this under systemd as well. Under either init system, a tmpfs should be mounted on /tmp/ if the disk is full.