다음 이전 차례

4. 새 시스템의 준비

4.1 일을 해나가는 방법

우리는 Debian 이나 SuSe, Slackware, Mandrake, RedHat 등의 이미 설치되어 있는 리눅스 배포본을 사용하여 LFS 시스템을 만들 것이다. 여러분은 어떤 류의 부트 디스켓도 필요치 않다. 우리는 기존의 리눅스 시스템을 사용할 것이다 (우리가 컴파일러나 링커, 텍스트 에디터 등의 툴들이 필요하기 때문이다).

만약 여러분이 아직 리눅스를 설치하지 않았다면 이 문서를 당장은 사용할 수 없다. 우선 리눅스 배포본을 설치할 것은 권한다. 어떤 것을 설치하던지 관계는 없다. 또한 최신 버전일 필요도 없지만 그렇다고 너무 오래된 것이어선 안된다. 일년 이내의 것이라면 괜찮을 것이다. 여러분의 기존 시스템이 glibc-2.0 이나 그 이후의 것을 쓴다면 별 문제가 없다. libc5 는 몇몇 문제를 야기할 수 있으며 내가 더이상 그런 머신을 쓰지 않기 때문에 이 문서에서도 지원되지 않는다.

4.2 새 파티션의 생성

새 리눅스 시스템을 만들기 전에 우리는 비어있는 리눅스 파티션이 필요하다. 나는 적어도 500MB 이상의 크기를 갖는 파티션을 권장한다. 부가 기능들 (email 이나 네트웍, 인터넷, X 윈도우 시스템 등) 이 없는 기본적인 시스템은 약 250MB 로도 가능하다. 이미 여러분이 리눅스 Native 파티션이 있다면 이 부분은 뛰어넘어도 된다.

적당한 하드디스크 (새 파티션을 프라이머리 마스터 IDE 디스크 위에 만들고 싶은 경우 /dev/hda 처럼) 를 옵션으로 하여 fdisk 프로그램 (혹은 여러분이 선호하는 fdisk 같은 프로그램) 을 실행한다. 리눅스 Native 파티션을 만들고 파티션 테이블을 쓴 후 fdisk 프로그램을 나온다. 파티션 테이블을 갱신시키기 위해 시스템을 리부팅 하라는 메시지를 받았다면 계속하기 전에 지금 리부팅하기 바란다. 여러분의 새 파티션 이름을 기억해 두도록 한다. (나와 같은 경우엔) hda5 같은 것일 수 있다. 이 새로 생성된 파티션은 이 문서에서 LFS 파티션 이라고 불려질 것이다.

4.3 새 파티션 위에 ext2 파일 시스템 만들기

일단 파티션이 만들어졌으면 그 파티션 위에 새로이 ext2 파일 시스템을 만들어야 한다. ext2 파일 시스템을 만들기 위해 우리는 mke2fs 명령을 사용할 것이다. 새 파티션을 유일한 옵션으로 주고 실행하면 파일 시스템이 생성된다. 만약 여러분의 파티션이 hda5라면 mke2fs /dev/hda5 같은 명령을 실행하면 된다.

4.4 새 파티션 마운트하기

ext2 파일 시스템을 만들고나면 사용할 수 있게 된 것이다. 이 파일 시스템을 사용하기 위해 (읽거나 쓰기 위해) 우리가 해야 할 것은 단지 그것을 마운트하는 것이다. 여러분이 이 파일 시스템을 /mnt/hda5 아래에 마운트한다면 /mnt/hda5 디렉토리로 가서 이 파티션을 사용할 수 있으며 이후 원하는 것을 무엇이던 할 수 잇다. 어떤 서브디렉토리를 여러분이 선택하는가는 중요치 않다 (심지어 여러분은 마운트 지점으로 /mnt 디렉토리를 사용할 수도 있다). 그러나 좋은 습관은 파티션과 같은 이름을 갖는 디렉토리를 만드는 것이다. 내 경우에 LFS 파티션은 hda5라 불리며 따라서 나는 이 파티션을 /mnt/hda5에 마운트 하였다.

이 디렉토리(/mnt/xxx)는 여러분이 이전에 봤던 $LFS 이다. 따라서 만약 어디선가 "cp inittab $LFS/etc" 라는 것을 본다면 실제로는 "cp inittab /mnt/xxx/etc" 라고 쳐야 하며 xxx는 여러분의 파티션 이름으로 바뀐다.

4.5 디렉토리의 생성

http://www.pathname.com/fhs/ 에서 찾을 수 있는 FHS 표준에 따라서 LFS 파티션 위에 디렉토리 트리를 만든다. 아래의 명령들을 실행하면 필요한 디렉토리들이 생성될 것이다.

cd $LFS
mkdir bin boot dev etc home lib mnt proc root sbin tmp usr var
cd $LFS/usr
mkdir bin include lib sbin share src
ln -s share/man man
ln -s share/doc doc
ln -s . local
ln -s ../etc etc
ln -s ../var var
cd $LFS/usr/share
mkdir dict doc info locale man nls misc terminfo zoneinfo
cd $LFS/usr/share/man
mkdir man1 man2 man3 man4 man5 man6 man7 man8
cd $LFS/var
mkdir lock log run spool tmp
 

이제 디렉토리가 생성되었으면 3장에서 다운로드 받았던 소스 파일들을 $LFS/usr/src (이 서브디렉토리를 스스로 만들어야 한다) 아래의 임의의 서브디렉토리로 복사해야 한다.

4.6 /dev 디렉토리의 복사

mknod 명령을 사용하여 $LFS/dev 디렉토리 안에 있어야 할 파일들을 개별적으로 만들 수 있지만 시간이 많이 걸린다. 나는 현재의 /dev 디렉토리를 $LFS 파티션으로 단순히 복사하는 것을 택했다. 기존의 권한과 심볼릭 링크, 소유권을 유지하기 위하며 디렉토리를 복사하기 위해선 다음의 명령을 사용한다:

cp -av /dev $LFS
chown root.root $LFS/dev/*
 

다음 이전 차례