slackware-current/source/a/mkinitrd/geninitrd
Patrick J Volkerding 9951f6a1a8 Fri Nov 8 22:17:50 UTC 2024
a/kernel-firmware-20241108_ad74054-noarch-1.txz:  Upgraded.
a/kernel-generic-6.11.7-x86_64-1.txz:  Upgraded.
  Unless disabled in /etc/default/geninitrd, automatically generate an initial
  ramdisk upon package installation or upgrade.
a/mkinitrd-1.4.11-x86_64-46.txz:  Rebuilt.
  geninitrd: also accept /opt/sbin/geninitrd as an override.
  Suggested by regdub.
  Since the installer sends different args to the setup scripts, we can't use
  $1 as the kernel file with setup.01.mkinitrd, so convert it into a variable
  in geninitrd instead (if needed).
  mkinitrd_command_generator.sh: pvdisplay will complain if there are any file
  descriptors besides stdin, stdout, and stderr, which will always be true when
  called from a package install script due to file locking. So send stderr from
  the two calls to pvdisplay to /dev/null.
d/kernel-headers-6.11.7-x86-1.txz:  Upgraded.
k/kernel-source-6.11.7-noarch-1.txz:  Upgraded.
l/python-packaging-24.2-x86_64-1.txz:  Upgraded.
n/iptables-1.8.11-x86_64-1.txz:  Upgraded.
n/lftp-4.9.3-x86_64-1.txz:  Upgraded.
x/ibus-m17n-1.4.34-x86_64-1.txz:  Upgraded.
x/xbacklight-1.2.4-x86_64-1.txz:  Upgraded.
x/xf86-video-nouveau-1.0.18-x86_64-1.txz:  Upgraded.
x/xrandr-1.5.3-x86_64-1.txz:  Upgraded.
xfce/xfce4-weather-plugin-0.11.3-x86_64-1.txz:  Upgraded.
extra/xf86-video-fbdev/xf86-video-fbdev-0.5.1-x86_64-1.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
2024-11-09 00:53:08 +01:00

61 lines
2.9 KiB
Bash

#!/bin/bash
# Copyright 2019, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This is a simple script to generate an initial ramdisk when a new
# kernel is installed. If the kernel is vmlinuz-6.11.5, it will generate
# initrd-6.11.5.img. If there's a symlink pointing at the kernel (for
# example, vmlinuz-generic), it will also make a matching initrd-generic.img
# symlink. Finally, it also supports a plain initrd.gz symlink to the initrd,
# which might still be needed by some old setups.
# To generate an initrd automatically, just run "geninitrd".
# If KERNEL_SYMLINK is defined and points to a kernel, we'll use that.
# Otherwise, if KERNEL is defined and points to a kernel, we'll use that.
# Otherwise, if $1 is defined and points to a kernel, we'll use that.
# Example: geninitrd /boot/vmlinuz-6.11.6
# If none of these are true, we'll use the newest kernel we find in /boot.
# If you use an encrypted root, you may need an appropriate /etc/mkinitrd.conf
# (if you will be setting GENERATOR=mkinitrd in /etc/default/geninitrd), or you
# could try using GENERATOR=dracut.
# If you have requirements that we have not covered here, you can always make
# your own script and call it /usr/local/bin/geninitrd-custom, and we will
# use that instead.
cd $(dirname $0)/../..
# If we don't have $KERNEL or $KERNEL_SYMLINK, maybe we got the kernel as $1:
if [ -z "$KERNEL" -a -z "$KERNEL_SYMLINK" ]; then
export KERNEL=$1
fi
# In case you cannot make this script do exactly what you require, you're
# welcome to create /usr/local/sbin/geninitrd or /opt/sbin/geninitrd and it
# will be run instead of the usual setup script:
if [ -x /usr/local/sbin/geninitrd ]; then
chroot . /usr/local/sbin/geninitrd $*
elif [ -x /opt/sbin/geninitrd ]; then
chroot . /opt/sbin/geninitrd $*
else # we will run the default handler from the setup scripts:
chroot . /var/lib/pkgtools/setup/setup.01.mkinitrd $*
fi