add chroot helper for virt-rescue, Bug 674684 - mount-rootfs-and-do-chroot.sh
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libguestfs?expand=0&rev=84
This commit is contained in:
@@ -32,3 +32,53 @@ do
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# 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 proc sys selinux
|
||||
do
|
||||
if test -d /${i} && test -d "${mnt}/${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__
|
||||
|
||||
|
Reference in New Issue
Block a user