]>
git.ipfire.org Git - thirdparty/dracut.git/blob - dracut-catimages.sh
3 # Copyright 2009 Red Hat, Inc. All rights reserved.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 echo "Warning: $*" >&2
24 [[ $beverbose ]] && echo "$@" >&2
32 # 80x25 linebreak here ^
34 Usage: $0 [OPTION]... <initramfs> <base image> [<image>...]
35 Creates initial ramdisk image by concatenating several images from the command
36 line and /boot/dracut/
38 -f, --force Overwrite existing initramfs file.
39 -i, --imagedir Directory with additional images to add
40 (default: /boot/dracut/)
41 -o, --overlaydir Overlay directory, which contains files that
42 will be used to create an additional image
43 --nooverlay Do not use the overlay directory
44 --noimagedir Do not use the additional image directory
45 -h, --help This message
46 --debug Output debug information of the build process
47 -v, --verbose Verbose output during the build process
51 imagedir
=/boot
/dracut
/
52 overlay
=/var
/lib
/dracut
/overlay
56 -f |
--force) force
=yes ;;
77 --debug) export debug
="yes" ;;
78 -v |
--verbose) beverbose
="yes" ;;
80 printf "\nUnknown option: %s\n\n" "$1" >&2
92 if [[ -z $outfile ]]; then
93 derror
"No output file specified."
101 if [[ -z $baseimage ]]; then
102 derror
"No base image specified."
107 if [[ -f $outfile && ! $force ]]; then
108 derror
"Will not override existing initramfs ($outfile) without --force"
112 if [[ ! $no_imagedir && ! -d $imagedir ]]; then
113 derror
"Image directory $overlay is not a directory"
117 if [[ ! $no_overlay && ! -d $overlay ]]; then
118 derror
"Overlay $overlay is not a directory"
122 if [[ ! $no_overlay ]]; then
123 ofile
="$imagedir/90-overlay.img"
124 dinfo
"Creating image $ofile from directory $overlay"
125 type pigz
&> /dev
/null
&& gzip=pigz ||
gzip=gzip
127 cd "$overlay" ||
return 1
128 find . |
cpio --quiet -H newc
-o |
$gzip -9 > "$ofile"
132 if [[ ! $no_imagedir ]]; then
133 for i
in "$imagedir/"*.img
; do
134 [[ -f $i ]] && images
+=("$i")
140 dinfo
"Using base image $baseimage"
141 cat -- "$baseimage" > "$outfile"
143 for i
in "${images[@]}"; do
145 cat -- "$i" >> "$outfile"
148 dinfo
"Created $outfile"