Preface

젠투 리눅스 설치 가이드는 문서 방향성을 전면 수정합니다.

설치에 익숙한 분들이 핸드북을 참조하기 번거로울 때 활용할 수 있도록 수정합니다.

젠투 리눅스가 처음이신 분들이나 리눅스가 익숙하지 않으신 분들은 핸드북을 통해 천천히 진행하시는 것을 권장합니다.

설치 환경에서의 터미널 프롬프트(prompt)는 루트 사용자이므로 #입니다.
베이스 설치가 완료된 이후, 일반 사용자로 로그인하면 프롬프트가 $로 바뀝니다.

Prerequisite

본인 Git에서 필요한 파일을 다운받아야 할 때,

Github
# wget https://github.com/YOUR_USER_ID/YOUR_REPOSITORY_NAME/raw/main/FILE_DIRECTORY/SOME_FILE

Gitlab
# wget https://gitlab.com/YOUR_USER_ID/YOUR_REPOSITORY_NAME/-/raw/master/FILE_DIRECTORY/SOME_FILE

Live USB

젠투 위키의 미러 페이지 혹은 다음/카카오 미러

# wipefs --all /dev/sdb
# dd if=./Downloads/install-amd64-minimal-20211231T235901Z.iso of=/dev/sdb status=progress && sync

Base

Ping

# ping

Partition

# ls /sys/firmware/efi

# wipefs --all /dev/sda
# parted /dev/sda
# cfdisk /dev/sda

Format

/boot
# mkfs.vfat -F 32 /dev/sdaN

swap
# mkswap /dev/sdaN
# swapon /dev/sdaN

/
# mkfs.ext4 -j /dev/sdaN

xfs, btrfs
# mkfs.xfs /dev/sdaN
# mkfs.btrfs /dev/sdaN

Mount

다른 배포판 환경에서 설치하는 경우, /mnt/gentoo 디렉터리가 없으므로,
# mkdir -pv /mnt/gentoo

# mount -v -t ext4 /dev/sda3 /mnt/gentoo

# mkdir -pv /mnt/gentoo/boot
# mount -v -t vfat /dev/sda1 /mnt/gentoo/boot

TIME

#ntpd -q -g

#hwclock --systohc --utc

Stage 3 Tarball

# cd /mnt/gentoo
# links https://www.gentoo.org/downloads/mirrors/
# tar xvpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

Edit make.conf

# nano -w /mnt/gentoo/etc/portage/make.conf

Mirror

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

Copy repos.conf

# mkdir --parents /mnt/gentoo/etc/portage/repos.conf

# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Copy resolv.conf

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

Mount /proc, /sys, /dev

아래 명령어중 '--make-rslave'옵션은 systemd 설치하실 분만 진행
# 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

Chroot

# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) $PS1"

Portage

# merge-webrsync
혹은
# emerge --sync

# emerge -avuDN @world
# emerge -av gentoolkit eix genlop

News

# eselect news list
# eselect news read N

Profile

# eselect profile list
# eselect profile set N

Timezone

# ls /usr/share/zoneinfo
# echo "Asia/Seoul" > /etc/timezone
# emerge --config sys-libs/timezone-data

Locale

# nano -w /etc/locale.gen
'en_US.UTF-8 UTF-8' 주석 제거
# locale-gen
# eselect locale list
# eselect locale set N

Update env

# env-update && source /etc/profile && export PS1="(chroot) $PS1"

Kernel

정품
# emerge --ask sys-kernel/gentoo-sources pciutils sys-kernel/linux-firmware

진품
# git clone https://github.com/torvalds/linux.git
# wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.1.tar.xz

유사품 1 - 바이너리 [2020-09-15: Gentoo 업데이트]
# emerge -a sys-kernel/gentoo-sources-bin
# emerge -a sys-kernel/gentoo-kernel-bin

유사품 2 - 컴파일
# emerge -a sys-kernel/gentoo-kernel
# emerge -a sys-kernel/vanilla-sources
# emerge -a sys-kernel/git-sources
# cd /usr/src/linux

# make mrproper
# make defconfig
# make menuconfig

# make -jN
# make modules_install
# make install

When updating the kernel
# cp /usr/src/linux/.config /usr/src/linux/NEW_KERNEL
# make olddefconfig
If you need initramfs
# genkernel --install --kernel-config=/usr/src/linux/.config initramfs
Microcode (TIP: Enable 'initramfs' USE Flag)
ex) add 'sys-firmware/intel-microcode initramfs'
    inside '/etc/portage/package.use/package.use' file


# emerge -av sys-firmware/intel-microcode

Edit fstab

# blkid >> /etc/fstab
# nano -w /etc/fstab
# Inside file '/etc/fstab'

/dev/sda1    /boot    vfat    defaults,noatime    0 2
/dev/sda2    none     swap    sw                  0 0
/dev/sda3    /        ext4    noatime             0 1
/dev/sda4    /home    ext4    noatime    0 1

# UUID <= remove quotation(")
# PARTUUID <= remove quotation(")

Hostname

# nano -w /etc/conf.d/hostname
# nano -w /etc/conf.d/net
# nano -w /etc/hosts

Netifrc

netifrc 사용시
#emerge --ask --noreplace net-misc/netifrc
#nano -w /etc/conf.d/net
> config_enp3s0="dhcp"

# cd /etc/init.d
# ln -s net.lo net.enp3s0

본인 드라이버의 이름을 넣어야 합니다.
# rc-update add net.enp3s0 default

TIP
# emerge -av ifplugd

Passwd

# passwd

Edit rc.conf

# nano -w /etc/rc.conf
> rc_logger="YES"
> rc_log_path="/var/log/rc.log"

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

Install logroate, sysklogd, cronie

TIP: Enable 'logrotate' USE Flag
ex) add 'app-admin/sysklogd logrotate'
    inside '/etc/portage/package.use/package.use' file

# emerge --ask app-admin/sysklogd cronie mlocate
# rc-update add sysklogd default
# rc-update add cronie default

# emerge --ask net-misc/dhcpcd
or
# emerge -av networkmanger
# rc-update add NetworkManager default

GRUB:2

# emerge --ask --verbose sys-boot/grub:2
# grub-install --target=x86_64-efi --efi-directory=/boot
# grub-mkconfig -o /boot/grub/grub.cfg

Reboot

# exit
# cd
# umount -lR /mnt/gentoo
# reboot

Useradd

# useradd -m -g users -G wheel,audio,video,portage -s /bin/bash USER_NAME
# passwd USER_NAME

Remove stage3*.tar.xz

# rm /stage3*.tar.xz

XORG

# eselect profile list
# eselect profile set N
# emerge -avuDN @world

# env-update && source /etc/profile

# emerge --ask x11-base/xorg-server
# env-update && source /etc/profile

PLASMA

Settings for Plasma
# eselect profile set N
# eselect profile list
# emerge -avuDN --with-bdeps=y @world

System Dependencies
# emerge --noreplace -av elogind udev dbus polkit udisks
# rc-update add dbus default
# rc-update add elogind boot

Install Packages
# emerge -av plasma-meta kde-aps-meta

SDDM
# emerge --noreplace -av sddm
# usermod -a -G video sddm
# emerge --renoplace -av gui-libs/display-manager-init

Enable SDDM
# vim /etc/conf.d/display-manager
> CHECKVT=7
> DISPLAYMANAGER="sddm"
# rc-update add display-manager default