설치하기전에
이 문서는 Gentoo를 노트북에 설치한 설치기이다. 노트북이나, 일반 데스크탑이나 설치 방법은 동일하다.
젠투라 하면, 설치가 까다로운 배포판으로 정평이 나 있다. 하지만, 그만큼 빠르고 효율적인 배포판이라고도 정평이 나있다.
여기서는 내가 설치한 과정을 기억나는 대로 적어보려고 한다. 나중을 위해 말이다.
참고로 젠투는 총 3개의 스테이지로 나뉘어 있다. 각각의 차이라 한다면, 바로 설치하는 데 걸리는 시간과 시스템 최적화라고 할 수 있겠다.
각각의 특징은 다음과 같다.
스테이지 | 설명 |
1 | 초기 베이스 시스템 컴파일해서 설치하는 방법, 가장 오랜시간이 걸린다. 하지만, 가장 최적화되어 설치된다는 장점이 있다. |
2 | 초기 베이스 시스템은 준비된 바이너리 파일을 사용해서 구축하고, 시스템을 구성해서 설치하는 방법, 두번째로 오랜시간이 걸린다. 1번보다는 아니지만, 3번보다는 최적화가 된다. |
3 | 초기 베이스 시스템과 시스템을 준비된 바이너리 파일을 통해 구축한다. 가장 빠르게 설치할 수 있는 방법, 그만큼 최적화는 덜된다. |
여기서는 스테이지 1을 사용해서 설치할 것이다.
CD 구하기
우선 ISO 이미지로 된 최신 버전(현재 2004.2)을 다운로드 받는다. 네로나 이지 CD 같은 프로그램으로 굽는다. 1장 밖에 안되기 때문에, 페도라(총 4장)같이 공CD의 압박은 덜하다.
여기서 잠시 나의 설치 환경을 알아보도록 하자!
모델명 | LG-IBM X-40 |
CPU | 펜티엄 모바일 1.2MHz |
RAM | 768M |
HDD | 40G |
NETWORK | VDSL(DHCP) |
이제 본격적으로 설치해보자!!
설치하기
우선 구운 CD를 넣고 부팅한다. 바이오스에서 CD-rom 부팅을 해놓는 것을 잊지말것!! 젠투 역시 다양한 설치 옵션을 줄 수가 있는 데, 자세한 내용은 F1 키를 눌러서 확인해보기 바란다. 특별한 경우가 아니라면, 그냥 엔터를 눌러서 설치를 시작한다.
다른 배포판과 다른 점이라고 한다면, 바로 설치 방식이다. 거의 대부분 GUI 환경을 제공하지만, 젠투는 TEXT 환경이다. 바로 이점이 설치를 까다롭게 만드는 주요인이라고 개인적으로 생각한다. 또한 기본적으로 네트워크를 통해서 설치가 진행되기 때문에, 사전에 네트워크 설정이 잡혀 있어야 한다. 너무 걱정은 안해도 된다. 자동으로 잡히기 때문에, 일일이 수동으로 잡아주지 않아도 된다.
처음 설치를 위한 부팅이 끝나면, 프롬프트로 빠져 나온다. bootsplash 때문에 콘솔 화면이 이쁘다 ^^;
#ifconfig // 네트워크가 제대로 잡혀있는지 확인한다. 만일 고정 IP 라면, 관련 파일을 수정해주어야 한다.
다음은 파티션을 정해줄 차례이다. 가장 중요한 부분이라고 할 수 있다. 언제나 그렇듯 정답은 없다. 자신이 필요한 만큼 소신껏 잡아주면 된다. 나의 경우는 다음과 같다.
파티션 이름 | 용량 | 파일 시스템 | 위치 |
boot | 100M | ext2 | /dev/hda1 |
swap | 1500M | swap | /dev/hda2 |
/ | 3800M | xfs | /dev/hda3 |
어디까지나 참고만 하기 바란다.
#fdisk /dev/hda // 뒤에 나오는 옵션들을 사용해서 파티션을 잡아준다.
여기서 간단하게 나마, fdisk 옵션을 알아보자!
옵션 | 설명 |
n | 새로운 파티션 생성 (프라이머리 or 확장 파티션) |
d | 기존의 파티션 삭제 |
t | 파티션 타입 변경 (스왑 파티션 생성이 사용. 82번) |
p | 파티션 상태 보기 |
w | 저장하기 |
q | 종료하기 |
잡아주었다면, 이제 원하는 파일 시스템으로 포맷을 해줄 차례다. 워낙 많은 종류의 파일시스템이 있기 때문에, 고르기도 힘들지 모르겠다. 이것 역시 자신의 소신대로 선택하면 되겠다. 여기서는 나의 경우를 예로 들겠다.
#mke2fs /dev/hda1 #mkswap /dev/hda2 #swapon /dev/hda2 #mkfs.xfs /dev/hda3
이제 포맷한 파일시스템에 마운트를 해줘야 한다.
#mount /dev/hda3 /mnt/gentoo #mkdir /mnt/gentoo/boot #mount /dev/hda1 /mnt/gentoo/boot #cd /mnt/gentoo
마운트를 모두 마쳤으면, 이제 스테이지 1의 패키지를 준비된 파티션에 풀어야 한다.
#cd /mnt/gentoo #tar -xvjpf /mnt/cdrom/stages/stage1-x86-2004.2.tar.bz2 // 스테이지 2 또는 3이라면, 각각의 패키지를 풀어주면 된다. #mount -t proc proc /mnt/gentoo/proc
앞에서도 말했지만, 젠투는 네트워크로 소스를 다운 받아서 설치하는 방식이기 때문에 네트워크가 사전에 미리 잡혀야 한다.
그래서 Mirror Site 를 지정해주어야 한다. 기왕이면, 가까운 한국 사이트로 지정해주는 것이 속도를 줄이는 방법이 될 것이다.
#mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
이제 본격적인 설치를 위해 chroot 로 / 를 바꾸어 주어야 한다.
#cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf #chroot /mnt/gentoo /bin/bash #env-update #source /etc/profile
최신 포테이지를 받아와야 한다. 포테이지라 함은 쉽게 말해 레드햇에서의 RPM 과 비슷한 젠투만의 패키지 방식이라고 할 수 있겠다. 포테이지의 최신의 프로그램 목록을 받아온다고 보면 되겠다.
#emerge sync
최적화를 위해 설치 옵션을 설정해주어야 한다. 물론 해주지 않아도 상관은 없다.
#nano /etc/make.conf
다음과 같이 수정한다.
USE="X gtk2 gnome -qt -kde" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CXXFLAGS="${CFLAGS}" GENTOO_MIRRORS="http://ftp.gentoo.or.kr/"
이제 기본 베이스 시스템을 설치할 차례다. 설치하는 시스템의 성능에 따라 수십분에서 수시간이 걸릴 것이다.
#cd /usr/porfage #scripts/bootstrap.sh #source /etc/profile
끝났으면, 이제 전체 시스템을 설치할 차례다. 이 과정은 앞의 과정보다 더 오랜 시간을 필요로 한다. 나의 경우 자기전에 설치를 하곤 한다. 또한 뒤에서 설치할 윈도우 매니저를 함께 설치하면, 시간을 단축시킬 수 있다. 나의 경우 Gnome 을 설치한다.
#emerge system; emerge gnome
다음 날 아침 일어나면, 아마도 성공리에 끝나있을 것이다.
남은 것은 자잘한 설정과 커널 설치만 남았다.
#ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime #nano /etc/fstab
파티션 정보를 설정에 맞게 수정한다.
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/hda1 /boot ext2 noauto,noatime 1 1 /dev/hda3 / xfs noatime 0 0 /dev/hda2 none swap sw 0 0 /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0 # NOTE: The next line is critical for boot! none /proc proc defaults 0 0 # glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for # POSIX shared memory (shm_open, shm_unlink). # (tmpfs is a dynamically expandable/shrinkable ramdisk, and will # use almost no memory if not populated with files) # Adding the following line to /etc/fstab should take care of this: none /dev/shm tmpfs defaults 0 0
이제 커널을 설치해보자! genkernel 이라는 프로그램이 있는 데, 정말 편리한 툴이다. 일일이 커널 옵션을 지정해주지 않아도, 알아서 커널 컴파일을 해준다.
#cd /usr/portage/sys-kernel/gentoo-dev-sources #emerge -k gentoo-dev-sources-2.6.7-r13.ebuild // 현재 가장 최신 버전이다. #emerge -k genkernel #genkernel all
약간의 시간이 소요된다.
프로그램 설치하기
이제 부터는 필요한 프로그램만 설치하면 된다. 여기서 설치하는 프로그램은 순전히 나의 경우이다. 다른 프로그램을 설치해도 무방하다.
#emerge syslog-ng // 시스템 로그 프로그램 #rc-update add syslog-ng default #emerge vixie-cron // CRON 프로그램 #rc-update add vixie-cron default #emerge sys-apps/pcmcia-cs // PCMCIA 카드를 사용하기 위한 프로그램 #rc-update add pcmcia default #emerge -k hotplug // 자동으로 하드웨어를 인식하기 위한 프로그램 #rc-update add hotplug default
이제는 root 패스워드를 설정해줄 차례다.
#passwd
설치한 컴퓨터의 호스트 이름을 정해주어야 한다. 정해주지 않으면, 나중에 Gnome 부팅시에 에러가 난다.
#echo fat81 > /etc/hostname #vi /etc/hosts
아래와 같이 설정해준다. 여기서는 DHCP 모드를 기준으로 설명한다.
# 127.0.0.1 localhost fat81 # IPV6 versions of localhost and co ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
네트워크 설정을 해줄 차례다. 각각의 네트워크 환경에 따라 설정해준다. 나의 경우는 DHCP 이다.
# For DHCP set iface_eth? to "dhcp" # For passing options to dhcpcd use dhcpcd_eth? # iface_eth0="dhcp" #dhcpcd_eth0="..."
설정해주었다면, 등록을 시켜주어야 한다.
#rc-update add net.eth0 default
앞에서 커널 모듈을 자동으로 올려주어야 하는 설정을 해주어야 한다.
#vi /etc/modules.autoload.d/kernel-2.6
나의 경우는 아래와 같이 설정해주었다.
#hci_usb #blue2 e1000 #slamrmo #slmdm #st #serial sbp2 usb-storage #hid #uhid ehci-hcd usbcore
이제 부트로더를 설치할 차례이다. 크게 LILO 와 GRUB 가 있는 데, 여기서는 GRUB 를 설치한다.
#emerge -p grub #vi /boot/grub/grub.conf
자신에 맞게 설정을 해주어야 한다.
# # Boot menu configuration file # default 0 timeout 10 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title=Gentoo Linux root (hd0,0) kernel (hd0,0)/boot/kernel-2.6.7-gentoo-r12 vga=792 initrd (hd0,0)/boot/initrd-2.6.7-gentoo-r12
이제 MBR 영역에 GRUB를 설치해줄 차례다.
#grub grub>root (hd0,0) grub>setup (hd0) grub>quit
이로서 기본적인 설치가 끝났다. 아래의 과정후에 재부팅하도록 하자!
#etc-update #exit #cd / #umount /mnt/gentoo/proc #umount /mnt/gentoo/boot #umount /mnt/gentoo #reboot
이로써, 젠투 리눅스 설치를 마치겠다. 기타 응용프로그램 설치및 설정은 다른 문서에서 설명하겠다.