File libguestfs.mkinitrd.setup.sh of Package libguestfs
#!/bin/bash
#%stage: block
#
# copy daemon manually because it is located in RPM_BUILD_ROOT
mkdir -vp $tmp_mnt/usr/sbin
cp_bin $(type -p guestfsd) $tmp_mnt/usr/sbin
# many guestfish commands need a mount point
# in guestfsd the mount point defaults to /sysroot
mkdir -vp $tmp_mnt/sysroot
# guestfsd tries to bind mount this directory
mkdir -vp $tmp_mnt/selinux
for f in /etc/magic /usr/share/misc/magic*
do
if test -e $f
then
cp -av --parents $f $tmp_mnt/
fi
done
for d in /usr/share/*augeas*
do
if test -e $d
then
cp -av --parents $d $tmp_mnt/
fi
done
for t in \
screen \
vt100 \
vt102 \
linux
do
ti="`echo /usr/share/terminfo/*/${t}`"
for f in $ti
do
if test -f "${f}"
then
cp -av --parents $f $tmp_mnt
fi
done
done
# copy needed rules
for rule in \
95-dm-notify.rules \
; do
if [ -f /lib/udev/rules.d/$rule ]; then
cp /lib/udev/rules.d/$rule $tmp_mnt/lib/udev/rules.d
elif [ -f /etc/udev/rules.d/$rule ]; then
cp /etc/udev/rules.d/$rule $tmp_mnt/etc/udev/rules.d
fi
done
# Need to create the modprobe.conf file to force read-write mode
if modinfo -k $kernel_version ext4 | grep -E '^parm:[[:blank:]]+rw:'
then
mkdir -vp "${tmp_mnt}/etc/modprobe.d"
echo "options ext4 rw=1" >> "${tmp_mnt}/etc/modprobe.d/ext4-kmp-rw.conf"
fi
# Bug 674684 - mount-rootfs-and-do-chroot.sh
cat > $tmp_mnt/bin/mount-rootfs-and-do-chroot.sh <<'__EOF__'
#!/bin/bash
# Usage: $0 /dev/sda5
rootfs=$1
mnt=/sysroot
mounts=
if test -b "${rootfs}"
then
mkdir -v -p "${mnt}"
if mount -v "${rootfs}" "${mnt}"
then
for i in dev dev/pts proc sys selinux
do
if test -d /${i} && test -d "${mnt}/${i}" && test "`stat -c %D /`" != "`stat -c %D ${i}`"
then
mount -v --bind /${i} "${mnt}/${i}"
fi
done
chroot "${mnt}" su -
while read b m rest
do
case "${m}" in
${mnt}*)
mounts="${m} ${mounts}"
;;
esac
done <<-EOF
`
cat < /proc/mounts
`
EOF
for i in ${mounts}
do
umount -v "${i}"
done
fi
fi
__EOF__