You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.5 KiB
126 lines
3.5 KiB
From 564c0c4577dfd676472f4a41798909470fee6744 Mon Sep 17 00:00:00 2001 |
|
From: Hari Bathini <hbathini@linux.vnet.ibm.com> |
|
Date: Mon, 2 Jun 2014 16:27:37 +0530 |
|
Subject: [PATCH] lsinird: Adding option "-m|--mod" to list dracut modules in |
|
the image |
|
|
|
This patch adds option "-m|--mod" to lsinitrd to list dracut |
|
modules in the image because sometimes having an option to |
|
only list the dracut modules in the image could be handy. |
|
|
|
Sample output: |
|
-------------- |
|
|
|
[hbathini@localhost dracut]$ sudo ./lsinitrd.sh initramfs-3.11.10-100.fc18.x86_64.img -m |
|
Image: initramfs-3.11.10-100.fc18.x86_64.img: 33M |
|
======================================================================== |
|
Version: dracut-029-1.fc18.2 |
|
|
|
dracut modules: |
|
i18n |
|
network |
|
ifcfg |
|
drm |
|
plymouth |
|
btrfs |
|
crypt |
|
dm |
|
dmraid |
|
kernel-modules |
|
lvm |
|
mdraid |
|
cifs |
|
iscsi |
|
nfs |
|
resume |
|
rootfs-block |
|
terminfo |
|
udev-rules |
|
biosdevname |
|
systemd |
|
usrmount |
|
base |
|
fs-lib |
|
shutdown |
|
======================================================================== |
|
|
|
Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com> |
|
(cherry picked from commit 05d2a14526042417a4a2b1b3d003738b51ab3df7) |
|
--- |
|
lsinitrd.sh | 29 ++++++++++++++++++++++++----- |
|
1 file changed, 24 insertions(+), 5 deletions(-) |
|
|
|
diff --git a/lsinitrd.sh b/lsinitrd.sh |
|
index b36b34e2..b086a635 100755 |
|
--- a/lsinitrd.sh |
|
+++ b/lsinitrd.sh |
|
@@ -27,6 +27,7 @@ usage() |
|
echo |
|
echo "-h, --help print a help message and exit." |
|
echo "-s, --size sort the contents of the initramfs by size." |
|
+ echo "-m, --mod list modules." |
|
echo "-f, --file <filename> print the contents of <filename>." |
|
echo "-k, --kver <kernel version> inspect the initramfs of <kernel version>." |
|
echo |
|
@@ -37,13 +38,15 @@ usage() |
|
[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut |
|
|
|
sorted=0 |
|
+modules=0 |
|
declare -A filenames |
|
|
|
unset POSIXLY_CORRECT |
|
TEMP=$(getopt \ |
|
- -o "shf:k:" \ |
|
+ -o "shmf:k:" \ |
|
--long kver: \ |
|
--long file: \ |
|
+ --long mod \ |
|
--long help \ |
|
--long size \ |
|
-- "$@") |
|
@@ -61,6 +64,7 @@ while (($# > 0)); do |
|
-f|--file) filenames[${2#/}]=1; shift;; |
|
-s|--size) sorted=1;; |
|
-h|--help) usage; exit 0;; |
|
+ -m|--mod) modules=1;; |
|
--) shift;break;; |
|
*) usage; exit 1;; |
|
esac |
|
@@ -119,6 +123,13 @@ extract_files() |
|
done |
|
} |
|
|
|
+list_modules() |
|
+{ |
|
+ echo "dracut modules:" |
|
+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null |
|
+ ((ret+=$?)) |
|
+} |
|
+ |
|
list_files() |
|
{ |
|
echo "========================================================================" |
|
@@ -211,10 +222,18 @@ if (( ${#filenames[@]} > 0 )); then |
|
else |
|
version=$($CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/dracut-*' 'usr/lib/dracut/dracut-*' 2>/dev/null) |
|
((ret+=$?)) |
|
- echo "$version with dracut modules:" |
|
- $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- '*lib/dracut/modules.txt' 2>/dev/null |
|
- ((ret+=$?)) |
|
- list_files |
|
+ echo "Version: $version" |
|
+ echo |
|
+ if [ "$modules" -eq 1 ]; then |
|
+ list_modules |
|
+ echo "========================================================================" |
|
+ else |
|
+ echo -n "Arguments: " |
|
+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null |
|
+ echo |
|
+ list_modules |
|
+ list_files |
|
+ fi |
|
fi |
|
|
|
exit $ret
|
|
|