From 43df4ee274e7135aff87868bf3bf2fbab47aa8b4 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Tue, 30 Mar 2021 10:23:26 +0200 Subject: [PATCH] feat(mkinitrd): remove mkinitrd It was not working anyway, so nobody used it for years. If it is not used, just remove it. mkinitrd-suse.sh will be maintained by SUSE as it is SUSE specific anyway. --- Makefile | 6 +- dracut.asc | 3 - dracut.sh | 3 - dracut.spec | 12 -- mkinitrd-dracut.sh | 239 -------------------------- mkinitrd-suse.8.asc | 106 ------------ mkinitrd-suse.sh | 396 -------------------------------------------- mkinitrd.8.asc | 66 -------- 8 files changed, 1 insertion(+), 830 deletions(-) delete mode 100755 mkinitrd-dracut.sh delete mode 100644 mkinitrd-suse.8.asc delete mode 100755 mkinitrd-suse.sh delete mode 100644 mkinitrd.8.asc diff --git a/Makefile b/Makefile index 0d082fec69..8fa69bd69e 100644 --- a/Makefile +++ b/Makefile @@ -37,8 +37,6 @@ man7pages = dracut.cmdline.7 \ man8pages = dracut.8 \ dracut-catimages.8 \ - mkinitrd.8 \ - mkinitrd-suse.8 \ modules.d/98dracut-systemd/dracut-cmdline.service.8 \ modules.d/98dracut-systemd/dracut-initqueue.service.8 \ modules.d/98dracut-systemd/dracut-mount.service.8 \ @@ -148,7 +146,6 @@ install: all mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8 install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages - install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd install -m 0644 dracut.conf $(DESTDIR)$(sysconfdir)/dracut.conf mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d @@ -267,8 +264,7 @@ syncheck: [ $$V ] && echo "checking for [[: $$i"; if grep -Fq '[[ ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains [["; fi; \ [ $$V ] && echo "checking for echo -n: $$i"; if grep -Fq 'echo -n ' "$$i" ; then ret=$$(($$ret+1)); echo "$$i contains echo -n"; fi \ done;exit $$ret - @ret=0;for i in *.sh mkinitrd-dracut.sh modules.d/*/*.sh \ - modules.d/*/module-setup.sh; do \ + @ret=0;for i in *.sh modules.d/*/*.sh modules.d/*/module-setup.sh; do \ [ $$V ] && echo "bash syntax check: $$i"; bash -n "$$i" ; ret=$$(($$ret+$$?)); \ done;exit $$ret ifeq ($(HAVE_SHELLCHECK),yes) diff --git a/dracut.asc b/dracut.asc index f35535c270..cc11d01e29 100644 --- a/dracut.asc +++ b/dracut.asc @@ -162,9 +162,6 @@ include::dracut.cmdline.7.asc[] [[lsinitrd1]] include::lsinitrd.1.asc[] -[[mkinitrd8]] -include::mkinitrd.8.asc[] - = Developer Manual :leveloffset: 1 diff --git a/dracut.sh b/dracut.sh index b8db2dd6de..b71db7dda2 100755 --- a/dracut.sh +++ b/dracut.sh @@ -1,9 +1,6 @@ #!/bin/bash -p # # Generator script for a dracut initramfs -# Tries to retain some degree of compatibility with the command line -# of the various mkinitrd implementations out there -# # Copyright 2005-2013 Red Hat, Inc. All rights reserved. # diff --git a/dracut.spec b/dracut.spec index 1ca7bde0e0..05bea6b85d 100644 --- a/dracut.spec +++ b/dracut.spec @@ -56,11 +56,6 @@ BuildRequires: docbook-xsl-stylesheets libxslt BuildRequires: asciidoc %endif -%if 0%{?suse_version} > 9999 -Obsoletes: mkinitrd < 2.6.1 -Provides: mkinitrd = 2.6.1 -%endif - Obsoletes: dracut-fips <= 047 Provides: dracut-fips = %{version}-%{release} Obsoletes: dracut-fips-aesni <= 047 @@ -265,9 +260,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse* %endif %if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} <= 9999 -rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd -rm -f -- $RPM_BUILD_ROOT%{_mandir}/man8/mkinitrd.8* rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1* %endif @@ -284,7 +277,6 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{_datadir}/bash-completion/completions/dracut %{_datadir}/bash-completion/completions/lsinitrd %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 -%{_bindir}/mkinitrd %{_bindir}/lsinitrd %endif %dir %{dracutlibdir} @@ -311,12 +303,8 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{_mandir}/man8/dracut.8* %{_mandir}/man8/*service.8* %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 -%{_mandir}/man8/mkinitrd.8* %{_mandir}/man1/lsinitrd.1* %endif -%if 0%{?suse_version} -%{_mandir}/man8/mkinitrd-suse.8* -%endif %{_mandir}/man7/dracut.kernel.7* %{_mandir}/man7/dracut.cmdline.7* %{_mandir}/man7/dracut.modules.7* diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh deleted file mode 100755 index 2abf34fab7..0000000000 --- a/mkinitrd-dracut.sh +++ /dev/null @@ -1,239 +0,0 @@ -#!/bin/bash --norc -kver=$(uname -r) - -boot_dir="/boot" -quiet=0 -host_only=0 -force=0 - -error() { echo "$@" >&2; } - -usage() { - [[ $1 == '-n' ]] && cmd=echo || cmd=error - - $cmd "usage: ${0##*/} [--version] [--help] [-v] [-f] [--preload ]" - $cmd " [--image-version] [--with=]" - $cmd " [--nocompress]" - $cmd " " - $cmd "" - $cmd " (ex: ${0##*/} /boot/initramfs-$kver.img $kver)" - - [[ $1 == '-n' ]] && exit 0 - exit 1 -} - -# Little helper function for reading args from the commandline. -# it automatically handles -a b and -a=b variants, and returns 1 if -# we need to shift $3. -read_arg() { - # $1 = arg name - # $2 = arg value - # $3 = arg parameter - param="$1" - local rematch='^[^=]*=(.*)$' result - if [[ $2 =~ $rematch ]]; then - read "$param" <<< "${BASH_REMATCH[1]}" - else - for ((i = 3; i <= $#; i++)); do - # Only read next arg if it not an arg itself. - if [[ ${*:i:1} == -* ]]; then - break - fi - result="$result ${@:i:1}" - # There is no way to shift our callers args, so - # return "no of args" to indicate they should do it instead. - done - read "$1" <<< "$result" - return $((i - 3)) - fi -} - -# Taken over from SUSE mkinitrd -default_kernel_images() { - local regex kernel_image kernel_version version_version initrd_image - local qf='%{NAME}-%{VERSION}-%{RELEASE}\n' - - case "${DRACUT_ARCH:-$(uname -m)}" in - s390 | s390x) - regex='image' - ;; - ppc*) - regex='vmlinux' - ;; - i?86 | x86_64) - regex='vmlinuz' - ;; - arm*) - regex='[uz]Image' - ;; - aarch64 | riscv64) - regex='Image' - ;; - *) - regex='vmlinu.' - ;; - esac - - # user mode linux - if grep -q UML /proc/cpuinfo; then - regex='linux' - fi - - kernel_images="" - initrd_images="" - for kernel_image in $(ls $boot_dir \ - | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \ - | grep -v kdump$); do - - # Note that we cannot check the RPM database here -- this - # script is itself called from within the binary kernel - # packages, and rpm does not allow recursive calls. - - [ -L "$boot_dir/$kernel_image" ] && continue - [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue - kernel_version=$(/usr/bin/get_kernel_version \ - $boot_dir/$kernel_image 2> /dev/null) - initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|") - if [ "$kernel_image" != "$initrd_image" -a \ - -n "$kernel_version" -a \ - -d "/lib/modules/$kernel_version" ]; then - kernel_images="$kernel_images $boot_dir/$kernel_image" - initrd_images="$initrd_images $boot_dir/$initrd_image" - fi - done - for kernel_image in $kernel_images; do - kernels="$kernels ${kernel_image#*-}" - done - for initrd_image in $initrd_images; do - targets="$targets $initrd_image" - done - host_only=1 - force=1 -} - -while (($# > 0)); do - case ${1%%=*} in - --with-usb) - read_arg usbmodule "$@" || shift $? - basicmodules="$basicmodules ${usbmodule:-usb-storage}" - unset usbmodule - ;; - --with-avail) - read_arg modname "$@" || shift $? - basicmodules="$basicmodules $modname" - ;; - --with) - read_arg modname "$@" || shift $? - basicmodules="$basicmodules $modname" - ;; - --version) - echo "mkinitrd: dracut compatibility wrapper" - exit 0 - ;; - -v | --verbose) dracut_args="${dracut_args} -v" ;; - -f | --force) force=1 ;; - --preload) - read_arg modname "$@" || shift $? - basicmodules="$basicmodules $modname" - ;; - --image-version) img_vers=yes ;; - --rootfs | -d) - read_arg rootfs "$@" || shift $? - dracut_args="${dracut_args} --filesystems $rootfs" - ;; - --nocompress) dracut_args="$dracut_args --no-compress" ;; - --help) usage -n ;; - --builtin) ;; - --without*) ;; - --without-usb) ;; - --fstab*) ;; - --ifneeded) ;; - --omit-scsi-modules) ;; - --omit-ide-modules) ;; - --omit-raid-modules) ;; - --omit-lvm-modules) ;; - --omit-dmraid) ;; - --allow-missing) ;; - --net-dev*) ;; - --noresume) ;; - --rootdev*) ;; - --thawdev*) ;; - --rootopts*) ;; - --root*) ;; - --loopdev*) ;; - --loopfs*) ;; - --loopopts*) ;; - --looppath*) ;; - --dsdt*) ;; - -s) ;; - --quiet | -q) quiet=1 ;; - -b) - read_arg boot_dir "$@" || shift $? - if [ ! -d $boot_dir ]; then - error "Boot directory $boot_dir does not exist" - exit 1 - fi - ;; - -k) # Would be nice to get a list of images here - read_arg kernel_images "$@" || shift $? - for kernel_image in $kernel_images; do - kernels="$kernels ${kernel_image#*-}" - done - host_only=1 - force=1 - ;; - -i) - read_arg initrd_images "$@" || shift $? - for initrd_image in $initrd_images; do - targets="$targets $boot_dir/$initrd_image" - done - ;; - *) if [[ ! $targets ]]; then - targets=$1 - elif [[ ! $kernels ]]; then - kernels=$1 - else - usage - fi ;; - esac - shift -done - -[[ $targets && $kernels ]] || default_kernel_images -[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage) - -# We can have several targets/kernels, transform the list to an array -targets=($targets) -[[ $kernels ]] && kernels=($kernels) - -[[ $host_only == 1 ]] && dracut_args="${dracut_args} -H" -[[ $force == 1 ]] && dracut_args="${dracut_args} -f" - -echo "Creating: target|kernel|dracut args|basicmodules " -for ((i = 0; i < ${#targets[@]}; i++)); do - - if [[ $img_vers ]]; then - target="${targets[$i]}-${kernels[$i]}" - else - target="${targets[$i]}" - fi - kernel="${kernels[$i]}" - - # Duplicate code: No way found how to redirect output based on $quiet - if [[ $quiet == 1 ]]; then - echo "$target|$kernel|$dracut_args|$basicmodules" - if [[ $basicmodules ]]; then - dracut $dracut_args --add-drivers "$basicmodules" "$target" \ - "$kernel" &> /dev/null - else - dracut $dracut_args "$target" "$kernel" &> /dev/null - fi - else - if [[ $basicmodules ]]; then - dracut $dracut_args --add-drivers "$basicmodules" "$target" \ - "$kernel" - else - dracut $dracut_args "$target" "$kernel" - fi - fi -done diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc deleted file mode 100644 index e39ac52b06..0000000000 --- a/mkinitrd-suse.8.asc +++ /dev/null @@ -1,106 +0,0 @@ -MKINITRD(8) -=========== -:doctype: manpage -:man source: dracut -:man manual: dracut - -NAME ----- -mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs - -SYNOPSIS --------- -*mkinitrd* ['OPTION...'] - -DESCRIPTION ------------ -*mkinitrd* creates an initramfs image for the kernel with -version by calling *dracut*. - -[IMPORTANT] -This version of mkinitrd is provided for compatibility with older -versions of mkinitrd. If a more fine grained control over the -resulting image is needed, *dracut* should be called directly. - -OPTIONS -------- -**-R, --version**:: - print info about the version - -**-k** __:: - List of kernel images for which initrd files are created (relative - to _boot_dir_), Image name should begin with the following string, - defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_ - for everything else. - -**-i** __:: - List of file names (relative to _boot_dir_) for the initrd; positions - have to match the _kernel_list_. Defaults to _initrd_. - -**-m** __:: - Modules to include in initrd, defaults to _INITRD_MODULES_ variable - in */etc/sysconfig/kernel*. - -**-f** __:: - Features to be enabled for the initrd. In general mkinitrd - configures the initrd for the root device it is started from. With - this option additional feature can be enabled. - -**-b** __:: - Boot directory, defaults to */boot*, where the initrd is created. - -**-d** __:: - Root device, defaults to the device from which the root_dir is - mounted; overwrites the rootdev environment variable if set - -**-s** __:: - Add splash animation and bootscreen to initrd. - -**-D** _:: - Run dhcp on the specified interface (for example "eth0"). - -**-I** _:: - Configure the specified interface statically. - -**-a** _:: - Attach compiled ACPI DSDT (Differentiated System Description Table) - to initrd. This replaces the DSDT of the BIOS. Defaults to the - _ACPI_DSDT_ variable in */etc/sysconfig/kernel*. - -**-M** _:: - System.map file to use. - -**-B**:: - Don’t run the *update-bootloader(8)* script after the initrd(s) have - been created. This is useful if you call mkinitrd(8) for anything - else than the running system. - -**-A**:: - Create a so called "monster initrd" which includes all available - features and modules. This calls dracut with --no-hostonly and - --no-hostonly-cmdline parameters internally, instead of the default - --hostonly and --hostonly-cmdline. - -**-v, --verbose**:: - increase verbosity level - -**-L**:: - Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for - testing if you don’t want to clutter the system log. - -**--help**:: - print a help message and exit. - -AVAILABILITY ------------- -The mkinitrd command is part of the dracut package and is available from -link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org] - -AUTHORS -------- -Harald Hoyer, Hannes Reinecke - -SEE ALSO --------- -*dracut*(8) -*update-bootloader*(8) diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh deleted file mode 100755 index 4e2a34fae1..0000000000 --- a/mkinitrd-suse.sh +++ /dev/null @@ -1,396 +0,0 @@ -#!/bin/bash --norc -# -# mkinitrd compatibility wrapper for SUSE. -# -# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -boot_dir="/boot" -quiet=0 -logfile=/var/log/YaST2/mkinitrd.log -dracut_cmd=dracut - -error() { echo "$@" >&2; } - -usage() { - [[ $1 == '-n' ]] && cmd=echo || cmd=error - - $cmd "usage: ${0##*/} [options]" - $cmd "" - $cmd " Create initial ramdisk images that contain all kernel modules needed" - $cmd " in the early boot process, before the root file system becomes" - $cmd " available." - $cmd " This usually includes SCSI and/or RAID modules, a file system module" - $cmd " for the root file system, or a network interface driver module for dhcp." - $cmd "" - $cmd " options:" - $cmd ' -f "feature list" Features to be enabled when generating initrd.' - $cmd " Available features are:" - $cmd " iscsi, md, multipath, lvm, lvm2," - $cmd " ifup, fcoe, dcbd" - $cmd ' -k "kernel list" List of kernel images for which initrd files are' - $cmd " created. Defaults to all kernels found in /boot." - $cmd ' -i "initrd list" List of file names for the initrd; position have' - $cmd ' match to "kernel list". Defaults to all kernels' - $cmd " found in /boot." - $cmd " -b boot_dir Boot directory. Defaults to /boot." - $cmd " -t tmp_dir Temporary directory. Defaults to /var/tmp." - $cmd " -M map System.map file to use." - $cmd ' -A Create a so called "monster initrd" which' - $cmd " includes all features and modules possible." - $cmd " -B Do not update bootloader configuration." - $cmd " -v Verbose mode." - $cmd " -L Disable logging." - $cmd " -h This help screen." - $cmd ' -m "module list" Modules to include in initrd. Defaults to the' - $cmd " INITRD_MODULES variable in /etc/sysconfig/kernel" - $cmd ' -u "DomU module list" Modules to include in initrd. Defaults to the' - $cmd " DOMU_INITRD_MODULES variable in" - $cmd " /etc/sysconfig/kernel." - $cmd " -d root_device Root device. Defaults to the device from" - $cmd " which / is mounted. Overrides the rootdev" - $cmd " environment variable if set." - $cmd " -j device Journal device" - $cmd " -D interface Run dhcp on the specified interface." - $cmd " -I interface Configure the specified interface statically." - $cmd " -a acpi_dsdt Obsolete, do not use." - $cmd " -s size Add splash animation and bootscreen to initrd." - - [[ $1 == '-n' ]] && exit 0 - exit 1 -} - -# Little helper function for reading args from the commandline. -# it automatically handles -a b and -a=b variants, and returns 1 if -# we need to shift $3. -read_arg() { - # $1 = arg name - # $2 = arg value - # $3 = arg parameter - param="$1" - local rematch='^[^=]*=(.*)$' result - if [[ $2 =~ $rematch ]]; then - read "$param" <<< "${BASH_REMATCH[1]}" - else - for ((i = 3; i <= $#; i++)); do - # Only read next arg if it not an arg itself. - if [[ ${*:i:1} == -* ]]; then - break - fi - result="$result ${@:i:1}" - # There is no way to shift our callers args, so - # return "no of args" to indicate they should do it instead. - done - read "$1" <<< "$result" - return $((i - 3)) - fi -} - -# Helper functions to calculate ipconfig command line -calc_netmask() { - local prefix=$1 - - [ -z "$prefix" ] && return - mask=$((0xffffffff << (32 - prefix))) - byte1=$((mask >> 24)) - byte2=$((mask >> 16)) - byte3=$((mask >> 8)) - byte4=$((mask & 0xff)) - netmask=$(printf "%d.%d.%d.%d" $((byte1 & 0xff)) $((byte2 & 0xff)) $((byte3 & 0xff)) $byte4) - - echo $netmask -} - -ipconfig() { - local interface=$1 - local iplink macaddr broadcast gateway ipaddr prefix netmask - - iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p') - macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p') - broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p') - gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p') - - ipaddr=${iplink%%/*} - prefix=${iplink##*/} - netmask=$(calc_netmask $prefix) - - echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}" -} - -is_xen_kernel() { - local kversion=$1 - local root_dir=$2 - local cfg - - for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config; do - test -r $cfg || continue - grep -q '^CONFIG_XEN=y$' $cfg - return - done - test $kversion != "${kversion%-xen*}" - return -} - -kernel_version_from_image() { - local dir="${1%/*}/" - [[ $dir != "$1" ]] || dir="" - local kernel_image="$1" kernel_image_gz="${dir}vmlinux-${1#*-}.gz" - echo kernel_image_gz="'$kernel_image_gz'" >&2 - - if get_kernel_version "$kernel_image" 2> /dev/null; then - return - fi - - # As a last resort, try vmlinux-$version.gz, which might be around - get_kernel_version "$kernel_image_gz" 2> /dev/null -} - -# Taken over from SUSE mkinitrd -default_kernel_images() { - local regex kernel_image kernel_version version_version initrd_image - local qf='%{NAME}-%{VERSION}-%{RELEASE}\n' - - case "${DRACUT_ARCH:-$(uname -m)}" in - s390 | s390x) - regex='image' - ;; - ppc | ppc64) - regex='vmlinux' - ;; - i?86 | x86_64) - regex='vmlinuz' - ;; - arm*) - regex='[uz]Image' - ;; - aarch64 | riscv64) - regex='Image' - ;; - *) - regex='vmlinu.' - ;; - esac - - kernel_images="" - initrd_images="" - for kernel_image in $(ls $boot_dir \ - | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \ - | grep -v kdump$); do - - # Note that we cannot check the RPM database here -- this - # script is itself called from within the binary kernel - # packages, and rpm does not allow recursive calls. - - [ -L "$boot_dir/$kernel_image" ] && continue - [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue - - kernel_version=$(kernel_version_from_image \ - $boot_dir/$kernel_image 2> /dev/null) - initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|") - if [ "$kernel_image" != "$initrd_image" -a \ - -n "$kernel_version" -a \ - -d "/lib/modules/$kernel_version" ]; then - kernel_images="$kernel_images $boot_dir/$kernel_image" - initrd_images="$initrd_images $boot_dir/$initrd_image" - fi - done - for kernel_image in $kernel_images; do - kernels="$kernels ${kernel_image#*-}" - done - for initrd_image in $initrd_images; do - targets="$targets $initrd_image" - done -} - -while (($# > 0)); do - case ${1%%=*} in - -f) - read_arg feature_list "$@" || shift $? - # Could be several features - ;; - -k) # Would be nice to get a list of images here - read_arg kernel_images "$@" || shift $? - for kernel_image in $kernel_images; do - [ -L "/boot/$kernel_image" ] && kernel_image="$(readlink "/boot/$kernel_image")" - kernels="$kernels ${kernel_image#*-}" - done - ;; - -i) - read_arg initrd_images "$@" || shift $? - for initrd_image in $initrd_images; do - [ -L "/boot/$initrd_image" ] && initrd_image="$(readlink "/boot/$initrd_image")" - # Check if the initrd_image contains a path. - # if not, then add the default boot_dir - dname=$(dirname $initrd_image) - if [ "$dname" == "." ]; then - targets="$targets $boot_dir/$initrd_image" - else - targets="$targets $initrd_image" - fi - done - ;; - -b) - read_arg boot_dir "$@" || shift $? - if [ ! -d $boot_dir ]; then - error "Boot directory $boot_dir does not exist" - exit 1 - fi - ;; - -t) - read_arg tmp_dir "$@" || shift $? - dracut_args="${dracut_args} --tmpdir $tmp_dir" - ;; - -M) - read_arg map_file "$@" || shift $? - ;; - -A) dracut_args="${dracut_args} --no-host-only" ;; - -B) skip_update_bootloader=1 ;; - -v | --verbose) dracut_args="${dracut_args} -v" ;; - -L) logfile= ;; - -h | --help) usage -n ;; - -m) read_arg module_list "$@" || shift $? ;; - -u) - read_arg domu_module_list "$@" || shift $? - echo "mkinitrd: DomU modules not yet supported" - ;; - -d) - read_arg rootfs "$@" || shift $? - dracut_args="${dracut_args} --filesystems $rootfs" - ;; - -D) - read_arg dhcp_if "$@" || shift $? - dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp" - ;; - -I) - read_arg static_if "$@" || shift $? - dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)": - ;; - -a) - read_arg acpi_dsdt "$@" || shift $? - echo "Obsolete -a param, use acpi_table_dir= and acpi_override= variables in /etc/dracut.conf.d/" - exit 1 - ;; - -s) - read_arg boot_splash "$@" || shift $? - echo "mkinitrd: boot splash not yet supported" - exit 1 - ;; - -V) - echo "mkinitrd: vendor scipts are no longer supported" - exit 1 - ;; - --dracut) - read_arg dracut_cmd "$@" || shift $? - ;; - --version | -R) - echo "mkinitrd: dracut compatibility wrapper" - exit 0 - ;; - --quiet | -q) quiet=1 ;; - *) if [[ ! $targets ]]; then - targets=$1 - elif [[ ! $kernels ]]; then - kernels=$1 - else - usage - fi ;; - esac - shift -done - -[[ $targets && $kernels ]] || default_kernel_images -if [[ ! $targets || ! $kernels ]]; then - error "No kernel found in $boot_dir or bad modules dir in /lib/modules" - exit 1 -fi - -# We can have several targets/kernels, transform the list to an array -targets=($targets) -[[ $kernels ]] && kernels=($kernels) - -[[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile" -dracut_args="${dracut_args} --force" - -[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}" -[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1 - -# Update defaults from /etc/sysconfig/kernel -if [ -f /etc/sysconfig/kernel ]; then - . /etc/sysconfig/kernel -fi -[[ $module_list ]] || module_list="${INITRD_MODULES}" -[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}" -shopt -s extglob - -failed="" - -for ((i = 0; i < ${#targets[@]}; i++)); do - - if [[ $img_vers ]]; then - target="${targets[$i]}-${kernels[$i]}" - else - target="${targets[$i]}" - fi - kernel="${kernels[$i]}" - - if is_xen_kernel $kernel $rootfs; then - modules_all="${module_list} ${domu_module_list}" - else - modules_all="${module_list}" - fi - - # Remove leading and trailing spaces needs (set above): shopt -s extglob - modules_all=${modules_all%%+([[:space:]])} - modules_all=${modules_all##+([[:space:]])} - - echo "Creating initrd: $target" - - # Duplicate code: No way found how to redirect output based on $quiet - if [[ $quiet == 1 ]]; then - # Duplicate code: --force-drivers must not be called with empty string - # -> dracut bug workarounded ugly, because of complex whitespace - # expansion magics - if [ -n "${modules_all}" ]; then - $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" &> /dev/null - [ $? -ne 0 ] && failed="$failed $target" - else - $dracut_cmd $dracut_args "$target" "$kernel" &> /dev/null - [ $? -ne 0 ] && failed="$failed $target" - fi - else - if [ -n "${modules_all}" ]; then - $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" - [ $? -ne 0 ] && failed="$failed $target" - else - $dracut_cmd $dracut_args "$target" "$kernel" - [ $? -ne 0 ] && failed="$failed $target" - fi - fi -done - -if [ "$skip_update_bootloader" ]; then - echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually." -else - update-bootloader --refresh - [ $? -ne 0 ] && echo "Updating bootloader failed" && exit 1 -fi - -if [ "$failed" != "" ]; then - echo "Generating $failed targets failed" - exit 1 -fi - -exit 0 diff --git a/mkinitrd.8.asc b/mkinitrd.8.asc deleted file mode 100644 index 82afe2dfd4..0000000000 --- a/mkinitrd.8.asc +++ /dev/null @@ -1,66 +0,0 @@ -MKINITRD(8) -========= -:doctype: manpage -:man source: dracut -:man manual: dracut -:man version: {version} - -NAME ----- -mkinitrd - is a compat wrapper, which calls dracut to generate an initramfs - -SYNOPSIS --------- -*mkinitrd* ['OPTION...'] [] - -DESCRIPTION ------------ -mkinitrd creates an initramfs image for the kernel with -version by calling "dracut". - -[IMPORTANT] -If a more fine grained control over the resulting image is needed, -"dracut" should be called directly. - -OPTIONS -------- -**--version**:: - print info about the version - -**-v, --verbose**:: - increase verbosity level - -**-f, --force**:: - overwrite existing initramfs file. - -**--image-version*:: - append the kernel version to the target image - -. - -**--with=**:: - add the kernel module to the initramfs. - -**--preload=**:: - preload the kernel module in the initramfs before any other kernel - modules are loaded. This can be used to ensure a certain device naming, - which should in theory be avoided and the use of symbolic links in /dev is - encouraged. - -**--nocompress**:: - do not compress the resulting image. - -**--help**:: - print a help message and exit. - -AVAILABILITY ------------- -The mkinitrd command is part of the dracut package and is available from -link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org] - -AUTHORS -------- -Harald Hoyer - -SEE ALSO --------- -*dracut*(8)