chroot를 위해 bash를 /mnt로 포팅하려고 할 때 bash가 작동하려면 무엇이 필요합니까?

chroot를 위해 bash를 /mnt로 포팅하려고 할 때 bash가 작동하려면 무엇이 필요합니까?

나는 3단계 젠투 타르볼을 가지고 있습니다../mnt 호스팅/dev/sda3에 추출했습니다. 패키지를 개봉했을 때 상자가 없었음에도 불구하고 파손된 흔적은 없었습니다. 내가 아는 한, 나머지 구성에는 이 가짜 젠투 환경의 초기 설정이 포함되어 있습니다. 그래서..실행중인 Fedora에서 bash를 포팅할 수 있다고 생각했습니다. 이것은 더 큰 문제에 대한 질문이지만 한 번에 한 부분만 해당됩니다. lib 또는 lib64의 일부 파일에 대해 들었지만 어느 파일인지는 잘 모르겠습니다..

편집: 아직 "make"를 사용하지 않았습니다. 내가 어디에 있는지 분명히 해줘

답변1

고정시키다

첫째, 라이브 도구가 stage3 작업 영역으로 마이그레이션/복사/링크될 때까지 기다리지 마십시오. 그럼 다시 시작해 보겠습니다. 먼저 /dev/sda3빈 파티션을 가정합니다. 그렇지 않은 경우:

  1. /dev/sda3GParted와 같은 도구를 사용하여 만듭니다.
  2. 1단계를 완료한 경우 다음을 발행하십시오.mke2fs -j /dev/sda3
  3. mkdir /mnt/gentoo && mount /dev/sda3 /mnt/gentoo
  4. CD/mnt/gentoo
  5. wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20150604/stage3-amd64-20150604.tar.bz2 -P /mnt/gentoo(amd64 아키텍처를 가정합니다.)
  6. tar xvjpf stage3-*.tar.bz2 --xattrs
  7. 계속해서 입력하세요단계 - 2부

추리

압축을 풀면 3단계 타르볼에 작동하는 Bash가 포함됩니다. 다음 명령은젠투 기본 시스템 설치의 1.4절:

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

빌드/설치를 위해 깨끗한 변경 루트 디렉터리를 입력합니다.


이 매뉴얼을 따르면 젠투를 또 다른 라이브 시스템으로 사용하기를 원한다고 가정합니다. 귀하의 경우 Fedora에는 작동하는 Grub이 포함되어 있으므로 무시해야 할 유일한 것은 GRUB 구성 부분입니다. 그러므로 젠투의 부팅 옵션을 Fedora의 Grub 옵션에 추가해야 합니다.

고쳐 쓰다

의견에 따르면 모든 Linux 배포판에는 profile파일이 포함되어 있습니다. 배포판에 따라 다른 위치에 저장됩니다. 젠투 /etc에서는 모든 구성 파일을 사용자 정의해야 하기 때문에 이 디렉토리에 저장됩니다 . 인용하다리눅스를 넘어서 처음부터 시작하는 매뉴얼:

쉘 프로그램 /bin/bash(이하 "쉘"이라고 함)는 시작 파일 모음을 사용하여 환경을 생성하는 데 도움을 줍니다. 각 파일은 특정 용도로 사용되며 다양한 방식으로 로그인 및 상호 작용 환경에 영향을 미칠 수 있습니다. /etc 디렉토리의 파일은 일반적으로 전역 설정을 제공합니다. 홈 디렉터리에 동등한 파일이 있으면 전역 설정을 재정의할 수 있습니다.


이러한 방식으로 source명령의 2번째 줄은 명령으로 입력한 압축을 푼 tarball에 포함된 환경에서 빌드 시스템(귀하의 경우 Fedora) 환경을 분리합니다 chroot. 이렇게 하면 외부 빌드 도구가 bash빌드 프로세스를 "오염"시킬 수 없게 됩니다(위의 설명 참조). 다시 말해서:configuremake시스템을 구축하는 데 사용되는 구성, make 및 gcc 컴파일러는 chroot 내부에 있습니다..

3번째 줄에서는 $PS1인쇄물을 내보냅니다.(chroot) root@host #/

그렇게 하면 TTY나 그래픽 콘솔을 통해 매뉴얼을 따르는 사람들이 모든 문서를 읽고 자신이 생성/업데이트하는 chroot가 어디에 있는지 알 수 있습니다.

답변2

실행 중인 Fedora에서 bash를 포팅하려면 bash 실행 파일뿐만 아니라 이에 의존하는 모든 라이브러리도 필요합니다. 이는 번거로울 수 있으며 젠투 파일과 충돌할 수 있습니다.

정적으로 연결된 쉘을 얻으면 chroot에 바이너리를 추가하기만 하면 독립적으로 작동할 수 있습니다. 나는 Fedora가 어떤 것도 제공하지 않는다고 생각합니다. 데비안에서 다음 중 하나를 얻을 수 있습니다:배시 정적,허리띠(명령줄 버전은 없지만 , 등의 유용한 내장 명령이 여러 개 있습니다 cp. )rmmountbusybox-static(기본 명령줄 버전과 많은 내장 기능이 있습니다),zsh-정적(bash보다 더 나은 명령줄 버전과 활성화할 수 있는 몇 가지 유용한 내장 명령 zmodload zsh/files). 패키지에서 파일을 추출하려면 .deb다음을 사용하세요.

ar p zsh-static_5.0.7-5_amd64.deb | tar xJO ./bin/zsh5-static >/path/to/zsh-static

여기서 중요한 점은 chroot에 일부 디버깅 도구를 제공하는 것입니다. 물론 당신은해야합니다문제를 해결하고 bash를 올바르게 설치하십시오..

관련 정보