Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

Gentoo เป็นการกระจาย Linux ที่ทรงพลังและขยายได้ เป็นหนึ่งในระบบปฏิบัติการน้อยๆ ที่ยังคงใช้ระบบจัดการแพ็กเกจแบบซอร์สโค้ด (source-based) ตามหลักการเดิมของ Linux ตัวจัดการแพ็กเกจของมันคือ Portage ซึ่งเป็นเครื่องมืออันทรงพลังที่ช่วยให้คุณปรับแต่งและเพิ่มประสิทธิภาพทุกด้านของระบบได้ตามต้องการ

ทำไมถึงใช้การกระจายแบบ Source-Based?

ปัจจุบัน การกระจาย Linux ส่วนใหญ่จัดเตรียมแพ็กเกจที่คอมไพล์ไว้ล่วงหน้า (precompiled) หมายความว่าการสร้างแพ็กเกจเกิดขึ้นบนเครื่องของนักพัฒนา

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

แม้การคอมไพล์แพ็กเกจจะไม่ใช่ปัญหาในยุคอินเทอร์เน็ตความเร็วสูง แต่มอเดลการกระจายแบบนี้ยังมีประเด็นที่ควรพิจารณา:

  • ไบนารีที่คอมไพล์แล้วหมายความว่าคุณไม่สามารถควบคุมได้ว่าโปรแกรมถูกคอมไพล์อย่างไร และมีฟีเจอร์อะไรบ้าง
  • การพึ่งพาไบนารีหมายความว่าคุณต้องวางใจให้กับนักพัฒนาการกระจายอย่างเต็มที่ว่าเขาจะไม่ใส่โค้ดอันตรายในที่เก็บ (repositories)

ทำไมถึงควรใช้ Gentoo?

เหตุผลคือ Gentoo เป็นการกระจาย Linux ที่ทรงพลัง มันให้การเข้าถึงและอิสระเกือบไม่มีข้อจำกัดในการเปลี่ยนแปลงและปรับแต่งระบบทั้งหมด

Portage: หัวใจสำคัญของ Gentoo

Portage เป็นส่วนประกอบหลักที่จัดการระบบ Gentoo Linux มันติดตั้ง จัดการ และปรับแต่งแพ็กเกจของบุคคลที่สาม นอกจากนี้ Portage ยังจัดการการตั้งค่าระบบพื้นฐานอีกด้วย

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ความแตกต่างหลักของ Portage คือมันอนุญาตให้คุณติดตั้งแพ็กเกจจากซอร์สโค้ด แม้ว่าจะทำได้ในการกระจายอื่นๆ แต่ Portage นำมาทำเป็นวิธีเริ่มต้นในการรับแพ็กเกจ

การรับได้ Gentoo

คุณสามารถดาวน์โหลด Gentoo จากเว็บไซต์อย่างเป็นทางการได้ ที่นั่นคุณสามารถเลือกโปรแกรมติดตั้งสำหรับแพลตฟอร์มต่างๆ Gentoo รองรับทั้ง amd64 และ arm64

หลังจากดาวน์โหลดไฟล์ ISO แล้ว คุณสามารถใช้โปรแกรมเขียน USB เช่น balenaEtcher เพื่อสร้างแฟลชไดรฟ์ที่บูตได้

การติดตั้ง Gentoo Linux

ก่อนจะเริ่มติดตั้ง Gentoo สิ่งสำคัญคือกระบวนการนี้เป็นแบบแมนูวลทั้งหมด หมายถึงจะต้องรันคำสั่งจำนวนมาก จึงแนะนำให้คุณอ่านคู่มือนี้พร้อมกับดูคู่มืออย่างเป็นทางการของ Gentoo (Handbook) เพื่อข้อมูลเพิ่มเติมระหว่างการติดตั้ง

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

เสียบแฟลชไดรฟ์เข้าคอมพิวเตอร์และบูตเครื่อง จะเข้าสู่หน้าจอติดตั้ง Gentoo

การตั้งค่าการเชื่อมต่อเครือข่าย

เพื่อติดตั้ง Gentoo คุณต้องเชื่อมต่ออินเทอร์เน็ต โปรแกรมติดตั้งจะเชื่อมต่ออัตโนมัติหากใช้สายลาน (wired) จากนั้นรันคำสั่งต่อไปเพื่อตรวจสอบการเชื่อมต่อ:

ping -c 5 maketecheasier.com
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

หากต้องเชื่อมต่อ Wi-Fi ต้องตั้งค่า wpa_supplicant เพื่อเชื่อมต่อกับ Access Point:

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

หลังจากนั้น รีโหลด daemon dhcpcd เพื่อเริ่มการเชื่อมต่อ:

rc-service dhcpcd restart

การแบ่งพาร์ติชันฮาร์ดดิสก์

ต่อไป ต้องจัดรูปแบบดิสก์ที่จะติดตั้ง Gentoo โดยใช้คำสั่ง fdisk

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

fdisk เป็นเครื่องมือแบ่งพาร์ติชันดิสก์บรรทัดคำสั่ง เริ่มต้นด้วย:

fdisk /your/disklabel

หากไม่แน่ใจโครงสร้างพาร์ติชันเดิม ให้ตรวจสอบด้วยแฟล็ก -l:

fdisk -l

การใช้ fdisk แบ่งพาร์ติชัน

ภายใน fdisk ให้ลบพาร์ติชันเก่าทั้งหมดโดยกด G

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

จากนั้นสร้างพาร์ติชันใหม่:

  1. กด N เพื่อสร้างพาร์ติชันใหม่ fdisk จะถามหมายเลขพาร์ติชัน กด Enter เพื่อใช้ค่าเริ่มต้น
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน
  1. fdisk จะถาม First และ Last sector กด Enter สำหรับ First sector และระบุขนาดสำหรับ Last sector รูปแบบคือ:
+size(G|M|K)
  • + บอกว่าขนาดเป็นสัมพัทธ์กับ first sector ที่เลือก
  • size เป็นตัวเลขที่คุณกำหนด
  • ตัวเลือกสุดท้ายบอกหน่วยเป็น GB, MB หรือ KB

การแบ่งพาร์ติชันสำหรับระบบ UEFI

การแบ่งพาร์ติชันต่อไปขึ้นอยู่กับว่าคุณใช้ BIOS หรือ UEFI หากใช้คอมพิวเตอร์สมัยใหม่ มักจะเป็น UEFI

เพื่อสร้างดิสก์ที่รองรับ UEFI ต้องสร้างพาร์ติชัน EFI System ก่อน พาร์ติชันแรก ขนาดประมาณ 100-256MB

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ตั้งค่าประเภทพาร์ติชันเป็น EFI System โดยกด T แล้วพิมพ์ 1

การแบ่งพาร์ติชันส่วนที่เหลือ

พาร์ติชันถัดไปคือ /boot สำหรับเก็บ Linux kernel และ bootloader ควรประมาณ 500MB-1GB (ตัวอย่างใช้ 1GB)

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

สร้างพาร์ติชัน SWAP สำหรับหน่วยความจำเสมือน กฎทั่วไปคือ 0.5-2 เท่าของ RAM ตัวอย่างมี RAM 8GB จึงตั้ง SWAP 16GB

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ตั้งค่าประเภทพาร์ติชันนี้เป็น 19 (Linux swap)

สุดท้าย สร้างพาร์ติชัน root (/) สำหรับระบบส่วนที่เหลือ โดยกด Enter ที่ Last sector เพื่อใช้พื้นที่ทั้งหมดที่เหลือ

กด P เพื่อตรวจสอบตารางพาร์ติชัน

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

กด W เพื่อบันทึกการเปลี่ยนแปลง

การจัดรูปแบบดิสก์ใน Gentoo

ขั้นตอนต่อไปคือจัดรูปแบบไฟล์ระบบ (format) ก่อนอื่น จัดรูปแบบพาร์ติชัน EFI System เป็น FAT:

mkfs.vfat /dev/sda1
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

จัดรูปแบบพาร์ติชัน /boot ด้วย ext2:

mkfs.ext2 /dev/sda2
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

สร้างและเปิดใช้งาน SWAP:

mkswap /dev/sda3 && swapon /dev/sda3
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

จัดรูปแบบพาร์ติชัน root เป็น ext4:

mkfs.ext4 /dev/sda4
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การดาวน์โหลด Stage 3 Tarball

มาท์พาร์ติชัน root ที่สร้างไว้ไปที่ /mnt/gentoo เพราะการติดตั้งจะทำงานบนฮาร์ดดิสก์ของเครื่อง:

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

ดาวน์โหลด Stage 3 tarball จาก gentoo.org โดยใช้ wget:

wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220227T170528Z/stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

Tarball นี้มีโปรแกรมขั้นพื้นฐานสำหรับการติดตั้ง Linux ขั้นต่ำ แตกไฟล์ด้วย tar:

tar xpvf ./stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz --xattrs-include='*.*' --numeric-owner
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การเลือก Mirror และคัดลอกข้อมูล DNS

ระบุตำแหน่งดาวน์โหลดแพ็กเกจด้วยคำสั่ง mirrorselect:

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

จะเปิดโปรแกรม TUI ให้เลือกเซิร์ฟเวอร์ที่ใกล้ที่สุด

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

คัดลอกไฟล์ repository สำหรับ Gentoo ไปที่ /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

คัดลอกข้อมูล resolver จาก USB installer ไป /mnt/gentoo เพื่อให้เครือข่ายทำงานหลัง chroot:

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

การ Mount ไฟล์อุปกรณ์และ Chroot

Mount ไดเรกทอรีพิเศษจาก USB installer ไปฮาร์ดดิสก์ เพื่อให้อุปกรณ์ทำงานหลัง 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 คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

รันคำสั่ง chroot เพื่อย้าย root directory จาก USB ไปฮาร์ดดิสก์:

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

การ Mount /boot และอัปเดต Gentoo

Mount พาร์ติชัน /boot และ /boot/efi:

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

อัปเดต Gentoo repositories เพื่อรับแพ็กเกจล่าสุด:

emerge-webrsync

คำสั่งนี้จะดาวน์โหลด EBUILDS ล่าสุดจาก mirror ที่เลือก

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การอัปเดตระบบ Gentoo ครั้งแรก

อัปเดตระบบให้ตรงกับ EBUILDS ล่าสุด:

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

คำสั่งนี้จะตรวจสอบแพ็กเกจ Stage 3 กับ repository และคอมไพล์อัปเดตทุกแพ็กเกจที่มีเวอร์ชันใหม่ กระบวนการนี้ใช้เวลานาน

Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

เขตเวลาและ Locale

ตั้งค่าข้อมูลเฉพาะภูมิภาค: เขตเวลาและ system locale หาเขตเวลาที่ใกล้ที่สุดใน /usr/share/zoneinfo แล้วเขียนลง /etc/timezone เช่น:

echo "Asia/Bangkok" > /etc/timezone
emerge --config sys-libs/timezone-data
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ตั้งค่า locale โดยแก้ไข /etc/locale.gen:

nano -w /etc/locale.gen

เพิ่ม locale ที่ต้องการ เช่นภาษาอังกฤษสหรัฐ:

en_US ISO-8859-1
en_US.UTF-8 UTF-8
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

จากนั้นรัน locale-gen เพื่อสร้าง locale ใหม่

การติดตั้ง Linux Kernel

มีหลายวิธีติดตั้ง Kernel ใน Gentoo สำหรับบทความนี้ใช้ kernel สำเร็จรูปจากนักพัฒนา Gentoo:

emerge --ask sys-kernel/installkernel-gentoo sys-kernel/gentoo-kernel-bin
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การตั้งค่า fstab

แก้ไขไฟล์ /etc/fstab เพื่อบอกระบบว่าต้อง mount พาร์ติชันไหนที่ไหน:

nano -w /etc/fstab

ตัวอย่างสำหรับระบบ UEFI:

/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 คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การตั้งรหัสผ่าน Root

ตั้งรหัสผ่าน root เนื่องจาก Stage 3 ตั้งรหัสสุ่มไว้ หากไม่ตั้งจะเข้าระบบไม่ได้หลัง reboot:

passwd
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การติดตั้งเครื่องมือเพิ่มเติม

ติดตั้งเครื่องมือสำหรับเครือข่าย (Ethernet และ Wi-Fi):

emerge --ask net-misc/dhcpcd net-wireless/iw net-wireless/wpa_supplicant
rc-update add dhcpcd default
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ติดตั้ง system logger:

emerge --ask app-admin/sysklogd
rc-update add sysklogd default
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

ติดตั้ง filesystem utilities:

emerge --ask sys-fs/dosfstools sys-fs/ntfs3g
Gentoo Linux คืออะไรและวิธีติดตั้งแบบทีละขั้นตอน

การติดตั้ง Bootloader

ขั้นตอนสุดท้ายคือติดตั้ง GRUB bootloader:

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

Unmount และ reboot:

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

หลัง reboot คุณจะได้ระบบ Gentoo Linux ใหม่ เริ่มติดตั้งซอฟต์แวร์และแพ็กเกจเพื่อสร้างระบบของตัวเอง หากยังไม่แน่ใจว่าจะใช้ Desktop Environment อะไร อ่านบทความเรื่อง Best Desktop Environments on Linux

คำถามที่พบบ่อย

1. มีวิธีเร่งความเร็วการคอมไพล์ใน Gentoo ไหม?

มี! เพิ่มค่าใน /etc/portage/make.conf เช่น ตั้งค่าเพื่อใช้ CPU cores ทั้งหมดระหว่างคอมไพล์:

MAKEOPTS="-j4" # เปลี่ยนตัวเลขตามจำนวน CPU cores ของเครื่องคุณ

2. ระบบบูตไม่ได้! แสดง GRUB แต่หลังจากนั้นหน้าจอว่างเปล่า

อาจเกิดจาก fstab ไม่ถูกต้อง แก้โดยเสียบ USB installer และทำตามขั้นตอน chroot ไปฮาร์ดดิสก์อีกครั้ง

3. Xorg ไม่แสดงฟอนต์ มีปัญหาอะไรไหม?

ส่วนใหญ่เพราะ Xft ไม่ได้ติดตั้ง ต้องเพิ่ม USE flag xft ใน /etc/portage/make.conf:

USE="xft"