From e2de6b9e694ca40a91039521fd9ff518a1cf5bfc Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sun, 11 Apr 2004 16:25:56 -0400 Subject: [PATCH] Fix the Debian initrd scripts so that they actually work correctly. (Addresses Debian Bug #241183) --- debian/e2fsprogs.initrd | 27 +++++++++++++++++++++++++++ debian/e2fsprogs.mkinitrd | 12 ++++++++---- debian/rules | 8 +++++++- 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 debian/e2fsprogs.initrd diff --git a/debian/e2fsprogs.initrd b/debian/e2fsprogs.initrd new file mode 100644 index 0000000..7f0f93d --- /dev/null +++ b/debian/e2fsprogs.initrd @@ -0,0 +1,27 @@ +#!/bin/sh +cd / +mount -nt proc proc proc +rootdev=$(cat proc/sys/kernel/real-root-dev) +cmdline=$(cat /proc/cmdline) +umount -n proc +if [ $rootdev != 256 ]; then + mount -nt proc proc /proc + mount -nt tmpfs tmpfs /dev2 + mount -nt devfs devfs /devfs > /dev2/null 2>&1 + get_device + mount_device + ext3root=`awk '!/^ *#/ { if (($2 == "/") && ($3 == "ext3")) {print $1;}}' < /mnt/etc/fstab` + umount -n /devfs > /dev2/null 2>&1 + umount -n /mnt > /dev2/null 2>&1 + umount /mnt > /dev2/null 2>&1 + if test -n "$ext3root" ; then + mount -nt tmpfs tmpfs /etc + echo >> /etc/fstab + TUNE2FS_SKIP_MOUNT_CHECK=yes + export TUNE2FS_SKIP_MOUNT_CHECK + /sbin/tune2fs -O has_journal /dev2/root2 > /dev2/null 2>&1 + umount -n /etc + fi + umount -n /dev2 + umount -n /proc +fi diff --git a/debian/e2fsprogs.mkinitrd b/debian/e2fsprogs.mkinitrd index be0b895..6686bf3 100644 --- a/debian/e2fsprogs.mkinitrd +++ b/debian/e2fsprogs.mkinitrd @@ -1,5 +1,9 @@ #!/bin/sh -ext3root=`grep -v '^ *#' /etc/fstab | awk '{ if (($2 == "/") && ($3 == "ext3")) {print $1;}}'` -if test -n "$ext3root" ; then - /sbin/tune2fs -O has_journal $ext3root > /dev/null -fi +cp /usr/share/e2fsprogs/initrd.ext3-add-journal \ + $INITRDDIR/scripts/ext3-add-journal.sh +cp /sbin/tune2fs $INITRDDIR/sbin +cp /usr/bin/mawk $INITRDDIR/bin/awk +for i in `ldd /sbin/tune2fs /usr/bin/mawk | sort -u | awk '{print $3}'` +do + cp $i $INITRDDIR/$i +done diff --git a/debian/rules b/debian/rules index a1f33ea..f3e2736 100644 --- a/debian/rules +++ b/debian/rules @@ -264,7 +264,13 @@ binary-arch: install install-udeb # mkinitrd script mkdir -p debian/e2fsprogs/usr/share/initrd-tools/scripts install -m755 debian/e2fsprogs.mkinitrd \ - debian/e2fsprogs/usr/share/initrd-tools/scripts + debian/e2fsprogs/usr/share/initrd-tools/scripts/e2fsprogs + + # initrd script + mkdir -p debian/e2fsprogs/usr/share/e2fsprogs + install -m755 debian/e2fsprogs.initrd \ + debian/e2fsprogs/usr/share/e2fsprogs/initrd.ext3-add-journal + # symlinks to prepare dh_installdocs run mkdir -p ${debdir}/e2fsck-static/usr/share/doc/ -- 1.8.3.1