summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2013-10-19 19:58:09 +0100
committerColin Guthrie <colin@mageia.org>2013-10-29 20:29:08 +0000
commit49b778dec05a142690bf88ead5649fefe0adc1a6 (patch)
tree17d3a0b22936a5576b82de20ce78a187ba4491af
parentc4321813f9f3cd4136203d52c0f20343d7722228 (diff)
downloaddrakx-49b778dec05a142690bf88ead5649fefe0adc1a6.tar
drakx-49b778dec05a142690bf88ead5649fefe0adc1a6.tar.gz
drakx-49b778dec05a142690bf88ead5649fefe0adc1a6.tar.bz2
drakx-49b778dec05a142690bf88ead5649fefe0adc1a6.tar.xz
drakx-49b778dec05a142690bf88ead5649fefe0adc1a6.zip
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.
-rw-r--r--perl-install/install/NEWS2
-rw-r--r--perl-install/install/install2.pm13
-rw-r--r--perl-install/install/share/symlinks6
-rw-r--r--rescue/NEWS2
-rw-r--r--rescue/tree/usr/share/symlinks5
-rwxr-xr-xtools/drakx-in-chroot8
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() {