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
|