</>

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

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

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

Command Palette

Search for a command to run...

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-rtReal-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 0

arch-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 هوشمندانه بسته‌های نصب‌شده را رد می‌کند.

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

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