pacstrap و chroot در Arch Linux
آشنایی با pacstrap برای نصب سیستم پایه و arch-chroot برای ورود به محیط نصبشده و پیکربندی آن.
پس از پارتیشنبندی و نصب پارتیشنها در /mnt، دو ابزار کلیدی Arch وارد صحنه میشوند: pacstrap برای نصب سیستم پایه و arch-chroot برای ورود به محیط نصبشده. در این آموزش، کار با این ابزارها را بهطور کامل یاد میگیریم.
pacstrap چیست؟
pacstrap اسکریپتی است که با استفاده از pacman، بستهها را از مخازن آنلاین دانلود کرده و در مسیر مشخصشده (معمولاً /mnt) نصب میکند. این ابزار همچنین کلیدهای امضای Arch را بهطور خودکار پیکربندی میکند.
# ساختار کلی دستور
pacstrap [OPTIONS] TARGET PACKAGES...نصب سیستم پایه
حداقل بستههای لازم برای یک سیستم قابل بوت:
# نصب پایهٔ سیستم
pacstrap -K /mnt base linux linux-firmwareتوضیح بستهها:
- base — متا-بستهٔ شامل ابزارهای ضروری (bash, coreutils, filesystem, grep, etc.)
- linux — کرنل لینوکس
- linux-firmware — فریمورهای لازم برای سختافزار
گزینهٔ -K
گزینهٔ -K کلیدهای pacman را در سیستم نصبشده پیکربندی میکند. این کار ضروری است تا بتوانید بعداً در محیط chroot بستهها را نصب کنید.
افزودن بستههای مفید
پس از نصب پایه، بستههای مفید دیگری را نیز اضافه کنید:
# ابزارهای توسعه و کامپایل (برای AUR)
pacstrap /mnt base-devel
# ویرایشگر متن
pacstrap /mnt nano vim
# ابزار sudo برای دسترسی ادمین
pacstrap /mnt sudo
# مدیر شبکه (ضروری برای اتصال بعد از بوت)
pacstrap /mnt networkmanager
# بوتلودر (یکی از این دو)
pacstrap /mnt grub efibootmgr # برای GRUB
# یا systemd-boot بهصورت خودکار نصب میشودنصب همه با یک دستور
میتوانید همه را در یک دستور نصب کنید:
pacstrap -K /mnt \
base base-devel \
linux linux-firmware \
nano vim sudo \
networkmanager \
grub efibootmgrانتخاب کرنل
Arch چندین کرنل مختلف ارائه میدهد:
| بسته | توضیح | مناسب برای |
|---|---|---|
linux | کرنل پایدار پیشفرض | اکثر کاربران |
linux-lts | کرنل پشتیبانی بلندمدت | ثبات بیشتر، سرور |
linux-zen | بهینهشده برای دسکتاپ | گیمینگ، چندرسانهای |
linux-hardened | امنیتمحور | سرورهای امنیتی |
linux-rt | Real-time | تولید موسیقی، کنترل صنعتی |
# نصب دو کرنل (پیشنهادی برای پایداری)
pacstrap -K /mnt base linux linux-lts linux-firmwareچرا دو کرنل؟
نصب همزمان linux و linux-lts یک امتیاز امنیتی است: اگر بهروزرسانی کرنل اصلی مشکل ایجاد کرد، میتوانید از منوی بوت کرنل LTS را انتخاب کرده و سیستم را بوت کنید. در آموزش بهروزرسانی این موضوع را بیشتر بررسی میکنیم.
تولید fstab
پس از نصب pacstrap، فایل fstab را تولید کنید. این فایل به سیستم میگوید کدام پارتیشنها را در زمان بوت نصب کند:
# با استفاده از UUID (پیشنهادی)
genfstab -U /mnt >> /mnt/etc/fstab
# یا با استفاده از label
genfstab -L /mnt >> /mnt/etc/fstabبررسی فایل تولیدشده:
cat /mnt/etc/fstabنمونهٔ خروجی:
# /dev/sda3
UUID=a1b2c3d4-... / ext4 rw,relatime 0 1
# /dev/sda1
UUID=ABCD-EFGH /boot vfat rw,relatime,fmask=0022,dmask=0022 0 2
# /dev/sda2
UUID=12345678-... none swap defaults 0 0arch-chroot چیست؟
arch-chroot اسکریپتی است که با ایمنسازی محیط chroot، شما را وارد سیستم نصبشده میکند. این ابزار کارهایی مانند mount کردن /dev, /proc, /sys و کپی /etc/resolv.conf را بهطور خودکار انجام میدهد.
# ورود به محیط نصبشده
arch-chroot /mnt
# یا با تعیین shell خاص
arch-chroot /mnt /bin/bashپس از ورود، خط فرمان تغییر میکند و شما در محیط سیستم نصبشده کار میکنید:
[root@archiso /]#تفاوت با chroot معمولی
arch-chroot در پسزمینه کارهای اضافی انجام میدهد: mount کردن فایلسیستمهای مجازی، فعالسازی شبکه، تنظیم DNS. استفاده از chroot خالی ممکن است باعث مشکلاتی شود (مثلاً pacman کار نکند چون /proc نصب نشده).
کارهایی که در chroot انجام میدهیم
پس از ورود به chroot، پیکربندیهای پایهٔ سیستم را انجام میدهیم. این موارد در آموزش پیکربندی پایه بهطور کامل آمدهاند:
۱. تنظیم منطقهٔ زمانی
ln -sf /usr/share/zoneinfo/Asia/Tehran /etc/localtime
hwclock --systohc۲. تنظیم locale
# ویرایش فایل locale.gen
nano /etc/locale.gen
# خطوط en_US.UTF-8 UTF-8 و fa_IR UTF-8 را از کامنت خارج کنید
# تولید locale
locale-gen
# تنظیم locale پیشفرض
echo "LANG=en_US.UTF-8" > /etc/locale.conf۳. تنظیم hostname
echo "myarch" > /etc/hostname
cat > /etc/hosts << EOF
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
EOF۴. تنظیم رمز root
passwd۵. نصب بوتلودر
# GRUB برای UEFI
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg۶. فعالسازی NetworkManager
systemctl enable NetworkManagerخروج از chroot
پس از اتمام پیکربندی:
# خروج
exit
# یا میانبر
Ctrl+Dجدا کردن پارتیشنها و راهاندازی مجدد
# جدا کردن پارتیشنها بهصورت بازگشتی
umount -R /mnt
# راهاندازی مجدد
rebootفراموش نکنید USB زنده را خارج کنید تا از دیسک سخت بوت شود.
نصب بستههای اضافی پس از بوت
پس از اولین بوت موفق، میتوانید با pacman بستههای بیشتری نصب کنید:
# نصب دسکتاپ GNOME
sudo pacman -S gnome
# نصب مرورگر
sudo pacman -S firefox
# نصب ابزارهای مدیریتی
sudo pacman -S htop neofetchبرای جزئیات به آموزش pacman مراجعه کنید.
خطاهای رایج
خطای "key could not be imported"
اگر pacman در حین pacstrap خطای کلید میدهد:
# در محیط زنده (نه chroot)
pacman-key --init
pacman-key --populate archlinux
# سپس pacstrap را با -K اجرا کنید
pacstrap -K /mnt base linux linux-firmwareخطای "failed to install packages"
این معمولاً به دلیل مشکل شبکه است:
# بررسی اتصال
ping -c 3 archlinux.org
# در صورت نیاز، آینههای سریعتر را انتخاب کنید
reflector --latest 20 --sort rate --save /etc/pacman.d/mirrorlistخطای "partition mounted"
اگر قبلاً پارتیشنها را در جای دیگری نصب کردهاید:
# بررسی پارتیشنهای نصبشده
findmnt
# جدا کردن پارتیشنهای قبلی
umount -R /mnt
# سپس دوباره mount کنید
mount /dev/sda3 /mntخلاصه
در این آموزش:
- با
pacstrapسیستم پایه را نصب کردید - با
genfstabفایل fstab را تولید کردید - با
arch-chrootوارد محیط نصبشده شدید - پیکربندیهای پایه را انجام دادید
در آموزش بعدی، پیکربندی پایهٔ کامل را بهطور جامع دنبال میکنیم.
پرسشهای رایج
تفاوت pacstrap و pacman چیست؟
pacstrap برای نصب بستهها در یک مسیر دیگر (مثلاً /mnt) استفاده میشود، در حالی که pacman بستهها را روی سیستم در حال اجرا نصب میکند. در واقع pacstrap در پسزمینه از pacman استفاده میکند.
آیا میتوانم بدون chroot پیکربندی کنم؟
بله، میتوانید فایلها را مستقیماً در /mnt/etc/... ویرایش کنید. اما استفاده از arch-chroot راحتتر است و دستوراتی چون passwd, systemctl, grub-install بهدرستی کار میکنند.
اگر pacstrap نصب ناقص انجام شود چه؟
مشکلی نیست. میتوانید دوباره pacstrap را اجرا کنید تا بستههای ناقص نصب شوند. pacman هوشمندانه بستههای نصبشده را رد میکند.
این صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.