Blob Blame History Raw
From 04d18f558743aa5b3430fe71fc8f9d7facd489ea Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Sat, 30 Jun 2012 11:34:46 +0200
Subject: [PATCH] add "--hardlink" "--nohardlink" options

---
 dracut.8.asc |   10 ++++++++--
 dracut.sh    |   20 ++++++++++++++------
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/dracut.8.asc b/dracut.8.asc
index bab5996..196e2e8 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -183,10 +183,16 @@ example:
     inhibit installation of any fsck tools
 
 **--strip**::
-    strip binaries in the initramfs (default)
+    strip binaries in the initramfs
 
 **--nostrip**::
-    do not strip binaries in the initramfs
+    do not strip binaries in the initramfs (default)
+
+**--hardlink**::
+    hardlink files in the initramfs (default)
+
+**--nohardlink**::
+    do not hardlink files in the initramfs
 
 **--prefix** _<dir>_::
     prefix initramfs files with the specified directory
diff --git a/dracut.sh b/dracut.sh
index 7ca3e8d..4a6d5c7 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -65,6 +65,8 @@ Creates initial ramdisk images for preloading modules
   --no-kernel           Do not install kernel drivers and firmware files
   --strip               Strip binaries in the initramfs
   --nostrip             Do not strip binaries in the initramfs (default)
+  --hardlink            Hardlink files in the initramfs (default)
+  --nohardlink          Do not hardlink files in the initramfs
   --prefix [DIR]        Prefix initramfs files with [DIR]
   --noprefix            Do not prefix initramfs files (default)
   --mdadmconf           Include local /etc/mdadm.conf
@@ -251,6 +253,8 @@ while (($# > 0)); do
         --no-kernel)   kernel_only="no"; no_kernel="yes";;
         --strip)       do_strip_l="yes";;
         --nostrip)     do_strip_l="no";;
+        --hardlink)    do_hardlink_l="yes";;
+        --nohardlink)  do_hardlink_l="no";;
         --noprefix)    prefix_l="/";;
         --mdadmconf)   mdadmconf_l="yes";;
         --nomdadmconf) mdadmconf_l="no";;
@@ -434,6 +438,9 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
 
 [[ $drivers_dir_l ]] && drivers_dir=$drivers_dir_l
 [[ $do_strip_l ]] && do_strip=$do_strip_l
+[[ $do_strip ]] || do_strip=no
+[[ $do_hardlink_l ]] && do_hardlink=$do_hardlink_l
+[[ $do_hardlink ]] || do_hardlink=yes
 [[ $prefix_l ]] && prefix=$prefix_l
 [[ $prefix = "/" ]] && unset prefix
 [[ $hostonly_l ]] && hostonly=$hostonly_l
@@ -444,7 +451,6 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
 [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
 [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
 [[ $tmpdir ]] || tmpdir=/var/tmp
-[[ $do_strip ]] || do_strip=no
 [[ $compress_l ]] && compress=$compress_l
 [[ $show_modules_l ]] && show_modules=$show_modules_l
 [[ $nofscks_l ]] && nofscks="yes"
@@ -883,11 +889,13 @@ if [[ $do_strip = yes ]] ; then
     dinfo "*** Stripping files done ***"
 fi
 
-type hardlink &>/dev/null && {
-    dinfo "*** hardlinking files ***"
-    hardlink "$initdir" 2>&1
-    dinfo "*** hardlinking files done ***"
-}
+if [[ $do_hardlink = yes ]] ; then
+    type hardlink &>/dev/null && {
+        dinfo "*** hardlinking files ***"
+        hardlink "$initdir" 2>&1
+        dinfo "*** hardlinking files done ***"
+    }
+fi
 
 dinfo "*** Creating image file ***"
 if ! ( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet| \