====== Linux from Scratch ======== 밑바닥부터 시작하는 리눅스. * 홈페이지: http://www.linuxfromscratch.org/ 리눅스 설치에 관한 모든 것을 직접 손으로 해 볼 수 있는 프로젝트이다. 'lfs' 라는 본 이름 공간으로 시작되는 문서는 이를 직접 시스템에 설치한 이력과 관련된 문서들로 구성된다. 내용이 상당히 방대하고 복잡하기 때문에 따라하는 쪽에서도 준비를 탄탄하게 하고 따라하지 않으면 안 된다. 그리고 하룻밤안에 진행될 만큼 내용이 순탄하지도 않으므로 차분하기 따라할 것을 권한다. ===== 파티션 준비 ===== 현재 /dev/sdb6를 alternative system root 파티션으로 하고 있다. 이 곳을 LFS의 native root system으로 할 것이다. # mkfs.ext4 /dev/sdb6 ===== 유저 준비 ===== 그리고 현재 리눅스 시스템인 젠투에 유저 'lfs'를 추가하고 홈 디렉토리를 만들어 주었다. 이 곳에 모든 시스템의 소스 코드를 빌드할 것이다. 유저 lfs는 LFS 시스템 빌드를 모두 담당하게 될 것이다. # groupadd lfs # useradd -s /bin/bash -g lfs -m -k /dev/numm lfs # passwd lfs # chown -v lfs $LFS/tools # chown -v lfs $LFS/sources LFS 문서에 따르면 LFS라는 환경 변수를 만든다. 이 환경 변수는 새 시스템이 마운트되는 경로를 담고 있다. ===== 환경변수 준비 ===== cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF cat > ~/.bashrc << "EOF" set +h umask 022 LFS=/mnt/lfs LC_ALL=POSIX LFS_TGT=$(uname -m)-lfs-linux-gnu PATH=/tools/bin:/bin:/usr/bin MAKEFLAGS="-j5" export LFS LC_ALL LFS_TGT PATH MAKEFLAGS EOF 현재 작업중이었다면 source ~/.bash_profile 로 초기화해주자. ===== 필요한 모든 프로그램 다운로드 ===== LFS 문서에 있는 모든 패키지들을 다운로드 받는다. 이 목록들은 ''wget-list'' 라는 파일에 있다. $ cd ~ # USER: lfs $ mkdir sources $ wget -i wget-list -P ~/sources LFS 문서와는 다르게 lfs 홈에 소스를 보관한다는 점에 유의. 다운로드 받은 모든 파일이 올바른지 확인하기 위해 ''md5sums'' 파일을 통해 확인 $ pushd ~/sources $ md5sum -c md5sums $ popd ===== 임시 시스템 제작 ===== 최소한의 시스템을 갖춘 임시 시스템을 빌드한다. 컴파일할 양과 시간이 많으므로 [[lfs:constructingTemporarySystem | 임시 시스템 빌드]] 문서에서 별도로 기록한다. ===== LFS 기본 시스템 제작 ===== 최소한의 시스템을 갖춘 후에는 chroot 해서 최종적으로 시스템을 만드는 과정을 마쳐야 한다. 이 것 또한 임시 시스템 제작만큼이나 많은 시간과 문서의 양이 필요하므로 [[lfs:installingBasicSystemSoftware | LFS 기본 시스템 제작 ]] 문서에서 별도로 다루도록 한다.