</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

Distribution Kernel — هستهٔ آمادهٔ Gentoo

آموزش کامل نصب و مدیریت Distribution Kernel در Gentoo: gentoo-kernel، gentoo-kernel-bin، USE flags، initramfs با dracut و به‌روزرسانی.

متوسط۱۰ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

Distribution Kernel هسته‌ای آماده است که Gentoo آن را با پیکربندی استاندارد، وصله‌های موردنیاز و به‌روزرسانی خودکار ارائه می‌دهد. این رویکرد شبیه به توزیع‌های دیگر است (مانند هستهٔ Ubuntu یا Fedora)، اما با این مزیت که در Gentoo می‌توانید آن را به‌دلخواه با USE Flags و savedconfig سفارشی کنید.

Distribution Kernel چیست؟#

Distribution Kernel مفهومی است که در آن Gentoo یک پیکربندی آماده (predefined .config) برای هسته ارائه می‌کند که طیف گسترده‌ای از سخت‌افزارها را پشتیبانی می‌کند. شما نیازی به اجرای make menuconfig ندارید؛ Portage به‌طور خودکار هسته را می‌سازد (یا نسخهٔ باینری را نصب می‌کند)، ماژول‌ها را در /lib/modules قرار می‌دهد و فایل bzImage را در /boot کپی می‌کند.

بستهنوعکاربرد
sys-kernel/gentoo-kernelسورس، کامپایل روی سیستمرایج‌ترین؛ بهینه برای سخت‌افزار شما
sys-kernel/gentoo-kernel-binباینری از پیش کامپایل‌شدهسریع‌ترین نصب، مناسب سیستم‌های ضعیف یا نصب سریع
sys-kernel/vanilla-kernelسورس خام بالا‌دستبدون وصله Gentoo
sys-kernel/vanilla-kernel-binباینری سورس خامهمان اما باینری

چه زمانی از gentoo-kernel-bin استفاده کنیم؟

اگر سیستم شما کند است یا می‌خواهید نصب Gentoo را سریع تمام کنید، gentoo-kernel-bin را نصب کنید. این بسته از سرور باینری Gentoo دانلود می‌شود و در چند دقیقه نصب می‌شود، در حالی که gentoo-kernel ممکن است روی یک سیستم معمولی ۲۰ تا ۶۰ دقیقه زمان ببرد.

USE Flags مهم#

پیش از نصب، باید USE Flags مربوط به هسته را در /etc/portage/make.conf تنظیم کنید:

# /etc/portage/make.conf
USE="${USE} initramfs build symlink modules-signing"

توضیح پرچم‌ها:

USE Flagعملکرد
initramfsساخت خودکار initramfs با dracut پس از کامپایل
buildاجازه ساخت کرنل (پیش‌فرض روشن)
symlinkبه‌روزرسانی خودکار symlink در مسیر /usr/src/linux
modules-signingامضای ماژول‌ها برای Secure Boot
debugساخت نسخه دیباگ با اطلاعات نمادها
experimentalفعال کردن ویژگی‌های آزمایشی

initramfs برای کرنل‌های مدرن

بدون USE flag initramfs، ممکن است هسته نتواند بوت شود، زیرا درایورهای موردنیاز برای سوار کردن فایل‌سیستم ریشه (مانند LVM، LUKS یا برخی کنترلرهای SATA) به‌صورت ماژول هستند و باید توسط initramfs بارگذاری شوند.

نصب Distribution Kernel#

# نصب نسخه سورس (کامپایل روی سیستم)
emerge --ask sys-kernel/gentoo-kernel
# خروجی:
# [ebuild  N    ] sys-kernel/gentoo-kernel-6.6.21:6.6.21-r1
# [ebuild  N    ] sys-kernel/installkernel-13
# [ebuild  N    ] sys-kernel/linux-firmware-20240115
 
# یا نصب نسخه باینری (سریع)
emerge --ask sys-kernel/gentoo-kernel-bin

پس از نصب، بررسی کنید:

# بررسی فایل‌های نصب‌شده در /boot
ls -l /boot
# خروجی:
# -rw-r--r-- 1 root root  12M vmlinuz-6.6.21-gentoo
# -rw-r--r-- 1 root root  48M initramfs-6.6.21-gentoo.img
# -rw-r--r-- 1 root root 256K config-6.6.21-gentoo
# -rw-r--r-- 1 root root 4.5M System.map-6.6.21-gentoo
 
# بررسی ماژول‌ها
ls /lib/modules/
# خروجی:
# 6.6.21-gentoo
 
# بررسی symlink سورس
readlink /usr/src/linux
# /usr/src/linux-6.6.21-gentoo

حتی با USE flag symlink، گاهی نیاز است دستی symlink را تنظیم کنید:

# فهرست سورس‌های موجود
eselect kernel list
# Available kernel symlink targets:
#   [1]   linux-6.6.21-gentoo *
#   [2]   linux-6.6.16-gentoo
 
# تنظیم فعال
eselect kernel set 1

بارگذاری ماژول‌ها#

برای بارگذاری خودکار ماژول‌ها هنگام بوت، فایل /etc/conf.d/modules (در OpenRC) یا فایل‌های /etc/modules-load.d/*.conf را ویرایش کنید:

# /etc/modules-load.d/network.conf
# بارگذاری ماژول کارت شبکه Intel
e1000e
 
# /etc/modules-load.d/bluetooth.conf
btusb
bluetooth

برای بارگذاری دستی یک ماژول:

# بارگذاری ماژول
modprobe snd_hda_intel
 
# بررسی ماژول‌های بارگذاری‌شده
lsmod | head
# خروجی:
# Module                  Size  Used by
# snd_hda_intel         53248  3
# snd_hda_codec         16384  1 snd_hda_intel
# ...
 
# لیست همه ماژول‌های موجود
find /lib/modules/$(uname -r) -name '*.ko*' | head

ساخت مجدد ماژول‌های خارجی#

اگر درایور خارجی (مانند nvidia-drivers یا virtualbox-modules) نصب دارید، پس از هر به‌روزرسانی هسته باید این ماژول‌ها دوباره ساخته شوند. ابزار module-rebuild این کار را انجام می‌دهد:

# نصب ابزار
emerge --ask sys-kernel/module-rebuild
 
# تنظیم فهرست ماژول‌ها برای ردیابی
module-rebuild set
# خروجی:
# Found 3 packages to track:
#   x11-drivers/nvidia-drivers-550.40.07
#   app-emulation/virtualbox-modules-7.0.14
#   net-wireless/rtl8821cu-20240115
 
# ساخت مجدد پس از به‌روزرسانی کرنل
module-rebuild rebuild
# یا با emerge:
emerge --ask @module-rebuild

@module-rebuild set

عبارت @module-rebuild یک set در Portage است که به‌طور خودکار فهرست بسته‌هایی را که ماژول هسته می‌سازند تشخیص می‌دهد. این روش مدرن‌تر و یکپارچه‌تر از module-rebuild مستقل است.

initramfs با dracut#

Distribution Kernel به‌طور پیش‌فرض از dracut برای ساخت initramfs استفاده می‌کند. اگر نیاز به سفارشی‌سازی دارید:

# نصب dracut
emerge --ask sys-kernel/dracut
 
# ساخت دستی initramfs برای کرنل فعال
dracut --kver $(readlink /usr/src/linux | sed 's/linux-//')
# خروجی:
# dracut: Executing: /usr/bin/dracut --kver 6.6.21-gentoo
# dracut: *** Installing kernel module dependencies ***
# dracut: *** Resolving executable dependencies ***
# dracut: *** Constructing Genuine Intel ***
# dracut: *** Creating image file '/boot/initramfs-6.6.21-gentoo.img' ***
# dracut: *** Creating initramfs image file '/boot/initramfs-6.6.21-gentoo.img' done ***

برای افزودن درایور خاص به initramfs، فایل /etc/dracut.conf.d/custom.conf را بسازید:

# /etc/dracut.conf.d/custom.conf
# اضافه کردن ماژول‌های خاص
add_drivers+=" nvme vfat "
# پشتیبانی از LUKS
add_dracutmodules+=" crypt crypt-gpg "
# فشرده‌سازی با zstd
compress="zstd"

به‌روزرسانی Distribution Kernel#

وقتی نسخهٔ جدید هسته منتشر می‌شود، Portage آن را به‌طور خودکار می‌سازد و در /boot نصب می‌کند:

# به‌روزرسانی کرنل
emerge --ask --update sys-kernel/gentoo-kernel
# خروجی:
# [ebuild  N    ] sys-kernel/gentoo-kernel-6.6.22:6.6.22
 
# ساخت مجدد ماژول‌های خارجی
emerge --ask @module-rebuild
 
# پیکربندی مجدد GRUB
grub-mkconfig -o /boot/grub/grub.cfg

نگه‌داشتن کرنل قدیمی

پس از نصب نسخهٔ جدید، نسخهٔ قدیمی را به‌مدت چند هفته نگه دارید. اگر نسخهٔ جدید مشکل داشت، می‌توانید از منوی GRUB نسخهٔ قدیمی را بوت کنید. برای حذف نسخهٔ قدیمی پس از اطمینان از پایداری:

emerge --depclean sys-kernel/gentoo-kernel:6.6.16

خطاهای رایج#

۱. کرنل بوت نمی‌شود — initramfs مفقود#

VFS: Unable to mount root fs on unknown-block(0,0)

دلیل: USE flag initramfs خاموش بوده یا فایل /boot/initramfs-*.img وجود ندارد. راه‌حل:

# بررسی فایل initramfs
ls /boot/initramfs-*
# اگر خالی بود:
emerge --ask sys-kernel/dracut
dracut --kver $(uname -r)
grub-mkconfig -o /boot/grub/grub.cfg

۲. خطای ماژول NVIDIA پس از به‌روزرسانی#

modprobe: FATAL: Module nvidia not found

دلیل: ماژول NVIDIA برای هستهٔ جدید ساخته نشده است. راه‌حل:

emerge --ask @module-rebuild
# یا
module-rebuild rebuild

۳. خطای dracut — cannot find kernel modules#

dracut: FATAL: Module nvme not found in /lib/modules/6.6.21-gentoo

دلیل: هسته با درایور NVMe ساخته نشده یا ماژول‌ها نصب نیستند. راه‌حل: یا درایور را به‌صورت built-in پیکربندی کنید (با Manual Kernel) یا از gentoo-kernel-bin استفاده کنید که شامل درایورهای کامل است.

خلاصه و مرحله بعد#

Distribution Kernel بهترین انتخاب برای کسانی است که می‌خواهند Gentoo را سریع نصب کنند، به‌روزرسانی‌های خودکار داشته باشند و درگیر پیکربندی دستی نشوند. این روش پایدار است و برای اکثر کاربران کفایت می‌کند.

اگر کنترل بیشتری می‌خواهید، آموزش Manual Kernel را ببینید. پس از نصب هسته، باید GRUB را نصب و پیکربندی کنید. برای مرور کلی مسیرهای نصب هسته، به آموزش نصب Kernel مراجعه کنید.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.