Adding default manifest and some mkdumprd2 bug fixes
This commit is contained in:
parent
6513a7e53d
commit
54f5e9a2c7
73
manifest
Normal file
73
manifest
Normal file
@ -0,0 +1,73 @@
|
||||
######################################################
|
||||
# Generic kdump initramfs manifest
|
||||
# 1) Loads all modules
|
||||
# 2) Starts all mdraid, lvm partitions
|
||||
# 3) Mounts the rootfs
|
||||
# 4) Copies /proc/vmcore to /mnt/var/crash/<date>/vmcore
|
||||
#
|
||||
# Notes on syntax:
|
||||
# There are 6 major commands to use when generating manifest files
|
||||
# They are:
|
||||
# 1) reg
|
||||
# reg <source file> <dest path>
|
||||
# A regular file copy from the source to the dst directory
|
||||
# 2) creg
|
||||
# creg <source file> <dest path>
|
||||
# like reg, but only copy if the source file exists
|
||||
#
|
||||
# 3) ren
|
||||
# ren <src file> <dst file>
|
||||
# rename a file into the initramfs
|
||||
#
|
||||
# 4) cren
|
||||
# cren <src file> <dst file>
|
||||
# like creg, but rename the dst file
|
||||
#
|
||||
# 5) gen
|
||||
# gen <binary> <dst file> <options>
|
||||
# execute the specified binary, redirecting stdout to <dst>
|
||||
#
|
||||
# 6) exec
|
||||
# exec <binary> <options>
|
||||
# execute the specified binary. Option 1 is the
|
||||
# base dir where the initramfs is being built
|
||||
# $1/temp is temp file space, $1/stage is the initramfs
|
||||
# options passed on command line after that
|
||||
#####################################################
|
||||
|
||||
####################################################
|
||||
#This script populates the initramfs with:
|
||||
# busybox
|
||||
# kpartx
|
||||
# lvm
|
||||
# dmsetup
|
||||
# It also symlinks all the supported apps in busybox to
|
||||
# busybox
|
||||
####################################################
|
||||
exec populate_kdump_std_files
|
||||
|
||||
####################################################
|
||||
# This is a rudimentary module population script
|
||||
# It looks at the currently loaded modules, copies them
|
||||
# To the initramfs, and generates /etc/module_load_list
|
||||
# which is a dependency ordered list of those modules
|
||||
# which can be used at runtime for module loading
|
||||
###################################################
|
||||
exec generate_module_list
|
||||
|
||||
###################################################
|
||||
# Lets get all our lvm and mdraid configs on board
|
||||
###################################################
|
||||
creg /etc/lvm/lvm.conf /etc/lvm
|
||||
creg /etc/mdadm.conf /etc
|
||||
|
||||
###################################################
|
||||
# Grab fstab, modifying it to mount under /mnt
|
||||
###################################################
|
||||
gen awk /etc/fstab '/^[^#]/{print $1 " /mnt"$2 " "$3 " "$4 " "$5 " "$6}' /etc/fstab
|
||||
|
||||
###################################################
|
||||
# Grab the standard initscript to capture to the local
|
||||
# rootfs
|
||||
###################################################
|
||||
ren /usr/share/kexec-tools/kdumpinit.rootfs /init
|
29
mkdumprd2
29
mkdumprd2
@ -1,5 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
##########################################################
|
||||
#File: mkdumprd2
|
||||
#Author: Neil Horman <nhorman@redhat.com>
|
||||
@ -168,6 +167,10 @@ validate_manifest_line()
|
||||
{
|
||||
|
||||
case "$1" in
|
||||
creg|cren)
|
||||
# Just like reg/ren, but check nothing
|
||||
# we don't copy anything if its not there
|
||||
;;
|
||||
reg|ren)
|
||||
# Regular file, make sure that the file exists
|
||||
if [ ! -f $2 ]
|
||||
@ -195,12 +198,18 @@ validate_manifest_line()
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo $1 | grep -q "^#"
|
||||
echo $1 | grep -q "^#.*$"
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
# its a comment
|
||||
continue
|
||||
fi
|
||||
echo $1 | grep -q "^ *$"
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
# Blank line
|
||||
continue
|
||||
fi
|
||||
# Unknown manifest type, fail
|
||||
return 1
|
||||
;;
|
||||
@ -235,6 +244,20 @@ populate_from_manifest()
|
||||
fi
|
||||
|
||||
case "$type" in
|
||||
creg|cren)
|
||||
# Conditional regular copy/rename
|
||||
if [ -f $sarg ]
|
||||
then
|
||||
if [ "$type" == "creg" ]
|
||||
then
|
||||
ddir=$STAGE_DIR/$dpath
|
||||
else
|
||||
ddir=$(dirname $STAGE_DIR/$dpath)
|
||||
fi
|
||||
mkdir -p $ddir
|
||||
cp $sarg $STAGE_DIR/$dpath
|
||||
fi
|
||||
;;
|
||||
reg|ren)
|
||||
# Just do a raw copy from the source path
|
||||
# to the dest path
|
||||
@ -253,7 +276,7 @@ populate_from_manifest()
|
||||
# to stdout
|
||||
ddir=$(dirname $STAGE_DIR/$dpath)
|
||||
mkdir -p $ddir
|
||||
$sarg $opts > $STAGE_DIR/$dpath
|
||||
/bin/sh -c "$sarg $opts > $STAGE_DIR/$dpath"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
cleanup_and_exit 1 "$sarg: Non-zero exit"
|
||||
|
Loading…
Reference in New Issue
Block a user