]>
Commit | Line | Data |
---|---|---|
449b0e07 | 1 | #!/bin/bash |
fb67e4aa HH |
2 | # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
3 | # ex: ts=8 sw=4 sts=4 et filetype=sh | |
4 | ||
5 | set -e | |
449b0e07 HH |
6 | |
7 | KERNEL_VERSION="$(uname -r)" | |
8 | ||
c2196a25 HH |
9 | [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut |
10 | SKIP="$dracutbasedir/skipcpio" | |
11 | [[ -x $SKIP ]] || SKIP=cat | |
12 | ||
449b0e07 HH |
13 | [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id |
14 | ||
15 | if [[ $MACHINE_ID ]] && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then | |
16 | IMG="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd" | |
17 | fi | |
18 | [[ -f $IMG ]] || IMG="/boot/initramfs-${KERNEL_VERSION}.img" | |
19 | ||
fb67e4aa | 20 | cd /run/initramfs |
449b0e07 | 21 | |
fb67e4aa | 22 | [ -f .need_shutdown -a -f "$IMG" ] || exit 1 |
c2196a25 | 23 | if $SKIP "$IMG" | zcat | cpio -id --no-absolute-filenames --quiet >/dev/null; then |
32bd2fbb | 24 | rm -f -- .need_shutdown |
c2196a25 | 25 | elif $SKIP "$IMG" | xzcat | cpio -id --no-absolute-filenames --quiet >/dev/null; then |
32bd2fbb | 26 | rm -f -- .need_shutdown |
c2196a25 | 27 | elif $SKIP "$IMG" | lz4 -d -c | cpio -id --no-absolute-filenames --quiet >/dev/null; then |
a0b85db1 | 28 | rm -f -- .need_shutdown |
50bc2253 HH |
29 | else |
30 | # something failed, so we clean up | |
449b0e07 | 31 | echo "Unpacking of $IMG to /run/initramfs failed" >&2 |
32bd2fbb | 32 | rm -f -- /run/initramfs/shutdown |
50bc2253 HH |
33 | exit 1 |
34 | fi | |
35 | ||
36 | exit 0 |