[archiso] Update archiso_shutdown hook

* Add libraries from /usr/lib and /sbin/losetup.
* Use used_block_devices to detach loop devices.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
This commit is contained in:
Gerardo Exequiel Pozzi 2012-02-22 23:52:06 -03:00
parent 60aa7a1857
commit 354a202bcc
2 changed files with 10 additions and 13 deletions

View File

@ -10,10 +10,8 @@ umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
# Remove all dm-snapshot devices.
dmsetup remove_all
# Remove all loopback devices made for dm-snapshots devices
# other misc loops like used for pure squashfs images
# and unmount/detach *.fs.sfs images.
for _lup in $(ls -r /dev/loop[1-9][0-9][0-9]); do
# Remove all loopback devices.
for _lup in $(grep ^/dev/loop /oldrun/archiso/used_block_devices | tac); do
if ! losetup -d ${_lup} 2> /dev/null; then
umount -d ${_lup}
fi
@ -24,11 +22,10 @@ umount /oldrun/archiso/cowspace
# Unmount boot device if needed (no copytoram=y used)
if [[ ! -d /oldrun/archiso/copytoram ]]; then
umount /oldrun/archiso/bootmnt
# Detach img_loop= and unmount img_dev= (archiso_loop_mnt hook)
if [[ -f /oldrun/archiso/img_dev_loop ]]; then
losetup -d $(cat /oldrun/archiso/img_dev_loop)
if [[ -d /oldrun/archiso/img_dev ]]; then
umount /oldrun/archiso/img_dev
else
umount /oldrun/archiso/bootmnt
fi
if [[ -f /oldrun/archiso/nbd_client.pid ]]; then
nbd-client -d /dev/nbd0

View File

@ -2,15 +2,15 @@ run_hook ()
{
msg -n ":: Creating shutdown ramfs..."
mkdir -p /run/initramfs/usr/bin
mkdir /run/initramfs/usr/sbin
mkdir /run/initramfs/bin
mkdir /run/initramfs/sbin
mkdir /run/initramfs/lib
for _dir in bin lib sbin usr/bin usr/lib usr/sbin; do
mkdir -p /run/initramfs/${_dir}
done
cp /bin/busybox /run/initramfs/bin/
cp /lib/ld-* /run/initramfs/lib/
cp /lib/lib* /run/initramfs/lib/
cp /usr/lib/lib* /run/initramfs/usr/lib/
cp /sbin/dmsetup /run/initramfs/sbin/
cp /sbin/losetup /run/initramfs/sbin/
if [[ -x /bin/nbd-client ]]; then
cp /bin/nbd-client /run/initramfs/bin/
fi