
저는 처음부터 Linux를 구축 중입니다(가이드 버전 10.1). 모든 것이 오류 없이 컴파일되었지만 이제 chroot 환경(섹션 7.4)에 들어가야 하는 단계에서 멈췄습니다. 내 명령은 다음과 같습니다
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login +h
다음 오류로 인해 실패합니다.
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
다음 사항을 확인했습니다.
$LFS는 올바른 경로를 가리킵니다.
/dev, /run, /proc, /sys, /dev/pts 및 /dev/shm이 모두 올바르게 마운트되었습니다.
/usr/bin/env가 존재합니다
/bin/bash가 존재합니다
/bin/sh는 /bin/bash에 대한 심볼릭 링크입니다.
/bin/bash 및 /usr/bin/env에는 모든 종속성이 /lib 및 /lib64에 설치되어 있습니다(ldd를 사용하여 확인).
또한 Linux 커널 5.4를 사용하여 x86-64, x86-64, Ubuntu 20.04에서 이 빌드를 수행하고 있음을 지적하고 싶습니다.
답변1
문제를 발견했습니다! 이는 잘못된 심볼릭 링크였습니다(/lib64/ld-linux-x86-64.so.2는 LFS 루트에 대한 상대 경로가 아닌 호스트 시스템의 절대 경로인 /lib/ld-2.36.so를 가리킴). chroot가 무엇이 어디서 잘못되었는지 명확히 밝히는 대신 오해의 소지가 있고 모호한 오류 메시지를 제공한 것은 정말 부끄러운 일입니다. 링크를 바꿨더니 이제 잘 작동하네요.
답변2
같은 문제를 해결했지만 무슨 뜻인지 이해할 수 없었습니다.
(/lib64/ld-linux-x86-64.so.2 pointed to the absolute path on the host system, not relative to the LFS root, /lib/ld-2.36.so)
솔루션에 대한 자세한 정보를 설명해 주시겠습니까? 링크를 변경하는 방법은 무엇입니까? 그리고 x86-64 운영 체제를 구축하고 있다고 말하고 싶습니다. LFS11.0에서 이것을 찾았습니다.
5.5. Glibc-2.34
호스트 usr/bin/env:
COLORTERM=트루컬러 DISPLAY=:0.0 LANG=en_US.UTF-8 LANGUAGE= PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /local/games:/usr/games TERM=xterm-256color XAUTHORITY=/home/kali/.Xauthority LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33 :so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30 ;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.미디=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36: MAIL=/var/mail/root LOGNAME=root USER=root HOME=/root SHELL=/usr/bin/zsh SUDO_COMMAND=/usr/bin/su SUDO_USER=kali SUDO_UID=1000 SUDO_GID=1000 LFS=/mnt/lfs COMMAND_NOT_FOUND_INSTALL_PROMPT=1 POWERSHELL_TELEMETRY_OPTOUT=1 DOTNET_CLI_TELEMETRY_OPTOUT=1 SHLVL=1 PWD=/usr/bin OLDPWD=/home/kali LESS_TERMCAP_mb= LESS_TERMCAP_md= LESS_TERMCAP_me=
LESS_TERMCAP_so
= LESS_ TERMCAP_se=
LESS_TERMCAP_us= LESS_TERMCAP_ue=
_=/usr/bin /./env
LFS usr/bin/env:
PWD=/ HOME=/home/lfs TERM=xterm-256color SHLVL=1 PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w$ LFS_TGT=x86_64-lfs-linux-gnu LC_ALL=POSIX LFS=/mnt/lfs CONFIG_SITE=/mnt/lfs/usr/share/config.site 경로=/mnt/lfs/tools/bin:/usr/bin _=./usr/bin/env OLDPWD=/home
답변3
@lorinet3 저도 같은 문제에 직면했습니다. 확인했는데 링크는 상대적입니다.
$ echo $LFS
/home/sayan/lfs/lfs_filesystem
$ exa -l $LFS/lib64
lrwxrwxrwx 27 root 6 Jun 11:43 ld-linux-x86-64.so.2 -> ../lib/ld-linux-x86-64.so.2
lrwxrwxrwx 27 root 6 Jun 11:43 ld-lsb-x86-64.so.3 -> ../lib/ld-linux-x86-64.so.2
x86_64 시스템에서 LFS 11.1 가이드를 따르고 있습니다. 여전히 같은 오류가 발생합니다. 또 무엇을 깨뜨릴 수 있습니까?