automating chroot and mount/unmount

Hello,

I am trying to automate a task that I believe is easy. It is documented
for manual system administrative purposes here:
Gentoo Linux -- Installing the Gentoo Base System - chapter 6

I am attempting to do the following in a script:

# cd $TOP_OF_ROOT_FS
# mount -t proc none /mnt/gentoo/proc
# chroot . /bin/bash -c "cmd; cmd; exit 0"
# umount ./proc

However I am getting an error:
umount: /proc: device is busy

Does anyone know how to automate this sort of task?

Also, what is the difference between:
mount -t proc none /mnt/gentoo/proc
&
mount -t proc proc /mnt/gentoo/proc

Is "none" or "proc" merely a label for the fstab?

Thanks in advance.
Cheers!
:smiley:

No, proc is separate file space, and usually lots of information is being written there. Why do you need to un-mount it ? Try < -f > flag, for force.

Thank you for the info!

Hey! maybe there is a work-around?...

Perhaps I should describe the goal? That always seems to help. :slight_smile:

The motivation for chroot'ing is that I am not familiar with another way
to run mkinitrd. Honestly, I am surprised there is not -root option such
as with the rpm command or tar's -C, etc. If I could specify my root
file system on the command line then I would not need to chroot to
run mkinitrd.

So, to answer your question, the reason I believe I need to unmount, is
because after chroot exits, I archive the entire file system with tar.
If I do not unmount, tar complains with errors that the file system is
mounted or some such message. I can set up the situation again and
fetch the exact error message.

Through experience, I know that if I unmount properly, I avoid the
tar error when creating the tar archive.

Cheers,
:smiley:

as usual, the solution seems trivial.
Is there an explanation why the mount and umount are
not "symmetrical" with respect to the chroot. ?

in script:

mount -t proc none /mnt/gentoo/proc
chroot . /bin/bash -c "/root/myscript.sh; umount /proc; exit 0"

####

Do'h!