LFS Book Chapter 6 - 1st step (chroot to /mnt/lfs) doens't work
6 months or so back I installed LFS 3.1. Everything was cool until I reached the point where I couldn't get networking to work.
Here I am 6 months later ... and I figured I'd just start again from 'scratch'. I downloaded the cvs packages and got started. I've tried a couple iterations and am bombing at the same spot,at least diverging from the instructions in the book.
The basic problem is the first step I take in chapter 6: 'chroot'
to /mnt/lfs doens't appear to work. I'm not that experienced with the chroot command, but I figure after performing the command, your shell will interpret your new root as the NEWROOT specified in your command. In other works, after doing a 'chroot /mnt/lfs ..', if you 'cd' to '/' you should actually be where '/mnt/lfs' was before you chrooted.
The problem I'm having is that after performing the chroot, my '/' is still where it originally was. Thus, all the subsequent commands in the instructions don't work because the '/' given in the command is with respect to the chrooted environment (i.e. old '/mnt/lfs') ... and it appears I haven't successfully chrooted, so the instructions as posted no longer work.
I considered modifying the commands subsequent to the chroot command to treat /mnt/lfs as my '/', but I figured I should find out why this happened instead.
Any pointers, advice would be appreciated.
I looked for some other posts regarding chroot problems and ran the ldd command as suggested in another post. The response was "not a dynamic executable" which was not surprising because I pretty much followed the LFS book instructions to a 'T'.
p.s. I'm really eager to get an LFS system up and running, so I'm hoping for some help here ... otherwise I'll be forced to abandon once again.
p.p.s. I'm running from RH7.2. All linux partitions are ext3 except /mnt/lfs which was created with the mke2fs command as detailed in the instructions. Don't see why this would affect chroot, but felt it was some configuration info I should include in the post.
What does echo $LFS give you?
A hint, copy and paste the command from the HTML version into the terminal.
First of all, thanks for the reply.
$LFS is '/mnt/lfs' as it should be.
The tricky thing about C&Ping this command was the following:
1) First of all, 'chroot' is not found unless I explicitly give it the path '/usr/sbin/chroot' so I couldn't cut&paste.
Hmmm, I guess that was the main reason. The last command in that chunk didn't work either '/static/bin/bash --login' ... but that's because it's looking at my RedHat root instead of $LFS.
This is a noodle-scratcher!
A few ideas:
make sure you use host distro chroot, not LFS chroot
make sure you are in a directory above $LFS when you chroot
stop using $LFS variable after chrooting
make sure you are logged in as root when chrooting
one thing I know fershur:
"I considered modifying the commands subsequent to the chroot command to treat /mnt/lfs as my '/', but I figured I should find out why this happened instead."
This will not work because all the packages you install after will be linked to your host libraries etc. . .And your LFS will never work independantly.
Is chroot giving you an error message, or just failing silently?
If you are taking some of the stuff out of the chroot command that the book specify's, then you might run into problems. the "/static/bin/env -i" part clears all of your current environment variables, and then the command goes on to give you new ones. If you don't clear the environment, it might cause your /static/bin/bash search to stay in your base distro's filesystem.
because I couldn't cut & paste directly from the book, I entered the command manually not taking into account the fact that the '\' was a continuation character. So my chroot ended at the first line.
It's working now.
My bad. Thanks guys.
ok i seem to have a problem with the same step when i run the chroot i get this
chroot: /tools/bin/env: No such file or directory
i am using the 5.0 version of the book and have cut and pasted the same exact text
chroot $LFS /tools/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
i am running slackware 9.0 and i do get the /mnt/lfs when i run lfs
[removed: my own stupidity] :p
CHROOT Fails in Chapter 6
Apparently this is a real obvious situation, but I have yet to figure it out for myself. What was the solution to this problem?
I'm sure scratching my head! Thanks in advance for any helpful nudge!
Ok, here's what I figured out -- on my own:
In my directory listing, one would note a tools directory. Wax that sucker and create a symlink pointing to the root of the file system as follows:
ln -s / /mnt/lfs/tools
chroot commands can now find their libraries and all works as advertised.
hello for all
i'm facing the same problem as the rest, when t completed chapter5, i reached the chroot:
chroot $LFS /usr/bin/env -i HOME=/root \
TERM=$TERM /bin/bash --login
i typed this command,($LFS=/mnt/lfs) and the result is:
chroot: /bin/bash: No such file or directory
i'm hoping to get the help and the reason of this problem
note:i use fedora core3 dist. i work with LFS version 3.1
For me help:
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
/tools/bin/bash --login +h
|All times are GMT -5. The time now is 02:21 AM.|