FS#39724 - [linux] [mkinitcpio] [coreutils] shutdown hook copies /new_root to /run
Attached to Project:
Arch Linux
Opened by Sandeep (sandy8925) - Wednesday, 02 April 2014, 23:18 GMT
Last edited by Dave Reisner (falconindy) - Friday, 04 April 2014, 19:02 GMT
Opened by Sandeep (sandy8925) - Wednesday, 02 April 2014, 23:18 GMT
Last edited by Dave Reisner (falconindy) - Friday, 04 April 2014, 19:02 GMT
|
Details
Description:
Installed Linux 3.14 from testing repository. System fails to boot after checking filesystem with intense hard drive activity. (or so it would seem - the hard drive LED light was constant) Same problem occurs in two different Arch installs on different machines. Each machine has different hardware. Additional info: * package version(s) - Linux 3.14 -1 and -2 * config and/or log files etc. None - unable to boot system Steps to reproduce: |
This task depends upon
Closed by Dave Reisner (falconindy)
Friday, 04 April 2014, 19:02 GMT
Reason for closing: Fixed
Additional comments about closing: coreutils 8.22-4
Friday, 04 April 2014, 19:02 GMT
Reason for closing: Fixed
Additional comments about closing: coreutils 8.22-4
I don't remember the exact error format but to be more specific for the bug report:
"Error /run/.../new_root/...$file_name No space left on drive."
There are also access denied on /proc.. etc.
It could be a problem in the initram or systemd triggered only by 3.14.
Dave, this looks like cp -ax going nuts and trying to copy the contents of /new_root into /run (which -x should prevent). Any idea what is going on here? (As a side note: shouldn't we just retire the shutdown hook? Its functionality has been superceded by mkinitcpio-generate-shutdown-ramfs.service.)
I think my laptop ( Asus U36SD ) needs that hook in order to shutdown correctly. ( maybe I don't need it anymore )
I had this strange problem with bbswitch to keep nvidia video card off.
After using that the system wouldn't actually turn off after shutdown started. so I had to add the hook.
My current hooks:
HOOKS="base udev autodetect modconf block fsck shutdown bbswitch"
I'll try to remove, update kernel and see what happens.
!! [EDIT] !!:
Ok now I can boot linux-3.14 and shutdown correctly.
at boot I get a message:
switch_root: old root filesystem is not an initramfs: Success
at shutdown a series of:
unmounting /oldroot/{sys,run,dev}
I also had this problem, as I outlined here: https://bbs.archlinux.org/viewtopic.php?id=179456
@brain0: Is the new service just enabled for 3.14 by default or for previous kernels as well?
@paradox: As for your new message of "switch_root", see this discussion here: https://bbs.archlinux.org/viewtopic.php?id=179422
/* Decide whether to copy the contents of the directory. */
if (x->one_file_system && device != 0 && device != src_sb.st_dev)
This check obviously fails if device == 0 - but the device of rootfs is 0 with 3.14. Therefore, cp -x ignores the file system boundary between rootfs and /new_root.
This function is called twice, once with an actual st_dev as an argument for device, and once with 0 (which is supposed to mean "we did not pass a device").
Also, I had chroot'd into the system from a Ubuntu 13.10 Live CD, and rebuilt initramfs using mkinitcpio, and then was able to boot with kernel 3.14 . Rebuilding initramfs from within the Arch install once again, causes this problem to appear.