From 49b778dec05a142690bf88ead5649fefe0adc1a6 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Sat, 19 Oct 2013 19:58:09 +0100 Subject: install/rescue: Adapt to a dracut based stage1. The main change here is not remounting a fresh /run. Dracut does this for us and we actually need to keep this one as the initial udev database (when udev is started by dracut) is stored here and thus mounting an empty fs could see us lose some metadata. We no longer touch the /bin, /sbin or /lib[64] symlinks as these are already relative symlinks into /usr and simply bind mounting /usr is enough. --- perl-install/install/NEWS | 2 ++ perl-install/install/install2.pm | 13 ++----------- perl-install/install/share/symlinks | 6 ------ rescue/NEWS | 2 ++ rescue/tree/usr/share/symlinks | 5 ----- tools/drakx-in-chroot | 8 ++++++++ 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index b56604de1..08acc5fa8 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,3 +1,5 @@ +- adapt to a dracut based stage1 + Version 15.68.1 - 14 October 2013 - adapt to latest mdadm diff --git a/perl-install/install/install2.pm b/perl-install/install/install2.pm index 02888ff2c..f6e30e8d8 100644 --- a/perl-install/install/install2.pm +++ b/perl-install/install/install2.pm @@ -295,15 +295,6 @@ sub exitInstall { sub start_udev() { return if fuzzy_pidofs('udevd'); - # Ensure /run is mounted - mkdir("/run", 0755); - run_program::run("mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /run"); - - # Fake dracut boot (due to checks employed when running dracut during install) - # as we know that we'll have the needed metadata in udevadm db due to us - # starting udev nice and early here. - mkdir_p("/run/initramfs"); - # Start up udev: mkdir_p("/run/udev/rules.d"); $ENV{UDEVRULESD} = "/run/udev/rules.d"; @@ -316,7 +307,7 @@ sub start_udev() { sub stop_udev() { kill 15, fuzzy_pidofs('udevd'); sleep(2); - fs::mount::umount($_) foreach '/dev/pts', '/dev/shm', '/run'; + fs::mount::umount($_) foreach '/dev/pts', '/dev/shm'; } #-###################################################################################### @@ -618,7 +609,7 @@ sub main { } $o->{prefix} = $::prefix = $::testing ? "/tmp/test-perl-install" : "/mnt"; - mkdir $::prefix, 0755; + mkdir $::prefix, 0755 if ! -d $::prefix; init_path(); diff --git a/perl-install/install/share/symlinks b/perl-install/install/share/symlinks index 8c2432248..eb0de9b47 100644 --- a/perl-install/install/share/symlinks +++ b/perl-install/install/share/symlinks @@ -1,5 +1,3 @@ -/sbin -/bin /etc/mke2fs.conf /etc/protocols /etc/services @@ -7,7 +5,3 @@ /etc/passwd /etc/pki /etc/urpmi -/lib -/lib64 -/usr -/tmp /var/run diff --git a/rescue/NEWS b/rescue/NEWS index 57cf609ae..cf1c694d2 100644 --- a/rescue/NEWS +++ b/rescue/NEWS @@ -1,3 +1,5 @@ +- adapt to a dracut based stage1 + Version 1.45.1 - 14 October 2013 by Colin Guthrie - many btrfs tools no longer exist diff --git a/rescue/tree/usr/share/symlinks b/rescue/tree/usr/share/symlinks index 659a42c8c..091153872 100644 --- a/rescue/tree/usr/share/symlinks +++ b/rescue/tree/usr/share/symlinks @@ -1,9 +1,4 @@ -/bin /boot /etc/fstab /etc/inittab /etc/rc.sysinit -/lib -/lib64 -/sbin -/usr diff --git a/tools/drakx-in-chroot b/tools/drakx-in-chroot index 1384c2e18..852792349 100755 --- a/tools/drakx-in-chroot +++ b/tools/drakx-in-chroot @@ -184,6 +184,14 @@ sub create_initial_symlinks() { symlink $from, $to or die "symlinking $to failed\n"; } } + $from = "$STAGE2_LOCATION_ROOTED/usr"; + $to = "$SLASH_LOCATION/usr"; + symlink $from, $to or die "symlinking $to failed\n"; + foreach ('bin', 'sbin', 'lib', 'lib64') { + $from = "usr/$_"; + $to = "$SLASH_LOCATION/$_"; + symlink $from, $to or die "symlinking $to failed\n"; + } } sub create_initial_devices() { -- cgit v1.2.1