summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2006-08-25 17:04:33 +0200
committermaximilian attems <maks@debian.org>2006-08-25 17:04:33 +0200
commit45989c9f37db0ef23e984ea559f2da784a028366 (patch)
tree7412695c5971e3bf874ee972e06032edb038de39
parentfabe918dee7da26d177d67d4aa8fe3fd6e83e513 (diff)
downloadinitramfs-tools-45989c9f37db0ef23e984ea559f2da784a028366.tar.gz
initramfs-tools-45989c9f37db0ef23e984ea559f2da784a028366.zip
- fix bashism
- rename mdadm.conf in mdrun.conf - retry nfsmount - harden init - fix lvm boot script prereqs
-rw-r--r--debian/changelog20
-rw-r--r--debian/initramfs-tools.postinst2
-rw-r--r--hook-functions2
-rwxr-xr-xinit6
-rwxr-xr-xmkinitramfs11
-rw-r--r--scripts/local2
-rwxr-xr-xscripts/local-top/lvm2
-rwxr-xr-xscripts/local-top/mdrun2
-rw-r--r--scripts/nfs45
-rwxr-xr-xupdate-initramfs2
10 files changed, 69 insertions, 25 deletions
diff --git a/debian/changelog b/debian/changelog
index a5ac22f..bc635a3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,23 @@
+initramfs-tools (0.77) unstable; urgency=medium
+
+ * mkinitramfs, scripts/local-top/mdrun: Use mdrun.conf as config file.
+ Ship mdrun unconditionally if around, should help in recovery situations.
+
+ * debian/initramfs-tools.postinst, hook-functions, mkinitramfs,
+ scripts/local, update-initramfs: Cleanup the "-a" and "-o" bashism.
+
+ * scripts/nfs: Retry to mount NFS on eventual failure. (closes: 377643)
+ Based on a patch by Vagrant Cascadian <vagrant+bugs@freegeek.org>.
+
+ * init: Make sure there is an /dev and /root. Usually passed by the kernel.
+ Also /dev/null or /dev/console might already be shipped.
+ Based on a patch by David Härdeman <david@2gen.com>. (closes: 340494)
+
+ * scripts/local-top/lvm: Fix prereqs s/mdraid/mdrun, thus urgency medium.
+ Thanks Rainer Gauweiler <debian@moppl.inka.de> for the notice.
+
+ -- maximilian attems <maks@sternwelten.at> Fri, 25 Aug 2006 16:55:56 +0200
+
initramfs-tools (0.76) unstable; urgency=medium
* debian/control: Tighten klibc to 1.4.19-2 for fixed nuke. (closes: 383730)
diff --git a/debian/initramfs-tools.postinst b/debian/initramfs-tools.postinst
index 5f46777..2f36f3f 100644
--- a/debian/initramfs-tools.postinst
+++ b/debian/initramfs-tools.postinst
@@ -7,7 +7,7 @@ if [ ! -e /etc/initramfs-tools/modules ]; then
fi
# Regenerate initramfs on upgrade
-if [ "$1" = "configure" -a -n "$2" ]; then
+if [ "$1" = "configure" ] && [ -n "$2" ]; then
update-initramfs -u
fi
diff --git a/hook-functions b/hook-functions
index 08f396d..bfbe56a 100644
--- a/hook-functions
+++ b/hook-functions
@@ -48,7 +48,7 @@ manual_add_modules()
mkdir -p "${DESTDIR}/$(dirname "${mam_x}")"
ln -s "${mam_x}" "${DESTDIR}/$(dirname "${mam_x}")"
- if [ -n "${verbose}" -a "${verbose}" = "y" ]; then
+ if [ -n "${verbose}" ] && [ "${verbose}" = "y" ]; then
echo "Adding module ${mam_x}"
fi
done
diff --git a/init b/init
index 386ec37..a83dc39 100755
--- a/init
+++ b/init
@@ -2,6 +2,10 @@
echo "Loading, please wait..."
+[ -d /dev ] || mkdir -m 0755 /dev
+[ -d /root ] || mkdir --mode=0700 /root
+[ -e /dev/console ] || mknod /dev/console c 5 1
+[ -e /dev/null ] || mknod /dev/null c 1 3
mkdir /sys
mkdir /proc
mkdir /tmp
@@ -18,8 +22,6 @@ fi
mount -t tmpfs -o size=$tmpfs_size,mode=0755 udev /dev
> /dev/.initramfs-tools
mkdir /dev/.initramfs
-mknod /dev/console c 5 1
-mknod /dev/null c 1 3
# Export the dpkg architecture
export DPKG_ARCH=
diff --git a/mkinitramfs b/mkinitramfs
index 759d6cb..d088efa 100755
--- a/mkinitramfs
+++ b/mkinitramfs
@@ -236,10 +236,10 @@ run_scripts /usr/share/initramfs-tools/hooks
run_scripts "${CONFDIR}"/hooks
# FIXME: Remove this Raid block after Etch releases
-if [ -x /sbin/mdadm -a ! -f /usr/share/initramfs-tools/hooks/mdadm ]; then
+if [ -x /sbin/mdadm ] && [ ! -f /usr/share/initramfs-tools/hooks/mdadm ]; then
# use mkinitrd magic for Sarge backwards compat
rootraiddev="$(df / | sed -rne 's,^(/dev/[^[:space:]]+).*,\1,p')"
- echo "rootraiddev=${rootraiddev}" > /conf/mdadm.conf
+ echo "rootraiddev=${rootraiddev}" > /conf/mdrun.conf
mdadm=$(mdadm --detail "${rootraiddev}")
echo "${mdadm}" | awk '
$1 == "Number" && $2 == "Major" { start = 1; next }
@@ -248,16 +248,17 @@ if [ -x /sbin/mdadm -a ! -f /usr/share/initramfs-tools/hooks/mdadm ]; then
$2 == 0 && $3 == 0 { next }
{ devices = devices " " $NF }
END { print "devices='\''" devices "'\''" }' \
- >> /conf/mdadm.conf
+ >> /conf/mdrun.conf
copy_exec /sbin/mdadm /sbin
- copy_exec /sbin/mdrun /sbin
for x in md linear multipath raid0 raid1 raid456 raid5 raid6 raid10; do
manual_add_modules ${x}
done
fi
+[ -x /sbin/mdrun ] && copy_exec /sbin/mdrun /sbin
# FIXME: Remove this LVM block after Etch releases
-if [ -x /sbin/vgchange -a -d /lib/lvm-200 -a ! -f /usr/share/initramfs-tools/hooks/lvm2 ]; then
+if [ -x /sbin/vgchange ] && [ -d /lib/lvm-200 ] \
+ && [ ! -f /usr/share/initramfs-tools/hooks/lvm2 ]; then
copy_exec /lib/lvm-200/vgchange /sbin
for x in dm_mod dm_snapshot dm_mirror; do
manual_add_modules ${x}
diff --git a/scripts/local b/scripts/local
index 9d71a5e..e7bf23e 100644
--- a/scripts/local
+++ b/scripts/local
@@ -23,7 +23,7 @@ mountroot ()
fi
slumber=$(( ${slumber} * 10 ))
- while [ ${slumber} -gt 0 -a ! -e "${ROOT}" ]; do
+ while [ ${slumber} -gt 0 ] && [ ! -e "${ROOT}" ]; do
/bin/sleep 0.1
slumber=$(( ${slumber} - 1 ))
done
diff --git a/scripts/local-top/lvm b/scripts/local-top/lvm
index f9d1490..27053de 100755
--- a/scripts/local-top/lvm
+++ b/scripts/local-top/lvm
@@ -1,6 +1,6 @@
#!/bin/sh
-PREREQ="mdadm mdraid lvm2"
+PREREQ="mdadm mdrun lvm2"
prereqs()
{
diff --git a/scripts/local-top/mdrun b/scripts/local-top/mdrun
index 3ed995c..da890c5 100755
--- a/scripts/local-top/mdrun
+++ b/scripts/local-top/mdrun
@@ -37,7 +37,7 @@ done
[ "${gotraid}" = y ] || exit
# source the presumed root md and it's info
-. ./conf/mdadm.conf
+. ./conf/mdrun.conf
# assemble root raid first due to initrd-tools compatibility
mdadm -A ${rootraiddev} -R -u $uuid $devices
diff --git a/scripts/nfs b/scripts/nfs
index 844db70..f42ed22 100644
--- a/scripts/nfs
+++ b/scripts/nfs
@@ -2,17 +2,9 @@
# FIXME This needs error checking
-# Paramter: Where the root should be mounted
-mountroot ()
+# parse nfs bootargs + launch ipconfig and nfsmount
+do_nfsmount()
{
- [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-top"
- run_scripts /scripts/nfs-top
- [ "$quiet" != "y" ] && log_end_msg
-
- modprobe -q nfs
- # For DHCP
- modprobe -q af_packet
-
# support ip options see linux sources Documentation/nfsroot.txt
case ${IPOPTS} in
none|off)
@@ -40,7 +32,7 @@ mountroot ()
;;
esac
- # FIXME: who writes that?
+ # FIXME: source ipconfig output - might overwrite aboves
. /tmp/net-${DEVICE}.conf
# get nfs root from dhcp
@@ -78,9 +70,38 @@ mountroot ()
fi
nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt}
+}
+
+# NFS root mounting
+mountroot()
+{
+ [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-top"
+ run_scripts /scripts/nfs-top
+ [ "$quiet" != "y" ] && log_end_msg
+
+ modprobe -q nfs
+ # For DHCP
+ modprobe -q af_packet
+
+ # Default delay is around 180s
+ # FIXME: add usplash info
+ if [ -z "${ROOTDELAY}" ]; then
+ delay=180
+ else
+ delay=${ROOTDELAY}
+ fi
+
+ # loop until nfsmount succeds
+ # FIXME: another place of init bin hardcoding
+ while [ ${delay} -gt 0 ] && [ ! -e ${rootmnt}/sbin/init ]; do
+ [ "$quiet" != "y" ] && log_begin_msg "Retrying nfs mount"
+ do_nfsmount
+ # FIXME: ipconfig loops every min at least - better param??
+ delay=$(( ${delay} - 1 ))
+ [ "$quiet" != "y" ] && log_end_msg
+ done
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-bottom"
run_scripts /scripts/nfs-bottom
[ "$quiet" != "y" ] && log_end_msg
-
}
diff --git a/update-initramfs b/update-initramfs
index 1ec8c7d..c1e42ab 100755
--- a/update-initramfs
+++ b/update-initramfs
@@ -95,7 +95,7 @@ run_lilo()
# or if "do_bootloader = yes" is set
run_bootloader()
{
- if [ -x /sbin/grub -o -e /boot/grub/menu.lst ]; then
+ if [ -x /sbin/grub ] || [ -e /boot/grub/menu.lst ]; then
if [ -e /etc/lilo.conf ]; then
[ -r "${KPKGCONF}" ] && \
do_b=$(awk '/bootloader/{print $3}' "${KPKGCONF}")