Computer >> 컴퓨터 >  >> 시스템 >> Linux

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

젠투(Gentoo)는 강력하고 확장성이 뛰어난 리눅스 배포판입니다. 오늘날에도 소스 코드 기반 패키지 관리 방식을 고수하는 몇 안 되는 운영체제 중 하나이며, 자체 패키지 관리자인 포티지(Portage)를 통해 배포판의 거의 모든 측면을 세밀하게 조정할 수 있습니다.

소스 기반 배포판을 사용해야 하는 이유

요즘 대부분의 리눅스 배포판은 미리 컴파일된(precompiled) 패키지를 제공합니다. 즉, 배포판 측에서 개발자 환경에서 패키지를 빌드한 후 사용자에게 배포하는 방식입니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

고속 인터넷이 보편화된 요즘 패키지 컴파일이 큰 부담은 아니지만, 이러한 배포 모델에는 다음과 같은 문제점이 있습니다.

  • 컴파일된 바이너리를 사용하면 프로그램이 어떤 옵션으로 빌드되었는지, 어떤 기능이 포함되었는지 사용자가 직접 통제할 수 없습니다.
  • 바이너리에 의존한다는 것은 저장소에 악성 코드가 포함되지 않으리라는 점을 배포판 개발자 전적으로 신뢰해야 한다는 의미입니다.

왜 젠투를 사용해야 할까?

답은 간단합니다. 젠투는 강력한 리눅스 배포판으로, 시스템 전체를 변경하고 수정할 수 있는 사실상 무제한의 접근 권한과 자유를 제공하기 때문입니다.

젠투의 심장, 포티지(Portage)

포티지는 젠투 리눅스 시스템을 관리하는 핵심 구성 요소입니다. 서드파티 패키지를 설치·관리·조정할 뿐만 아니라 기본적인 시스템 설정까지 담당합니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

포티지의 가장 큰 차별점은 패키지를 소스 코드에서 직접 설치할 수 있다는 점입니다. 물론 다른 배포판에서도 가능하지만, 포티지는 한 걸음 더 나아가 이를 패키지를 얻는 기본 방식으로 채택했습니다.

젠투 내려받기

젠투 공식 웹사이트(gentoo.org)에서 설치 이미지를 내려받을 수 있으며, 다양한 플랫폼용 설치 프로그램을 선택할 수 있습니다. 젠투는 amd64와 arm64 아키텍처를 모두 지원합니다.

내려받은 ISO 파일을 활용하려면 balenaEtcher 같은 USB 굽기 프로그램으로 부팅 가능한 플래시 드라이브를 만들면 됩니다.

젠투 리눅스 설치 시작

설치를 진행하기 전에 알아두어야 할 점이 있습니다. 젠투 설치 과정은 완전히 수동으로 이루어지며, 수많은 명령어를 직접 입력해야 합니다. 따라서 본 가이드와 함께 젠투 공식 핸드북(Handbook)도 참고하면서 설치를 진행하는 것이 좋습니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

플래시 드라이브를 컴퓨터에 꽂고 부팅하면 젠투 설치 화면으로 진입합니다.

네트워크 연결 설정

젠투를 설치하려면 인터넷에 연결되어 있어야 합니다. 유선 연결이라면 설치 환경이 자동으로 연결됩니다. 다음 명령어로 온라인 상태인지 확인하세요.

ping -c 5 maketecheasier.com
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

무선 네트워크에 연결해야 한다면 wpa_supplicant를 설정해야 합니다. 아래 명령어로 무선 공유기(AP)에 접속 정보를 등록합니다.

wpa_passphrase 'Your_SSID_Here' 'Your_Password_Here' >> /etc/wpa_supplicant/wpa_supplicant.conf

설정이 끝나면 dhcpcd 데몬을 재시작하여 네트워크 연결을 활성화합니다.

rc-service dhcpcd restart

하드 디스크 파티셔닝

다음으로 젠투를 설치할 디스크를 포맷해야 합니다. 간단히 fdisk 명령어를 사용하면 됩니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

fdisk는 명령줄 기반의 디스크 파티셔닝 도구로, 하드 디스크를 분할하고 시스템에 할당할 저장 용량을 지정할 수 있습니다. 다음 명령어로 실행합니다.

fdisk /your/disklabel

기존 디스크 파티션 구조를 잘 모르겠다면 -l 옵션으로 확인하세요.

fdisk -l

fdisk로 하드 디스크 파티션 나누기

fdisk에 진입하면 먼저 기존 파티션을 모두 지워야 합니다. 프롬프트에서 G 키를 누르면 됩니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

그다음 새 파티션을 생성합니다.

  1. N 키를 눌러 새 파티션 생성을 fdisk에 알립니다. 파티션 번호를 묻는 질문에는 Enter 키를 눌러 기본값을 사용합니다.
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드
  1. fdisk가 파티션의 첫 번째 섹터와 마지막 섹터를 묻습니다. 첫 번째 섹터는 Enter 키로 기본값을 사용하고, 마지막 섹터에는 원하는 크기를 지정합니다. 일반적인 문법은 다음과 같습니다.
+size(G|M|K)
  • + 기호: 크기를 선택한 첫 번째 섹터를 기준으로 상대적으로 지정한다는 의미입니다.
  • size: 사용자가 직접 지정하는 숫자입니다.
  • 마지막 옵션: 크기의 단위가 GB인지, MB인지, KB인지 fdisk에 알려줍니다.

UEFI 젠투 시스템용 파티셔닝

이후 파티션 작업은 BIOS 시스템인지 UEFI 시스템인지에 따라 달라집니다.

비교적 최신 하드웨어를 사용하는 현대적인 컴퓨터라면 대부분 UEFI 시스템일 가능성이 높습니다.

UEFI 호환 디스크를 만들려면 먼저 "EFI System" 파티션을 생성해야 합니다. 이 파티션은 디스크의 첫 번째 파티션이어야 하며, 크기는 약 100~256MB 정도가 적당합니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

생성 후 T 키를 눌러 해당 파티션의 타입을 "EFI System"으로 변경합니다. 타입 번호를 묻는 질문에는 1을 입력합니다.

나머지 디스크 영역 파티션하기

다음으로 만들 파티션은 "/boot" 파티션입니다. 리눅스 커널과 부트로더가 저장되는 곳으로, 이상적으로는 500MB~1GB 정도가 적절합니다. 여기서는 1GB로 설정했습니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

그다음 SWAP 파티션을 생성합니다. SWAP은 RAM이 메모리 공간이 부족할 때 동적으로 사용하는 하드 디스크 영역입니다.

SWAP 크기의 일반적인 기준은 시스템 메모리의 1/2배에서 2배 사이입니다. 예를 들어 노트북에 8GB 메모리가 장착되어 있다면 SWAP을 16GB로 설정할 수 있습니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

또한 이 파티션이 SWAP으로 올바르게 동작하도록 타입을 "19"로 지정합니다.

마지막으로 나머지 시스템이 설치될 루트(root) 파티션을 생성합니다. 남은 디스크 전체를 할당하려면 새 파티션 생성 시 Last Sector 항목에서 그냥 Enter 키를 누르면 됩니다.

여기까지 완료했다면 P 키를 눌러 방금 만든 파티션 테이블을 확인합니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

W 키를 누르면 변경 사항이 디스크에 저장됩니다.

젠투에서 디스크 포맷하기

다음 단계는 하드 디스크를 포맷하는 것입니다. 먼저 EFI System 파티션을 FAT 파일시스템으로 포맷합니다.

mkfs.vfat /dev/sda1
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

이렇게 하면 EFI 시스템이 부팅에 필요로 하는 FAT 파일시스템이 생성됩니다. 이어서 "/boot" 파티션은 더 단순한 ext2 파일시스템으로 포맷합니다.

mkfs.ext2 /dev/sda2
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

그다음 SWAP 파티션을 생성하고 활성화하여 젠투가 이 영역을 실제 메모리 스왑 용도로 사용할 수 있게 합니다.

mkswap /dev/sda3
swapon /dev/sda3
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

마지막으로 루트 파티션에 ext4 파일시스템을 생성합니다.

mkfs.ext4 /dev/sda4
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

젠투 Stage 3 타볼(Tarball) 내려받기

이제 설치가 하드 디스크에서 진행되므로, 방금 만든 루트 파티션을 "/mnt/gentoo" 디렉터리에 마운트합니다.

mount /dev/sda4 /mnt/gentoo && cd /mnt/gentoo

마운트가 완료되면 wget을 사용해 gentoo.org 웹사이트에서 Stage 3 타볼을 내려받습니다.

wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220227T170528Z/stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

이 타볼에는 최소한의 리눅스 설치에 필요한 모든 프로그램이 들어 있습니다. tar 명령어로 압축을 해제합니다.

tar xpvf ./stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz --xattrs-include='*.*' --numeric-owner
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

미러 선택 및 DNS 정보 복사

mirrorselect 명령어를 실행하여 이 시스템에서 패키지를 내려받을 미러 위치를 지정합니다.

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

TUI 프로그램이 열리면 자신과 가장 가까운 서버 위치를 선택하면 됩니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

이후 젠투 저장소 설정 파일을 "/etc/portage" 폴더로 복사합니다. 이 파일에는 젠투가 패키지를 내려받는 경로 정보가 담겨 있습니다.

mkdir -p /mnt/gentoo/etc/portage/repos.conf && \
      cp /mnt/gentoo/usr/share/portage/config/repos.conf \
         /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

마지막으로 USB 설치 환경의 리졸버(resolver) 정보를 "/mnt/gentoo" 디렉터리로 복사합니다. 이렇게 해야 루트 디렉터리를 하드 디스크로 전환한 뒤에도 네트워크가 정상 동작합니다.

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

디바이스 파일 마운트 및 chroot 진입

USB 설치 환경의 특수 디렉터리들을 하드 디스크에 마운트합니다. 이렇게 해야 chroot 실행 후에도 주변 장치들이 계속 정상 작동합니다.

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

USB 설치 환경에서 마지막으로 할 일은 chroot 명령어를 실행해 기준 루트 디렉터리를 USB에서 하드 디스크로 옮기는 것입니다.

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="[chroot] ${PS1}"

/boot 파티션 마운트 및 젠투 업데이트

"/boot" 파티션을 마운트합니다. 이렇게 해야 나중에 커널을 설치할 때 올바른 위치에 저장됩니다.

mount /dev/sda2 /boot
mkdir /boot/efi
mount /dev/sda1 /boot/efi

마운트가 끝나면 젠투 저장소를 업데이트하여 첫 시스템 업데이트 때 최신 패키지를 받을 수 있도록 준비합니다.

emerge-webrsync

emerge-webrsync는 앞서 선택한 미러에 접속해 젠투에서 사용 가능한 최신 EBUILD 파일들을 내려받습니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

첫 번째 젠투 시스템 업데이트

이제 다음 emerge 명령어로 시스템을 최신 EBUILD에 맞게 업데이트할 수 있습니다.

emerge --ask --verbose --update --deep --newuse @world

이 명령은 emerge에게 Stage 3 패키지와 현재 젠투 저장소의 패키지를 비교하도록 지시합니다. 더 최신 버전이 존재하는 패키지는 자동으로 업데이트됩니다.

emerge는 업데이트가 필요한 모든 패키지를 하나씩 내려받고 컴파일하기 때문에 이 과정은 상당한 시간이 걸릴 수 있습니다.

젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

타임존과 로케일 설정

다음으로 지역 관련 정보를 설정해야 합니다. 여기에는 타임존(time zone)과 시스템 로케일(locale)이 포함됩니다. 타임존을 설정하려면 "/usr/share/zoneinfo" 폴더에서 자신과 가장 가까운 지역을 찾습니다.

찾은 값을 "/etc/timezone" 파일에 기록합니다. 예를 들어 가장 가까운 지역이 "Asia/Manila"라면 다음과 같이 입력합니다.

echo "Asia/Manila" > /etc/timezone
emerge --config sys-libs/timezone-data
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

이제 로케일을 설정합니다. 로케일은 컴퓨터의 기본 시스템 언어를 결정합니다. "/etc/locale.gen" 파일을 편집하세요.

nano -w /etc/locale.gen

젠투에서 사용할 로케일을 추가합니다. 사용 가능한 로케일 전체 목록은 "/usr/share/i18n/SUPPORTED" 파일에서 확인할 수 있습니다. 예를 들어 미국 영어 로케일을 사용하려면 다음 두 줄을 추가합니다.

en_US ISO-8859-1
en_US.UTF-8 UTF-8
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

그런 다음 locale-gen을 실행해 시스템 로케일을 재생성합니다.

리눅스 커널 설치

젠투에 리눅스 커널을 설치하는 방법은 여러 가지가 있습니다. 모든 기능을 직접 수동으로 설정하거나, 젠투 개발자가 제공하는 사전 빌드(pre-built) 커널을 사용할 수 있습니다. 여기서는 후자를 선택합니다.

사전 빌드 커널을 설치하려면 installkernel 패키지와 커널 자체, 두 가지를 설치해야 합니다.

emerge --ask sys-kernel/installkernel-gentoo sys-kernel/gentoo-kernel-bin
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

fstab 설정

커널 설치가 끝나면 fstab 파일을 작성합니다. fstab은 부팅 시 젠투에게 어떤 파티션을 어디에 마운트할지 알려주는 파일입니다.

nano -w /etc/fstab

fdisk에서 생성한 모든 파티션을 기입합니다. 예를 들어 UEFI 시스템이라면 fstab 파일이 다음과 비슷하게 작성됩니다.

[...]
 
/dev/sda1    /boot/efi    vfat    defaults    0    2
/dev/sda2    /boot    ext2    defaults,noatime    0    2
/dev/sda3    none    swap    sw    0    0
/dev/sda4    /    ext4    noatime    0    1
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

루트 비밀번호 설정

Stage 3 타볼은 기본적으로 루트(root) 계정에 임의의 비밀번호를 설정하므로, 반드시 루트 비밀번호를 새로 지정해야 합니다.

여기서 비밀번호를 설정하지 않으면 재부팅 후 시스템에 접근할 수 없게 됩니다. 다음 명령어로 루트 비밀번호를 변경하세요.

passwd
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

추가 도구 설치

이제 젠투 시스템에 필요한 추가 서드파티 도구를 설치합니다. 예를 들어 유선 이더넷과 무선 연결을 모두 사용하려면 다음 패키지를 설치합니다.

emerge --ask net-misc/dhcpcd net-wireless/iw net-wireless/wpa_supplicant
rc-update add dhcpcd default
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

시스템 동작을 모니터링하고 싶다면 시스템 로거(logger)도 설치할 수 있습니다.

emerge --ask app-admin/sysklogd
rc-update add sysklogd default
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

자주 접하게 될 파일시스템용 유틸리티도 함께 설치해 두면 좋습니다.

emerge --ask sys-fs/dosfstools sys-fs/ntfs3g
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

부트로더 설치

젠투 설치의 마지막 단계는 부트로더(bootloader) 설치입니다. 부트로더는 BIOS와 리눅스 커널 사이에 위치하는 간단한 프로그램으로, BIOS에 커널을 불러오라고 지시하고, 커널이 이어서 운영체제를 부팅합니다.

GRUB 부트로더를 설치하려면 다음 명령어를 실행합니다.

emerge --ask sys-boot/grub
젠투 리눅스(Gentoo Linux)란? 개념부터 설치 방법까지 완벽 가이드

설치가 완료되면 다음 명령어로 GRUB을 초기화하고 설정합니다.

grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

이제 USB 설치 환경을 마운트 해제하고 시스템을 재부팅하면 됩니다.

exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo

시스템이 재부팅되면 새롭게 설치된 젠투 리눅스가 여러분을 맞이할 것입니다. 이제 기본 소프트웨어와 패키지를 설치하며 자신만의 맞춤형 리눅스 배포판을 만들어 가면 됩니다.

아직 어떤 데스크톱 환경을 설치할지 고민된다면, 리눅스 최고의 데스크톱 환경을 소개하는 글도 참고해 보세요.

자주 묻는 질문(FAQ)

1. 젠투에서 컴파일 시간을 단축할 수 있는 방법이 있나요?

네, 있습니다! "/etc/portage/make.conf" 파일에 몇 가지 값을 추가하면 컴파일 시간을 크게 단축할 수 있습니다. 예를 들어 아래 값을 설정하면 프로그램 컴파일 시 CPU 코어를 최대한 활용합니다.

MAKEOPTS="-j4" # 시스템의 CPU 코어 수에 맞게 숫자를 조정하세요.

2. 시스템이 부팅되지 않습니다! GRUB 화면은 나오는데 부팅 후 화면이 검정색으로만 표시됩니다.

여러 가지 원인이 있을 수 있지만, 가장 흔한 원인은 fstab 파일이 잘못 설정된 경우입니다. USB 설치 드라이브를 꽂고 앞서 설명한 chroot 절차를 다시 수행한 뒤 fstab을 수정하면 해결됩니다.

3. Xorg에서 글꼴이 표시되지 않습니다. 뭔가 문제가 있는 건가요?

Xft가 제대로 설치되지 않았을 가능성이 높습니다. 프로그램을 설치할 때 make.conf에 "Xft" USE 플래그를 추가해야 컴파일되는 프로그램이 X 호환 글꼴을 사용합니다. "/etc/portage/make.conf"에 다음 줄을 추가하세요.

USE="xft"