summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2011-11-14 15:18:54 +0100
committerDave Reisner <dreisner@archlinux.org>2011-11-15 04:48:36 +0100
commit4578e9394c9dda73da418928f9a4658364effa59 (patch)
tree1bf19f707c980451339f7dbe45f5e0485ae03673
parent254c99b80f7f5269409b6af61cb90363bd9f66f5 (diff)
downloadmkinitcpio-4578e9394c9dda73da418928f9a4658364effa59.tar.gz
mkinitcpio-4578e9394c9dda73da418928f9a4658364effa59.tar.xz
use util-linux's switch_root binary
This is a much better solution than busybox's, as it will move our API filesystems and /run for us. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
-rw-r--r--init9
-rw-r--r--install/base1
2 files changed, 2 insertions, 8 deletions
diff --git a/init b/init
index 76ec252..aa296c7 100644
--- a/init
+++ b/init
@@ -115,13 +115,6 @@ if [ "${udevd_running}" -eq 1 ]; then
udevadm info --cleanup-db
fi
-for d in proc sys dev run; do
- if [ -d /new_root/${d} ]; then
- mount --move /${d} /new_root/${d}
- else
- umount /${d}
- fi
-done
-exec env -i TERM=$TERM /sbin/switch_root -c /dev/console /new_root ${init} "$@"
+exec env -i "TERM=$TERM" /sbin/switch_root /new_root $init "$@"
# vim: set ft=sh ts=4 sw=4 et:
diff --git a/install/base b/install/base
index 3d18fe0..0726fa2 100644
--- a/install/base
+++ b/install/base
@@ -9,6 +9,7 @@ build() {
add_binary /sbin/modprobe
add_binary /sbin/blkid
add_binary /bin/mount
+ add_binary /sbin/switch_root
add_symlink "/etc/mtab" "/proc/self/mounts"