Trans:GentooLinuxX86QuickInstallGuide

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

개요

이 안내서에는 젠투 스테이지 3 설치를 완료하는데 사용해야 할 명령들이 있습니다. 스테이지 3과 포티지 스냅샷을 내려받기 위해 인터넷에 연결할 필요가 있습니다.


중요: 처음 사용자라면 설치 과정에 대해 더 많은 내용을 제공해주는 핸드북 을 읽으시는 것이 좋습니다


타이밍 출력은 프로그램 실행 과정을 마치기 까지 많은 초 단위 시간을 소요하는 모든 명령에 따릅니다. 다음 명령에 대한 시간은 512MB의 RAM과 SATA 컨트롤러에 장착된 2개의 디스크를 지닌 AMD 2000 1.66GHz 시스템에서 측정되었습니다.


코드 예제 1-1. 테스트 박스 사양
(다음의 사양과 타이밍 정보는 여러분의 설치를 완료하는데

필요한 대략적 시간을 추산하는데 도움을 줄 것입니다.)

# grep bogo /proc/cpuinfo
bogomips : 3337.81

# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1100 MB in 2.00 seconds = 549.97 MB/sec
Timing buffered disk reads: 224 MB in 3.01 seconds = 74.36 MB/sec

# grep MemTotal /proc/meminfo

MemTotal: 509248 kB


빠른 설치 안내

설치 매체

미러 중 한 곳에서 CD를 내려받습니다. <font color="#007700"releases/x86/current-iso/ 에서 minimal CD ISO를 찾을 수 있습니다. minimal 설치 CD는 인터넷 기반 설치에 대해서만 유용합니다. 이 안내서에선 minimal CD를 사용할 것입니다.

CD를 굽고 이것으로 부팅합니다.

CD 부팅하기

어떤 부트 옵션이 존재하는지 찾아보기 위해 부트 화면에서 [F2]를 누릅니다. gentoo로 시작하거나 gentoo-nofb로 시작할 수 있습니다. LiveCD로 부팅하셨다면, 시작시 X 그래픽 환경을 막기 위해 nox 옵션을 추가하는 것 을 잊지 마시기 바랍니다. 다양한 옵션들이 여러 기능을 활성화 하거나 비활성화 합니다. 부팅이 잘 진행되었다면, 모든 하드웨어들이 감지되고 모든 하드웨어의 모듈이 로드 될 것입니다. 적절한 부팅에 실패하거나 부팅 과정에 문제에 걸렸다면, 다른 방법의 설정으로 시험할 필요가 있습니다. 가장 안전한 방법은 아마도 nodetect 옵션을 사용하여 필요한 모듈을 직접 불러오는 방법일 것입니다.


코드 예제 2-1. minimal CD로 부팅하기
Gentoo Linux Installation LiveCD http://www.gentoo.org

Enter to Boot; F1 for kernels F2 for options.
boot: gentoo-nofb
  (또는, 문제가 있을 경우)

boot: gentoo-nofb nodetect


선택사항: 모듈 불러오기

nodetect 옵션을 사용하셨다면, 필요한 모듈을 불러와야 합니다. 네트워크를 활성화 하고 디스크에 접근할 필요가 있습니다. lspci 명령은 하드웨어를 확인하는데 도움을 줄 것입니다.


코드 예제 2-2. 필요한 모듈 불러오기
livecd root # lspci

(필요한 모듈을 확인하기 위해 lspci를 사용합니다)

(다음은 여러분의 하드웨어에 대해 적용하는 예제입니다)
livecd root # modprobe 3w-9xxx

livecd root # modprobe r8169


네트워크 설정

아직 네트워크가 동작하지 않는다면 네트워크를 설정하기 위해 net-setup을 사용할 수 있습니다. 설정에 앞서 modprobe를 사용하여 네트워크 카드에 대한 지원을 불러올 필요가 있을지도 모릅니다. ADSL을 사용한다면, pppoe-setuppppoe-start를 사용합니다. PPTP 지원을 위해, 먼저 /etc/ppp/chap-secrets /etc/ppp/options.pptp를 편집하고, 그 다음 pptp <server ip>를 사용합니다.

무선 접근을 위해, 무선연결 인자를 설정하기 위해 iwconfig 를 사용하고,그 다음 net-setup을 다시 사용하거나, {{{#0000ff ifconfig}}} 그리고, dhcpcd, route를 직접 실행합니다.

프록시망 뒤에 있다면, export http_proxy 그리고 ftp_proxy, RSYNC_PROXY 를 이용하여 시스템 초기화하는 것을 잊지 마시기 바랍니다.


코드 예제 2.3: 안내 방식으로 네트워크 설정하기
livecd root # net-setup eth0


대신, 네트워크를 직접 시작할 수 있습니다. 다음 예제는 IP 주소 192.168.1.10 을 여러분의 PC에 할당하고 라우터 및 네임서버의 주소로 192.168.1.1를 정의합니다.


코드 예제 2.4: 직접 방식으로 네트워크 설정하기
livecd root # ifconfig eth0 192.168.1.10/24

livecd root # route add default gw 192.168.1.1

livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf


설치 CD는 sshd 서버를 시작하고, 다른 사용자들을 추가하며, irssi (명령줄 기반 대화 클라이언트)를 실행하고, links를 사용하여 웹을 탐색할 수 있도록 합니다.

선택사항: ssh를 통해 여러분의 새로운 박스에 연결하기

가장 흥미로운 기능은 역시 sshd 입니다. 이것을 시작하고 다른 머신에서 연결할 수 있으며 이 안내서에 있는 명령들을 자르고 붙여넣을 수 있습니다.


코드 예제 2-5: sshd 시작하기
livecd root # time /etc/init.d/sshd start

* Generating hostkey ...
(sshd 는 키를 생성하며 이보다 많은 출력내용을 보여줍니다.)
* starting sshd ... [ok]

real 0m13.688s
user 0m9.420s

sys 0m0.090s


이제, 다른 PC에서 연결할 수 있도록 LiveCD에서 루트 암호를 설정합니다. 보통 일반적인 환경에서 ssh를 통해 root접속을 허용하는 것은 추천하지 않는 것임을 알아두시기 바랍니다. 로컬 네트워크를 신뢰할 수 없다면, 길고 복잡한 암호를 사용하여 첫 재부팅 다음에 사라질 암호를 한번만 사용하는 것이 좋습니다.


코드 예제 2.6: 루트 암호 설정하기
livecd root # passwd

New UNIX password: 암호를 입력합니다
Retype new UNIX password: 암호를 입력합니다

passwd: password updated successfully


이제, 다른 PC에서 터미널을 시작하고 여러분의 새로운 박스에 연결하며, 이 안내서의 나머지 부분을 다른 창에서 따라가고, 명령을 자르고 붙여넣을 수 있습니다.


코드 예제 2.7: 다른 PC에서 새로운 박스에 연결하기
(새로운 박스의 IP주소를 사용합니다)

$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.

Password: 암호를 입력합니다.


디스크 준비하기

파티션 배치를 만들기 위해 fdiskcfdisk를 사용합니다. 최소한 스왑 파티션 (유형 82번)과 하나의 리눅스 파티션 (유형 83번)이 필요합니다. 다음 시나리오에서는 핸드북에서 사용할 /boot와 스왑, 메인 파티션을 만듭니다. 여러분 의 디스크를 sda로 대체합니다. 대부분의 시스템에서는 부팅 가능한 플래그를 무시하지만, 어떤 경우에는 필요합니다. 이 플래그를 fdiska 명령으로 부트 파티션에 설정합니다.


코드 예제 2.8: 파티션 만들기
livecd ~ # fdisk /dev/sda

(이 안내서의 나머지에서는 다음 파티션 형태를 사용합니다)
livecd ~ # fdisk -l /dev/sda

Disk /dev/sda: 599.9 GB, 599978409984 bytes
255 heads, 63 sectors/track, 72943 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 12 96358+ 83 Linux
/dev/sda2 13 110 787185 82 Linux swap / Solaris

/dev/sda3 111 72943 585031072+ 83 Linux


리눅스 파티션에 파일 시스템을 만들기 위해서 mke2fs 그리고, mke2fs -j, mkreiserfs, mkfs.xfs mkfs.jfs 를 사용합니다. mkswapswapon을 사용하여 스왑 파티션을 초기화 합니다.


코드 예제 2.9: 파일 시스템을 만들고 스왑 활성화 하기
(ext2는 /boot 파티션에 필요한 전부입니다)

livecd ~ # mke2fs /dev/sda1

(메인 파티션에 ext3를 사용하도록 합니다)
livecd ~ # mke2fs -j /dev/sda3

(스왑을 만들고 활성화합니다)

livecd ~ # mkswap /dev/sda2 && swapon /dev/sda2


새로 만들어진 파일 시스템을 /mnt/gentoo에 마운트 합니다. 다른 마운트 포인트가 필요하다면 ( /mnt/gentoo/boot와 같은) 디렉터리를 만들고 그들도 똑같이 마운트 합니다.


코드 예제 2.10: 파일 시스템 마운트하기
livecd ~ # mount /dev/sda3 /mnt/gentoo

livecd ~ # mkdir /mnt/gentoo/boot
livecd ~ # mount /dev/sda1 /mnt/gentoo/boot

livecd ~ # cd /mnt/gentoo


스테이지 설정하기

먼저 date MMDDhhmmYYYY를 사용하여 날짜와 시간이 정확하게 설정되었는지 확인합니다. UTC 시간대를 사용합니다.


코드 예제 2.11: 날짜와 UTC 시간 설정하기
(시간 확인)

livecd gentoo # date
Mon Mar 6 00:14:13 UTC 2006

(필요하다면 현재 날짜와 시간을 설정합니다)
livecd gentoo # date 030600162006 (Format is MMDDhhmmYYYY)

Mon Mar 6 00:16:00 UTC 2006


다음에는 미러중 한 곳에서 스테이지를 내려받습니다.


코드 예제 2.12: 스테이지 3 아카이브 내려받기
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml

(미러를 선택하고, releases/x86/current-stage3/ 디렉토리로 이동한후,
원하는 stage3에 강조표시합니다. 아마도 i686 stage3 일것입니다. 그리고
내려받기 위해 D를 누릅니다)

(또는 미러를 선택하지 않고 wget으로 바로 내려받습니다)

livecd gentoo # wget ftp://distfiles.gentoo.org/pub/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2


/mnt/gentoo 로 이동하고 tar xjpf <stage3 tarball> 를 사용하여 스테이지를 풀어줍니다.


코드 예제 2.13: 스테이지 3 아카이브 풀어주기
livecd gentoo # time tar xjpf stage3*

real 1m14.157s
user 1m2.920s

sys 0m7.530s


최신 포티지 스냅샷을 설치합니다. 스테이지 3 아카이브에 대해 진행합니다: 리스트에서 가까운 미러를 선택하고, 최신 스냅샷을 내려받아 풀어줍니다.


코드 예제 2.14: 최신 포티지 스냅샷 내려받기
livecd gentoo # cd /mnt/gentoo/usr

livecd usr # links http://www.gentoo.org/main/en/mirrors.xml
(미러를 선택하고, snapshots/ 디렉토리로 이동한후,
portage-latest.tar.bz2에 강조표시합니다. 그리고
내려받기 위해 D를 누릅니다)

(또는 가까운 미러를 선택하지 않고 wget으로 바로 내려받습니다)
livecd gentoo # cd /mnt/gentoo/usr

livecd usr # wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2



코드 예제 2.15: 포티지 스냅샷 풀어주기
livecd usr # time tar xjf portage-lat*

real 0m40.523s
user 0m28.280s

sys 0m8.240s


루트 위치 변경하기

/proc/dev 파일 시스템을 마운트하고, /etc/resolv.conf 파일을 복사한 다음에 젠투 환경으로 루트 위치를 변경(chroot)합니다.


코드 예제 2.16: 루트 위치 변경하기
livecd usr # cd /

livecd / # mount -t proc proc /mnt/gentoo/proc
livecd / # mount --rbind /dev /mnt/gentoo/dev
livecd / # cp -L /etc/resolv.conf /mnt/gentoo/etc/
livecd / # chroot /mnt/gentoo /bin/bash
livecd / # env-update && source /etc/profile

>>> Regenerating /etc/ld.so.cache...


시간대 설정하기

/usr/share/zoneinfo에 나열된 올바른 항목을 사용하여 시간대 정보를 설정합니다.


코드 예제 2.17: 시간대 설정하기
livecd / # ls /usr/share/zoneinfo

(예시로 브뤼셀 시간대를 사용합니다.)
livecd / # cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime

livecd / # date

Wed Mar 8 00:46:05 CET 2006


호스트 이름과 도메인 이름 설정하기

/etc/conf.d/hostname/etc/hosts에 호스트 이름을 설정합니다. 다음 예제에서, mybox를 호스트 이름으로 사용하고 at.myplace 를 도메인 이름으로 사용합니다. nano를 사용하여 설정 파일을 편집하거나 다음 명령을 사용할 수 있습니다.


코드 예제 2.18: 호스트와 도메인 이름 설정하기
livecd / # cd /etc

livecd etc # echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts
livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname
(정의된 호스트 이름을 사용하고 점검합니다)
livecd etc # hostname mybox
livecd etc # hostname -f

mybox.at.myplace


커널 설정

커널 소스를 설치하고 (보통 gentoo-sources를 사용합니다) 설정하고 컴파일 한 다음, arch/i386/boot/bzImage파일을 /boot로 복사합니다.


코드 예제 2.19: 커널 소스 설치, 컴파일하고 커널 설치하기
livecd etc # time emerge gentoo-sources

real 2m51.435s
user 0m58.220s
sys 0m29.890s
livecd etc # cd /usr/src/linux
livecd linux # make menuconfig
(커널을 설정합니다)
livecd linux # time make -j2

(소요 시간은 여러분이 설정한 옵션에 따라 달려 있습니다)
real 3m51.962s
user 3m27.060s
sys 0m24.310s

livecd linux # make modules_install

livecd linux # cp arch/i386/boot/bzImage /boot/kernel


시스템 설정하기

etc/fstab을 편집하고, BOOT 그리고 ROOT, SWAP을 실제 파티션 이름으로 바꿔줍니다. 여러분이 설치한 파일 시스템과 일치하는지 확인하는 것을 잊지 마시기 바랍니다.


코드 예제 2.20: fstab 예제
livecd linux # cd /etc

livecd etc # nano -w fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda3 / ext3 noatime 0 1

/dev/sda2 none swap sw 0 0


/etc/conf.d/net 에서 네트워크를 설정합니다. net.eth0 초기화 스크립트를 기본 실행 레벨에 추가합니다. 여러 개의 NIC를 사용한다면, net.eth0 초기화 스크립트에 심볼릭 링크를 걸어주고 같은 방법으로 기본 실행레벨에 추가해줍니다. 호스트 이름 설정하는것 또한 잊지 마시기 바랍니다. /etc/conf.d/net 또는 /etc/conf.d/hostnamenano로 편집하거나 다음 명령을 사용합니다.


코드 예제 2.21: 네트워크 설정
livecd etc # cd init.d

livecd init.d # ln -s net.lo net.eth0
livecd init.d # cd ../conf.d
livecd conf.d # echo 'config_eth0="192.168.1.10 netmask 255.255.255.0 brd 192.168.1.255"' >> net
livecd conf.d # echo 'routes_eth0="default via 192.168.1.1"' >> net
livecd conf.d # echo 'hostname="myhostname"' > hostname
livecd conf.d # rc-update add net.eth0 default
(If you compiled your network card driver as a module, add it to /etc/conf.d/modules
livecd conf.d # echo 'modules="r8169"' >> /etc/conf.d/modules
(If you want to reconnect via ssh after you have rebooted your new box)

livecd conf.d # rc-update add sshd default



참고: PCMCIA 카드 지원이 필요하다면, pcmciautils 를 이머지 하시기 바랍니다.


passwd를 사용하여 루트 암호를 설정합니다.


코드 예제 2.22: 루트 암호 설정하기
livecd conf.d # passwd

New UNIX password: 암호를 입력합니다
Retype new UNIX password: 암호를 다시 입력합니다

passwd: password updated successfully


앞서 사용한 시간대 정의를 위해 /etc/timezone을 편집합니다.


코드 예제 2.23: /etc/timezone 편집하기
Europe/Brussels


/etc/rc.conf/etc/conf.d/keymaps에 있는 시스템 설정을 확인하고, 필요하다면 이 파일들을 편집합니다.


코드 예제 2.24: 선택사항: 일부 설정파일 편집하기

livecd conf.d # nano -w /etc/rc.conf

livecd conf.d # nano -w /etc/conf.d/keymaps


시스템 도구 설치하기

syslog-ng와 같은 시스템 로거를 설치하고, vixie-cron과 같은 크론 데몬을 설치한 후, 이들을 기본 실행레벨에 추가합니다.


참고: 크론 데몬은 MTA에 의존합니다. mail-mta/ssmtp가 의존 관계에 의해 끌려올 것입니다. 더 발달된 MTA를 사용하고 싶다면, 바로 설치하고 싶을지도 싶을지도 모릅니다. 정 급하다면, ssmtp를 설치한 상태에서 두고, 원하는 MTA를 설치한 다음에 ssmtp를 제거합니다.



코드 예제 2.25: 시스템 로거와 크론 데몬 설치하기
livecd conf.d # time emerge syslog-ng vixie-cron

real 1m54.099s
user 1m2.630s
sys 0m34.620s
livecd conf.d # rc-update add syslog-ng default

livecd conf.d # rc-update add vixie-cron default


필요하다면 파일 시스템 도구 (xfsprogs, reiserfsprogs, 또는 jfsutils)와 네트워크 도구(dhcpcd 혹은 ppp)를 설치합니다.

부트로더 설정하기

grub을 이머지 하고 설정합니다. initramfs를 사용하는 경우 필요한 부트 인자를 새로 고치는 것을 잊지 마시기 바랍니다.


코드 예제 2.27: grub 이머지하고, 설정 파일 편집하기
livecd conf.d # time emerge grub

real 1m4.634s
user 0m39.460s
sys 0m15.280s

livecd conf.d # nano -w /boot/grub/grub.conf




코드 예제 2.28: grub.conf 예제
default 0

timeout 10

title Gentoo
root (hd0,0)

kernel /boot/kernel root=/dev/sda3




코드 예제 2.29: grub 설치하기
livecd conf.d # grub

Probing devices to guess BIOS drives. This may take a long time.

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/
grub/menu.lst"... succeeded
Done.

grub> quit


재부팅

루트 위치가 바뀐 환경에서 빠져 나오고, 모든 파일 시스템의 마운트를 해제한 다음 재부팅합니다.


코드 예제 2.30: 재부팅하기
livecd conf.d # exit

livecd / # umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd / # umount -l /mnt/gentoo{/proc,/boot,}
livecd / # reboot

(CD 제거하는 것을 잊지 마시기 바랍니다)


설치 마무리하기


참고: 우리 테스트 박스상에서 minimal CD의 부트 프롬프트를 띄우고 재부팅 한 다음의 로그인 프롬프트가 뜨는데 걸린 총 시간은 00:42:31 입니다. 네, 한시간도 채 걸리지 않았습니다! 참고로 이 시간은 스테이지 3, 포티지 스냅샷 그리고 여러 패키지를 내려받은 시간과 커널을 설정하는데 걸린 모든 시간이 포함됩니다.


root로 로그인하고, 매일 사용할 사용자들을 위해 useradd로 사용자를 하나 이상 추가합니다.


코드 예제 2.31: 다른 PC에서 새 박스로 접속하기
(known_hosts 파일을 비우시기 바랍니다. 왜냐면

여러분의 새로운 박스는 새로 생성된 정의 호스트키를
보유하고 있기 때문입니다)
$ nano -w ~/.ssh/known_hosts
(여러분의 새 PC에 대한 IP를 찾고 그 줄을 지운다음
저장하고 nano를 빠져나옵니다)

(여러분의 새로운 박스에 할당된 IP 주소를 사용합니다)
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.

Password: type_the_password



코드 예제 2.32: 새 사용자 추가하기
mybox ~ # useradd -g users -G lp,wheel,audio,cdrom,portage,cron -m john

mybox ~ # passwd john
New UNIX password: John의 암호를 설정합니다
Retype new UNIX password: John의 암호를 다시 입력합니다

passwd: password updated successfully