summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Blosser2007-01-18 20:45:09 -0600
committerJeremy Blosser2007-01-21 01:49:32 -0600
commitef2ef4c4f71bae44e01f87480bf7ed492d86f51b (patch)
tree93ff1531f0a33dafb2ac33ef6c76f2d352bb98c0
parentf55dbdb052a0cb237eb2f0c5df04ec2e28451332 (diff)
init.d: Try to fix bug 9177 some more; this isn't final but should get us past
breaking things. This tries to do LVM setup multiple times; ideally it should only do it when it will work.
-rwxr-xr-xsmgl/init.d/DETAILS2
-rw-r--r--smgl/init.d/HISTORY6
-rwxr-xr-xsmgl/init.d/init.d/devices6
-rwxr-xr-xsmgl/init.d/init.d/mountall.sh23
-rwxr-xr-xsmgl/init.d/init.d/mountroot.sh20
5 files changed, 42 insertions, 15 deletions
diff --git a/smgl/init.d/DETAILS b/smgl/init.d/DETAILS
index ffaa50da26..c66e2688a2 100755
--- a/smgl/init.d/DETAILS
+++ b/smgl/init.d/DETAILS
@@ -1,7 +1,7 @@
SPELL=init.d
VERSION=2.2.0
LICENSE[0]=GPL
- PATCHLEVEL=14
+ PATCHLEVEL=17
KEYWORDS="smgl"
ENTERED=20030505
SHORT="This is the basic initalization system of SMGL"
diff --git a/smgl/init.d/HISTORY b/smgl/init.d/HISTORY
index e44935b02f..c9198816bb 100644
--- a/smgl/init.d/HISTORY
+++ b/smgl/init.d/HISTORY
@@ -1,3 +1,9 @@
+2007-01-18 Jeremy Blosser <jblosser-smgl@firinn.org>
+ * init.d/devices: Centralize /proc mounting.
+ * init.d{mountroot.sh,mountall.sh}: Try to not break systems that use
+ an initrd and root LVM (bug 9177).
+ * DETAILS: PATCHLEVEL++.
+
2007-01-10 Jaka Kranjc <lynxlynxlynx@sourcemage.org>
* CONFIGURE: added check before sourcing devices
diff --git a/smgl/init.d/init.d/devices b/smgl/init.d/init.d/devices
index e69c318c94..a2db4b1f00 100755
--- a/smgl/init.d/init.d/devices
+++ b/smgl/init.d/init.d/devices
@@ -32,9 +32,6 @@ start_udev()
# mount sysfs
echo "Mounting sysfs at /sys"
mount -n -t sysfs none /sys
- # mount proc
- echo "Mounting /proc"
- mount -n -t proc none /proc
echo "Mounting ramfs at $udev_root"
mount -n -t ramfs none $udev_root
# create some needed stuff
@@ -94,6 +91,9 @@ start_static()
start()
{
+ # mount proc
+ echo "Mounting /proc"
+ mount -a -n -t proc
eval "start_$DEVICES"
}
diff --git a/smgl/init.d/init.d/mountall.sh b/smgl/init.d/init.d/mountall.sh
index b9b5eee095..30d5ca80a2 100755
--- a/smgl/init.d/init.d/mountall.sh
+++ b/smgl/init.d/init.d/mountall.sh
@@ -51,29 +51,30 @@ checkfs()
rm -f /fastboot /forcefsck
}
-start()
+scanlvm()
{
- required_executable /bin/mount
- required_executable /sbin/fsck
-
- echo "Mounting proc file system..."
- mount -a -t /proc
- evaluate_retval
-
# find devices that were set up in initramfs/rd
if optional_executable /sbin/dmsetup
then
- echo "(re)creating device mapper nodes"
+ echo "(re)Creating device mapper nodes..."
# won't check retval because kernel just may lack device mapper
/sbin/dmsetup mknodes
fi
if optional_executable /sbin/vgscan && optional_executable /sbin/vgchange ; then
- echo -n "Scanning for and initializing all available LVM volume groups..."
+ echo "Scanning for and initializing all available LVM volume groups..."
/sbin/vgscan --ignorelockingfailure --mknodes &&
/sbin/vgchange -ay --ignorelockingfailure
- evaluate_retval
fi
+}
+
+start()
+{
+ required_executable /bin/mount
+ required_executable /sbin/fsck
+
+ scanlvm
+ evaluate_retval
checkfs
diff --git a/smgl/init.d/init.d/mountroot.sh b/smgl/init.d/init.d/mountroot.sh
index 4331972ea2..50afe6597b 100755
--- a/smgl/init.d/init.d/mountroot.sh
+++ b/smgl/init.d/init.d/mountroot.sh
@@ -36,6 +36,23 @@ checkrootfs()
rm -f /fastboot /forcefsck
}
+scanlvm()
+{
+ # find devices that were set up in initramfs/rd
+ if optional_executable /sbin/dmsetup
+ then
+ echo "(re)Creating device mapper nodes..."
+ # won't check retval because kernel just may lack device mapper
+ /sbin/dmsetup mknodes
+ fi
+
+ if optional_executable /sbin/vgscan && optional_executable /sbin/vgchange ; then
+ echo "Scanning for and initializing all available LVM volume groups..."
+ /sbin/vgscan --ignorelockingfailure --mknodes &&
+ /sbin/vgchange -ay --ignorelockingfailure
+ fi
+}
+
start()
{
required_executable /bin/mount
@@ -51,6 +68,9 @@ start()
raidstart --all
fi
+ scanlvm
+ evaluate_retval
+
echo "Mounting root file system read only..."
mount -n -o remount,ro /
evaluate_retval || exit 1