46 lines
766 B
Bash
46 lines
766 B
Bash
#!/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
|