Re: diskless enbd-client/enbd on initrd
Rudolph Bott <[email protected]> Fri, 24 Feb 2006 09:56:42 +0100
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Organization | Megabit Informationstechnik GmbH |
| Message-ID | <[email protected]> |
Peter T. Breuer wrote: > "Also sprach Rudolph Bott:" > >>>Yes, but my question about how you chroot or umount the original root >>>while the clients are running on it stands. > > > You're not answering to this point (which I have put about three > or four times now :(). What do you mean exactly? Neither the old root gets unmounted nor any chroot'ing is done > > >>>with the question I put a couple of times now! How can you chroot while >>>the client daemons are running on the original root? At the very least >>>they have the /dev/nda* entries open, no? That's what the error seemed >>>to indicate. > > >>the initrd. There is no chroot or whatsoever; its a simple call to >>pivot_root(), which swaps the "roots" (initrd and rootfs on nbd). The > > >>The error messages you see are >>generated by the function perror(), > > > Use set -x in the script if you want to see where the error occurs. As > I said, I suppose it occurs at a mount or chroot or whatever, since the > client is running on the old root and has the old device open, and thus > several things will have a reference count above zero! I am looking for > confirmation of that. > I really don't get that "set -x" thing? What script are you talking about? The kernel calls the C-program I've alreay posted and that again calls the regular /sbin/init from the real root fs (after mounting it successfully). > >>And since the mount fails (because there is nothing "behind" /dev/nda), > > > So the mount does fail, as I guessed? I suppose for the reason > I guessed. > > >>pivot_root fails, too. > > > Indeed. > > >>I Hope that clarified some things ;) > > > I didn't need anything clarified - I am trying (and failing miserably) > to direct your attention to the question of how you expect the mount or > chroot or pivot root or whatever it is to succeed when the client is > running on the old root and has several things open there! Since everything works fine (at least the initial boot process) with nbd-client, I thought I should give enbd-client a try and test it. I'm not very happy with the overall performance of nbd-client (fs errors which make the system crash sometimes etc.) > > When you have answered that question (and it is a question about your > expectations), we will make some progress, I think! > > (in the expectation that the answer is "I didn't think about that", and > "I don't know what effect that would have on the various operations I > am trying to do", I urge you to check, using set -x, as I suggested, > exactly what the command is that is failing, and to go on from there > to strace that command, getting the precise error value - which is > EBUSY, I suppose; I would suggest, guessing again as to what is going on, that you don't attempt to dismount the old root at all, if you are > trying to do that - just leave it; if it was a ramdisk, live with it > for the moment :-). I'm not trying to unmount anything (that would be like biting the hands that feed you), it's just a call to pivot_root(); explanation below (taken from man page): -- snip -- DESCRIPTION pivot_root moves the root file system of the current process to the directory put_old and makes new_root the new root file system of the current process. The typical use of pivot_root is during system startup, when the system mounts a temporary root file system (e.g. an initrd), then mounts the real root file system, and eventually turns the latter into the current root of all relevant processes or threads. -- snip -- -- Mit freundlichen Gruessen / with kind regards Rudolph Bott ------------------------------------------------------------------- Megabit Informationstechnik GmbH Karstr.25 41068 Moenchengladbach Tel: 02161/308980 mailto:[email protected] ftp://megabit.net Fax: 02161/3089818 mailto:[email protected] http://megabit.net -------------------------------------------------------------------