گاهی اوقات ممکن است هنگام راهاندازی سیستم با مشکلاتی روبرو شوید که امکان ورود به محیط گرافیکی یا حتی خط فرمان را از شما سلب کند. در چنین شرایطی، نیاز به استفاده از محیط زنده و ابزارهای پیشرفته عیبیابی خواهید داشت. این راهنما به شما کمک میکند تا با استفاده از تصویر زنده پارچ، به سیستم نصب شده خود دسترسی پیدا کرده و مشکلات را برطرف کنید.
پیش از هر اقدامی، باید دقیقاً بدانید با چه نوع مشکلی روبرو هستید. برخی از نشانههای رایج عبارتند از:
زمانی که سیستم در حین راهاندازی متوقف میشود و پیامهای خطا نمایش میدهد، احتمالاً مشکل در بارگذار راهانداز یا پیکربندی هسته است. اگر سیستم تا صفحه ورود پیش میرود اما نمیتوانید وارد شوید، ممکن است گذرواژه یا پیکربندی مدیریت نمایش مشکل داشته باشد. در صورتی که بهروزرسانیهای اخیر باعث از کار افتادن سیستم شدهاند، نیاز به بازگردانی بستهها دارید.
برای شروع عیبیابی، ابتدا باید از تصویر زنده پارچ راهاندازی کنید. پس از ورود به محیط زنده، ترمینال را باز کنید و آماده انجام عملیاتهای پیشرفته شوید.
اولین گام پس از ورود به محیط زنده، شناسایی پارتیشنهای دیسک است. برای این کار از دستور زیر استفاده کنید:
sudo fdisk -l
این دستور فهرست کاملی از تمام دیسکها و پارتیشنهای موجود در سیستم را نمایش میدهد. خروجی این دستور شامل اطلاعات مهمی مانند نام دستگاه، اندازه، نوع پارتیشن و سیستم فایل است.
به عنوان مثال، ممکن است خروجی مشابه زیر را مشاهده کنید:
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 42993663 41943040 20G Linux filesystem
/dev/sda3 42993664 250069679 207076016 98.7G Linux filesystem
در این مثال، دیسک دارای سه پارتیشن است. پارتیشن اول با نوع سیستم یوایافآی، پارتیشن دوم احتمالاً ریشه سیستم و پارتیشن سوم میتواند پوشه خانگی باشد. باید با دقت این اطلاعات را بررسی کنید تا پارتیشنهای مورد نظر را شناسایی کنید.
اگر سیستم شما رمزنگاری شده است، ممکن است پارتیشنها به صورت مستقیم قابل مشاهده نباشند و نیاز به باز کردن حجم رمزنگاری شده دارید. همچنین اگر از مدیریت حجم منطقی استفاده میکنید، باید ابزارهای مخصوص آن را نیز به کار ببرید.
پس از شناسایی پارتیشن ریشه، باید آن را به نقطه اتصال استاندارد وصل کنید. معمولاً از مسیر دایرکتوری اتصال برای این منظور استفاده میشود:
sudo mount /dev/sda2 /mnt
در این دستور، فرض بر این است که پارتیشن دوم دیسک، پارتیشن ریشه سیستم شماست. باید نام دستگاه را با توجه به خروجی دستور قبلی تنظیم کنید.
پس از اجرای این دستور، تمام محتویات پارتیشن ریشه در مسیر دایرکتوری اتصال در دسترس خواهد بود. میتوانید با دستور زیر محتویات آن را مشاهده کنید:
ls /mnt
باید پوشههای استاندارد سیستم مانند بوت، اتک، دایرکتوری اصلی، پوشه خانگی و غیره را مشاهده کنید. اگر این پوشهها را نمیبینید، احتمالاً پارتیشن اشتباهی را وصل کردهاید.
بسیاری از نصبها پارتیشنهای جداگانهای برای پوشه خانگی یا سایر مسیرها دارند. اگر سیستم شما اینگونه است، باید این پارتیشنها را نیز وصل کنید:
sudo mount /dev/sda3 /mnt/home
این دستور پارتیشن سوم را به پوشه خانگی در داخل پارتیشن ریشه وصل میکند. اطمینان حاصل کنید که پوشههای مقصد از قبل موجود هستند، در غیر این صورت باید آنها را ایجاد کنید.
قبل از وصل کردن پارتیشن یوایافآی، بسیار مهم است که بدانید سیستم شما در چه زمانی نصب شده است. این موضوع تعیین میکند که باید پارتیشن بوت را کجا وصل کنید. برای بررسی این موضوع، میتوانید پرونده جدول پارتیشنهای سیستم فایل را بررسی کنید:
cat /mnt/etc/fstab
این پرونده شامل اطلاعات مهمی درباره نحوه وصل خودکار پارتیشنها هنگام راهاندازی سیستم است. به دنبال خطی بگردید که پارتیشن یوایافآی را مشخص میکند.
اگر در پرونده جدول پارتیشنهای سیستم فایل خطی مانند این ببینید:
UUID=xxxx-xxxx /efi vfat defaults 0 2
یعنی پارتیشن یوایافآی باید به مسیر اییافآی وصل شود.
اما اگر خط مشابه زیر را مشاهده کردید:
UUID=xxxx-xxxx /boot/efi vfat defaults 0 2
پس باید پارتیشن را به مسیر بوت اسلش اییافآی وصل کنید.
بر اساس اطلاعات به دست آمده از پرونده جدول پارتیشنهای سیستم فایل، اکنون میتوانید پارتیشن یوایافآی را وصل کنید. اگر سیستم شما از مسیر اییافآی استفاده میکند:
sudo mount /dev/sda1 /mnt/efi
یا اگر از مسیر بوت اسلش اییافآی استفاده میکند:
sudo mount /dev/sda1 /mnt/boot/efi
دستور ایجاد پوشه با گزینه پی، اطمینان میدهد که تمام پوشههای والد در صورت عدم وجود ایجاد میشوند. پس از وصل کردن، میتوانید محتویات را بررسی کنید:
ls /mnt/efi
یا
ls /mnt/boot/efi
باید پوشههایی مانند اییافآی که شامل بارگذارها و فایلهای مربوط به راهاندازی است را مشاهده کنید.
قبل از استفاده از محیط ریشه تغییر یافته، باید سیستمهای فایل مجازی هسته را نیز وصل کنید. این کار برای عملکرد صحیح بسیاری از ابزارها ضروری است:
sudo mount --types proc /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --make-rslave /mnt/sys
sudo mount --rbind /dev /mnt/dev
sudo mount --make-rslave /mnt/dev
sudo mount --bind /run /mnt/run
sudo mount --make-slave /mnt/run
این دستورات سیستمهای فایل مجازی را از محیط زنده به محیط وصل شده منتقل میکنند. گزینههای مختلف اطمینان میدهند که تغییرات به درستی منعکس شوند.
همچنین اگر سیستم شما از پیکربندی نام استفاده میکند، بهتر است آن را نیز کپی کنید:
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
این کار اطمینان میدهد که دسترسی به شبکه در داخل محیط ریشه تغییر یافته کار میکند.
سپس با دستور
sudo chroot /mnt
وارد محیط ریشه تغییر یافته میشوید.
اکنون که تمام پارتیشنهای لازم وصل شدهاند، میتوانید با استفاده از ابزار ریشه تغییر یافته آرچ وارد سیستم نصب شده خود شوید:
sudo arch-chroot /mnt
پس از اجرای این دستور، محیط خط فرمان شما تغییر میکند و گویی مستقیماً در سیستم نصب شده خود هستید. اکنون میتوانید تمام دستورات و عملیاتهای مدیریتی را به همان شکلی که در سیستم عادی انجام میدهید، اجرا کنید.
یکی از رایجترین کاربردهای محیط ریشه تغییر یافته، رفع مشکلات ناشی از بهروزرسانیهای ناقص است. برای بهروزرسانی کامل سیستم:
pacman -Syu
این دستور تمام بستههای موجود در سیستم را به آخرین نسخه موجود بهروز میکند. اگر مشکل شما ناشی از بهروزرسانی ناقص بود، این عملیات باید آن را برطرف کند.
گاهی ممکن است نیاز باشد ابتدا کلیدهای امضای بستهها را بهروز کنید:
pacman -Sy archlinux-keyring
pacman -Su
این رویکرد دو مرحلهای اطمینان میدهد که کلیدهای امضا قبل از بهروزرسانی سایر بستهها بهروز شدهاند.
اگر مشکل پس از نصب یا بهروزرسانی بسته خاصی آغاز شده، میتوانید آن بسته را به نسخه قبلی بازگردانید. ابتدا فهرست بستههای موجود در حافظه پنهان را بررسی کنید:
ls /var/cache/pacman/pkg/ | grep نام-بسته
پس از یافتن نسخه مورد نظر، میتوانید آن را نصب کنید:
pacman -U /var/cache/pacman/pkg/نام-بسته-نسخه-معماری.pkg.tar.zst
برای مثال، اگر میخواهید هسته لینوکس را به نسخه قبلی بازگردانید:
pacman -U /var/cache/pacman/pkg/linux-6.6.1-1-x86_64.pkg.tar.zst
پس از بازگردانی، بهتر است آن بسته را از بهروزرسانیهای خودکار مستثنی کنید تا مجدداً بهروز نشود:
nano /etc/pacman.conf
در این پرونده، خط زیر را پیدا کنید یا اضافه کنید:
IgnorePkg = نام-بسته
اگر مشکل شما مربوط به بارگذار راهانداز است، باید آن را بازسازی کنید. برای گراب:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
یا اگر مسیر بوت اسلش اییافآی دارید:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
دستور نصب گراب، بارگذار را در پارتیشن یوایافآی نصب میکند و دستور ساخت پیکربندی، پرونده پیکربندی را بر اساس هستهها و سیستمهای عامل موجود ایجاد میکند.
اگر سیستم به دلیل مشکل در سیستم فایل ریشه اولیه راهاندازی نمیشود، باید آن را بازسازی کنید:
mkinitcpio -P
این دستور تمام پیشتنظیمهای موجود را پردازش کرده و راهنماهای راهاندازی اولیه را ایجاد میکند. اگر پیغام خطایی دریافت کردید، باید مشکل را قبل از ادامه برطرف کنید.
گاهی مشکلات ناشی از خرابی سیستم فایل هستند. در این صورت باید از محیط زنده و قبل از وصل کردن پارتیشنها، آنها را بررسی کنید:
sudo umount /mnt/boot/efi
sudo umount /mnt/home
sudo umount /mnt
sudo fsck /dev/sda2
ابزار بررسی سیستم فایل خرابیها را شناسایی و در صورت امکان تعمیر میکند. توجه داشته باشید که هرگز نباید سیستم فایل وصل شده را بررسی کنید.
پس از انجام تمام اصلاحات لازم، باید از محیط ریشه تغییر یافته خارج شوید:
exit
سپس تمام پارتیشنهای وصل شده را جدا کنید:
sudo umount -R /mnt
این دستور به صورت بازگشتی تمام نقاط اتصال زیرمجموعه را نیز جدا میکند.
اکنون میتوانید سیستم را راهاندازی مجدد کنید:
reboot
قبل از راهاندازی مجدد، حتماً رسانه زنده را خارج کنید تا سیستم از دیسک سخت راهاندازی شود.
هنگام کار با محیط ریشه تغییر یافته، چند نکته مهم را باید در نظر داشته باشید. همیشه قبل از انجام تغییرات بزرگ، از اطلاعات مهم خود پشتیبان تهیه کنید. اگر با دستورات اطمینان ندارید، ابتدا در محیط آزمایشی آنها را امتحان کنید.
اطمینان حاصل کنید که تمام پارتیشنها را به درستی شناسایی کردهاید. اشتباه در این مرحله میتواند منجر به از دست رفتن اطلاعات شود. همچنین توجه داشته باشید که برخی عملیات مانند بهروزرسانی هسته یا بازسازی بارگذار ممکن است زمانبر باشند و نباید آنها را قطع کنید.
اگر سیستم شما رمزنگاری شده است، باید ابتدا حجم رمزنگاری شده را با ابزارهای مناسب باز کنید. در چنین مواردی، فرآیند کمی پیچیدهتر میشود و نیاز به دستورات اضافی دارد.
اگر پس از انجام این مراحل همچنان با مشکل روبرو هستید یا سوالی دارید، میتوانید به انجمن پارچ مراجعه کنید و از جامعه کاربران و توسعهدهندگان کمک بگیرید:
در انجمن، حتماً جزئیات کامل مشکل خود شامل پیامهای خطا، مراحلی که انجام دادهاید و اطلاعات سیستم خود را ارائه دهید تا دیگران بتوانند بهتر به شما کمک کنند.