목차

Linux from Scratch

밑바닥부터 시작하는 리눅스.

리눅스 설치에 관한 모든 것을 직접 손으로 해 볼 수 있는 프로젝트이다. '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 기본 시스템 제작

최소한의 시스템을 갖춘 후에는 chroot 해서 최종적으로 시스템을 만드는 과정을 마쳐야 한다. 이 것 또한 임시 시스템 제작만큼이나 많은 시간과 문서의 양이 필요하므로 LFS 기본 시스템 제작 문서에서 별도로 다루도록 한다.