서버 설치 · 8 min read · Feb 06, 2026
완벽한 서버 - Gentoo 2007.0 - 페이지 2
3 기본 시스템
3.1 설치 디스크 부팅
Gentoo Minimal Install CD를 시스템에 삽입하고 부팅합니다. 부트로더에서 몇 가지 옵션을 설정할 수 있지만, 그냥 두면 계속 진행되어 Linux가 자동으로 부팅됩니다.

(기본적으로 프레임버퍼 콘솔을 사용하지만, 더 작은 스크린샷을 위해 F1을 눌러 gentoo-nofb 커널을 선택하여 VGA를 사용하도록 변경했습니다.)
커널이 부팅되고 설치 CD가 하드웨어를 감지하는 동안 많은 텍스트가 화면을 스크롤합니다. 그런 다음 키맵을 선택하라는 메시지가 표시됩니다.

미국 키보드를 사용하는 경우 그냥 두거나 Enter를 눌러 이 프롬프트가 선택으로 타임아웃되도록 할 수 있습니다. 저는 영국에 살고 있으므로 uk 키맵을 원합니다.
더 많은 텍스트가 스크롤됩니다…

루트 프롬프트에 도달할 때까지.

DHCP 서버를 감지하는 동안 인터넷에 이미 연결되었을 가능성이 높습니다. 그러나 우리는 즉시 자신의 IP 주소를 지정하고 싶으므로 다음을 입력합니다,
net-setup eth0적절한 옵션을 통해 진행합니다:









이제 루트 프롬프트로 돌아왔습니다. 제안된 대로 네트워크가 제대로 작동했는지 확인하고 싶을 수 있습니다.
ifconfig
인터넷 연결이 있는지 확인하기 위해 원하는 다른 명령을 입력합니다. 예를 들어 (Gentoo 핸드북에서):
ping -c 3 www.gentoo.org이제 호스트 이름을 임시로 설정합니다. 나중에 설치의 일부 단계를 자동화하기 위해 이 값을 다시 읽을 것입니다.
hostname server1.example.com3.2 설치 환경에 원격으로 로그인
루트 비밀번호를 설정합니다. 이는 최종 설치 시스템이 아니라 설치 시스템을 위한 것입니다:
passwd그리고 sshd를 시작합니다:
/etc/init.d/sshd start호스트 키가 생성되고 sshd 데몬이 시작됩니다. 이제 자신의 컴퓨터에서 일반적인 터미널 프로그램을 통해 설치 시스템에 로그인할 수 있습니다. 물론 이 단계를 생략하고 콘솔을 계속 사용할 수도 있습니다.
ssh [email protected]물론 server1.example.com이 시스템에서 해결될 수 있어야만 작동합니다.

3.3 시스템 드라이브 설정
이 부분은 다른 아키텍처에서 매우 다를 수 있습니다. x86 또는 amd64가 아닌 경우 Gentoo 핸드북을 참조하거나 x86 핸드북에서 제안하는 기본 레이아웃 외의 작업을 하려면 참조하십시오.
드라이브를 파티셔닝하려면 parted를 사용합니다. 우리는 바로 들어가서 제안된 Gentoo 파티션 스킴을 설정할 것이며, parted는 이를 텍스트로 간결하게 보여줄 수 있게 해줍니다:
parted /dev/hda(파트) 프롬프트가 표시됩니다. 이 프롬프트에서 다음 명령을 입력합니다:
mklabel msdos
mkpartfs primary ext2 0 32
mkpartfs primary linux-swap 32 545
mkpart primary 545 -0
set 1 boot on
print다음과 같은 내용을 볼 수 있어야 합니다:
Disk /dev/hda: 5906MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 32.9MB 32.9MB primary ext2 boot
2 32.9MB 545MB 512MB primary linux-swap
3 545MB 5906MB 5361MB primary
(parted) quit를 입력하여 종료하고 변경 사항을 저장합니다.
우리는 이미 파티션 1과 2에 ext2 및 swap 파일 시스템을 생성했으므로, 파티션 3에 ext3 파일 시스템을 생성하기만 하면 됩니다.
mke2fs -j /dev/hda3설치 환경을 위해 swap을 활성화합시다:
swapon /dev/hda2그리고 설치할 파일 시스템을 마운트합니다.
mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot3.4 Stage 3를 위한 준비
시스템의 날짜와 시간이 정확한지 확인합니다. 그렇지 않으면 나중에 혼란스러울 수 있습니다.
dateThu Aug 30 13:58:36 UTC 2007실제로 제가 했을 때는 조금 틀렸으므로, 다음과 같이 수정합니다:
date 083013542007이제 Stage 3 Tarball과 Portage 스냅샷을 다운로드해야 합니다. 링크나 lynx로 복잡하게 하지 말고 몇 가지 명령을 사용합시다:
mirrorselect --interactive --output > /tmp/mirror
자신에게 적합한 미러를 선택하고 OK를 선택합니다. 종료하면 선택한 내용이 /tmp/mirror에 기록됩니다. 우리는 첫 번째 것만 원하므로:
source /tmp/mirror
MIRRORS=($GENTOO_MIRRORS)
MIRROR=${MIRRORS[0]}
cd /mnt/gentoo
wget ${MIRROR}releases/x86/current/stages/stage3-$(arch)-2007.0.tar.bz2 \
|| wget ${MIRROR}releases/x86/current/stages/stage3-x86-2007.0.tar.bz2
wget ${MIRROR}snapshots/portage-latest.tar.bz2실제로 위의 stage3 URL의 아키텍처별 부분을 결정하는 안전한 방법은 없으므로, x86이 아닌 경우 Gentoo 핸드북을 참조하십시오.
stage tarball을 압축 해제합니다.
tar --extract --verbose --bzip2 --preserve-permissions --file stage3-*.tar.bz2portage 스냅샷을 압축 해제합니다.
tar --extract --verbose --bzip2 --file portage-latest.tar.bz2 --directory /mnt/gentoo/usr이제 공간이 부족한 경우 다운로드한 파일을 삭제할 수 있습니다.
rm portage* stage*이제 Gentoo 커뮤니티에 거의 이단적인 일을 하여 etc/make.conf를 그대로 두겠습니다! CFLAGS가 설정되는 파일이며, 최적화할 수 있는 곳입니다. 저는 건드리지 않을 것입니다. 최소한 정상인지 확인해야 합니다. 비정상적이라면 잘못된 stage 파일을 다운로드했을 수 있습니다. 특히 x86에서는 기본적으로 -mtune=i686 플래그가 설정되어 있어 구형 하드웨어에 설치할 경우 부적절할 수 있습니다. 하지만 $(arch)를 사용하여 이러한 문제를 피할 수 있기를 바랍니다.
vi /mnt/gentoo/etc/make.conf우리는 필요한 정보를 추가할 것입니다. 첫째, Gentoo가 다운로드할 미러입니다. 이미 다운로드 미러를 한 번 가져왔으므로, 다시 선택하는 것을 피하기 위해 그 선택을 가져와 rsync 미러에 대한 선택을 추가할 것입니다.
cat /tmp/mirror >> /mnt/gentoo/etc/make.conf
mirrorselect --interactive --rsync --output >> /mnt/gentoo/etc/make.conf
이제 /mnt/gentoo로 복사하여 chroot로 들어가 설치를 계속할 것입니다. 설치된 시스템이 동일한 네트워킹 구성을 갖도록 현재 네트워킹 구성을 복사할 것입니다. 이 작은 스크립트는 eth0의 현재 구성을 새로운 /etc/conf.d/net 형식으로 작성합니다.
#!/bin/bash
cat /etc/resolv.conf > /mnt/gentoo/etc/resolv.conf
echo "HOSTNAME=\"$(hostname -f)\"" > /mnt/gentoo/etc/conf.d/hostname
eth0=$(ifconfig eth0 | grep "inet addr")
ip=$(echo $eth0 | cut -f2 -d' ' | cut -f2 -d:)
broadcast=$(echo $eth0 | cut -f3 -d' ' | cut -f2 -d:)
netmask=$(echo $eth0 | cut -f 4 -d' ' | cut -f2 -d:)
gw=$(route -n | grep -e '^0.0.0.0' | unexpand -a | cut -f3)
nservers=$(grep -e '^nameserver' /etc/resolv.conf | cut -f2 -d' ')
sdomains=$(grep -e '^search' /etc/resolv.conf | cut -f2- -d' ')
echo 'modules=( "ifconfig" )' > /mnt/gentoo/etc/conf.d/net
echo "config_eth0=( \"${ip} netmask ${netmask} broadcast ${broadcast}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "routes_eth0=( \"default via ${gw}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "dns_domain_eth0=\"$(hostname -d)\"" >> /mnt/gentoo/etc/conf.d/net
echo "dns_servers_eth0=\"${nservers}\"" >> /mnt/gentoo/etc/conf.d/net
if [ -n "$sdomains" ] ; then echo "dns_search_eth0=\"${sdomains}\"" ; fi >> /mnt/gentoo/etc/conf.d/net그 후, /mnt/gentoo/etc/conf.d/net은 다음과 같아야 하며, 물론 올바른 값으로.
modules=( "ifconfig" )
config_eth0=( "192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255" )
routes_eth0=( "default via 192.168.1.1" )
dns_domain_eth0="example.com"
dns_servers_eth0="192.168.1.1"이 형식을 사용하면 Gentoo 네트워크 초기화 스크립트가 그 안의 데이터를 사용하여 새로운 /etc/resolv.conf를 작성하고 네트워크를 설정하므로, 앞으로는 올바른 파일이 하나만 유지되도록 할 수 있습니다. (우리는 설치 시스템의 /etc/resolv.conf를 chroot 환경 내에서만 사용하기 위해 복사했습니다. 설치된 시스템을 부팅할 때까지.)
이 작업을 마친 후 chroot 준비를 완료하고 들어갑니다.
3.5 선택 사항: Stage3 환경에 vim 임시 설치
Gentoo Stage 3 시스템에는 vi가 없습니다. 대신 기본적으로 포함된 편집기 nano를 사용합니다. 정말 vi를 원하신다면 지금 다음을 수행하십시오:
VIM=$(which vim)
VIMDIR=$(dirname ${VIM})
cp --dereference ${VIM} /mnt/gentoo${VIM}
ln --symbolic ${VIM} /mnt/gentoo$(dirname ${VIM})/vi(그것이 의존하는 라이브러리는 이미 설치되어 있습니다.)
그러나 이후 지침은 당신이 하지 않았다고 가정할 것입니다. 만약 하셨다면, 원하는 명령으로 대체할 만큼 똑똑하실 것입니다.
3.6 chroot Stage3 환경으로 들어가기
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"이제 chroot된 환경에 들어왔으므로, portage를 현재 상태로 업데이트할 것입니다.
emerge --sync기계의 콘솔을 사용하는 것이 걱정된다면 /etc/conf.d/keymaps에서 키맵을 설정할 수 있습니다. 그렇지 않다면 그냥 두어도 됩니다.
nano --nowrap /etc/conf.d/keymaps이제 시간대를 설정합니다. /usr/share/zoneinfo의 내용을 확인하여 사용할 시간대를 확인합니다. (USE나 기본 make.profile은 변경하지 않을 것입니다.) 예를 들어,
cp /usr/share/zoneinfo/Europe/London /etc/localtime/etc/conf.d/clock에서 시간대를 설정합니다. 이전에 /etc/localtime으로 복사한 파일로 TIMEZONE 변수를 설정합니다. 예를 들어,
nano --nowrap /etc/conf.d/clockTIMEZONE="Europe/London"(그 줄의 주석을 제거하는 것을 잊지 마세요.)
CLOCK를 로컬로 설정해야 할 수도 있습니다. 일반적으로 필요하지 않지만, VMWare 및 기타 가상 환경에서 설치할 경우 일반적으로 필요합니다.
3.7 커널 설치
emerge gentoo-sources우리는 genkernel 설치를 수행하여 표준 Gentoo 커널을 설치할 것입니다. 이는 이 방법서의 단순성을 위해서입니다. 자신의 커널을 빌드하는 데 편안하다면, Gentoo 핸드북의 7장에 있는 지침을 따르십시오.
emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6두 번째 명령은 설치 디스크의 커널 구성을 현재 커널로 복사합니다. 여기까지 진행했다면 이 커널 구성은 우리에게 적합할 가능성이 높습니다.
여기서 우리는 무언가를 단축하고 나중에 더 복잡한 단계를 절약할 수 있습니다. 커널 구성에 쿼터 지원을 추가하고 싶습니다. 여기서 우리가 할 것은 genkernel이 사용하는 구성 템플릿 파일에 추가하여 커널을 업그레이드할 때 변경 사항이 사라지지 않도록 하는 것입니다.
nano --nowrap /usr/share/genkernel/x86/kernel-config-2.6CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y 그런 다음 계속 진행할 수 있습니다:
genkernel all이 작업은 시간이 걸릴 수 있습니다. 모든 것에 대한 지원을 구축하고 있습니다. 이건 일반 Gentoo 빌드가 될 것이라고 말씀드렸습니다.
참고: SCSI 또는 SATA 디스크에 설치하는 경우, 이 단계에서 대신,
genkernel --menuconfig all을 수행하고 시스템 드라이브가 연결된 SCSI 또는 SATA 인터페이스에 적합한 저수준 드라이버를 선택하여 모놀리식 커널에 컴파일되도록 하는 것이 가장 좋습니다. 이렇게 하지 않으면 (설치 디스크와 마찬가지로 initrd에서 드라이버 모듈을 로드하는 것) 작동해야 할 것이라고 생각하지만, 현재로서는 그렇지 않은 것 같습니다.
3.8 파일 시스템 설정
nano --nowrap /etc/fstab내가 따르는 이 가이드와 같은 파티션 스킴을 사용하고 있다고 가정하면, /dev/BOOT를 /dev/hda1로; /dev/ROOT를 /dev/hda3로; /dev/SWAP을 /dev/hda2로 교체합니다. 변경된 파일은 다음과 같아야 합니다:
[...]
#
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda3 / ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom audo noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
[...] 3.9 부팅 시 네트워킹 시작.
rc-update add net.eth0 default
rc-update add hostname default3.10 시스템 서비스 설치
emerge syslog-ng vixie-cron
rc-update add syslog-ng default
rc-update add vixie-cron default3.11 부트로더
emerge bootloader이것은 아키텍처에 대한 기본 부트로더를 설치합니다. 다음은 x86 또는 amd64에 해당하며 이 부트로더가 grub이라고 가정합니다. 이 초일반 PC 설치이므로, 우리는 속임수를 쓰고 그냥 작성할 것입니다. 이 가이드의 나머지가 시스템에 맞는다면, 이것도 맞을 것입니다. 그렇지 않으면 Gentoo 핸드북 10장을 참조하십시오.
echo -e "default 0\ntimeout 5\n\ntitle=GentooLinux\nroot (hd0,0)" > /boot/grub/grub.conf
echo "kernel `ls /boot/kernel*` root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev" >> /boot/grub/grub.conf
echo "initrd `ls /boot/initramfs*`" >> /boot/grub/grub.conf
grep --invert-match rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/hda3.12 마무리 및 재부팅
rc-update add sshd default
passwd그리고 root 비밀번호를 설정합니다. 그렇게 하면 콘솔에 가지 않고도 나중에 로그인할 수 있습니다. 모든 것이 잘 작동했다고 가정합니다.
chroot에서 나가고 재부팅합니다.
exit
cd
umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
reboot물론 드라이브에서 CD를 제거해야 할 수도 있습니다. 이는 부팅 순서에 따라 다르지만, 제거하는 것이 좋습니다. 더 이상 필요하지 않습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.