#!/bin/bash # # Create an initrd directory if one does not already exist. # # 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, you can access it online at # http://www.gnu.org/licenses/gpl-2.0.html. # # Copyright (C) IBM Corporation, 2013 # # Author: Connor Shu D=tools/testing/selftests/rcutorture # Prerequisite checks [ -z "$D" ] && echo >&2 "No argument supplied" && exit 1 if [ ! -d "$D" ]; then echo >&2 "$D does not exist: Malformed kernel source tree?" exit 1 fi if [ -d "$D/initrd" ]; then echo "$D/initrd already exists, no need to create it" exit 0 fi T=${TMPDIR-/tmp}/mkinitrd.sh.$$ trap 'rm -rf $T' 0 2 mkdir $T cat > $T/init << '__EOF___' #!/bin/sh while : do sleep 1000000 done __EOF___ # Try using dracut to create initrd command -v dracut >/dev/null 2>&1 || { echo >&2 "Dracut not installed"; exit 1; } echo Creating $D/initrd using dracut. # Filesystem creation dracut --force --no-hostonly --no-hostonly-cmdline --module "base" $T/initramfs.img cd $D mkdir initrd cd initrd zcat $T/initramfs.img | cpio -id cp $T/init init echo Done creating $D/initrd using dracut exit 0