LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux From Scratch (https://www.linuxquestions.org/questions/linux-from-scratch-13/)
-   -   LFS Book Chapter 6 - 1st step (chroot to /mnt/lfs) doens't work (https://www.linuxquestions.org/questions/linux-from-scratch-13/lfs-book-chapter-6-1st-step-chroot-to-mnt-lfs-doenst-work-35067/)

bauld 11-10-2002 11:20 AM

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'.

Thanks

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.

Bert 11-10-2002 11:28 AM

What does echo $LFS give you?

A hint, copy and paste the command from the HTML version into the terminal.

bauld 11-10-2002 11:40 AM

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.

Anything else?

bulliver 11-11-2002 04:39 AM

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?

adam_boz 11-12-2002 03:06 PM

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.

bauld 11-12-2002 06:08 PM

resolved...

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.

qod 11-07-2003 09:21 PM

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\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login

i am running slackware 9.0 and i do get the /mnt/lfs when i run lfs

thanks

kipp 11-20-2003 02:47 PM

[removed: my own stupidity] :p

JeffThurston 10-24-2004 09:36 PM

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?

Code:

/tmp/lfs > ls -alh
total 64K
drwxrwxrwx  15 root    root        4.0K Oct 24 20:29 .
drwxrwxrwt  10 root    root          12K Oct 24 21:15 ..
drwxr-xr-x    2 root    root        4.0K Oct 24 19:43 bin
drwxrwxr-x    3 root    root        4.0K Oct 24 20:29 dev
drwxr-xr-x    2 root    root        4.0K Oct 23 21:34 etc
drwxr-xr-x    4 root    root        4.0K Oct 23 21:37 i686-pc-linux-gnu
drwxr-xr-x  25 root    root        4.0K Oct 24 16:58 include
drwxr-xr-x    8 root    root        4.0K Oct 24 19:43 lib
drwxr-xr-x    3 root    root        4.0K Oct 24 17:12 libexec
dr-xr-xr-x  98 root    root            0 Oct 20 14:05 proc
drwxr-xr-x    2 root    root        4.0K Oct 24 19:43 sbin
drwxr-xr-x  15 root    root        4.0K Oct 24 17:16 share
drwxrwxrwx    8 root    root        4.0K Oct 24 18:46 sources
drwxrwxrwx    2 root    root        4.0K Oct 23 06:32 tools
drwxr-xr-x    2 root    root        4.0K Oct 24 16:22 var
/tmp/lfs >
cd /
/ > chroot /tmp/lfs /bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
    /bin/bash --login +h
chroot: /bin/env: No such file or directory
/ >

Is it not true that the paths are relative to the new root and not the old?

I'm sure scratching my head! Thanks in advance for any helpful nudge!

JeffThurston 10-25-2004 10:11 PM

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.

hawa 03-13-2006 04:11 AM

hello for all
i'm facing the same problem as the rest, when t completed chapter5, i reached the chroot:

cd $LFS
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
thanks

andy.lfs 03-15-2006 12:31 AM

For me help:

chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h


All times are GMT -5. The time now is 11:52 PM.