
به اشتراک بگذارید

به اشتراک بگذارید
از ۳۰ ژوئن ۲۰۲۴، سروری که روی CentOS 7 مانده هیچ وصله امنیتی رسمی نگرفته است. مهاجرت CentOS به AlmaLinux با ابزار ELevate این فاصله را بدون نصب دوباره سیستمعامل میبندد. دادهها و تنظیمات سر جایشان میمانند و خود ارتقا دو بار سرور را ریبوت میکند. مسیر Rocky Linux از پاییز ۲۰۲۵ عوض شده است.
| مرحله | کار اصلی | برگشتپذیر است؟ | راه برگشت |
|---|---|---|---|
| آمادهسازی | اسنپشات اول، تعویض مخزن و آپدیت | فقط با اسنپشات | اسنپشات اول |
| پیشارتقا | اجرای leapp preupgrade و رفع موانع | بله | اسنپشات اول |
| ارتقا | اجرای leapp upgrade و ریبوت | خیر | فقط اسنپشات دوم |
| بعد از ارتقا | بررسی نسخه، بستههای el7 و سرویسها | خیر | اسنپشات دوم یا بکاپ |
💡 ارتقای درجا، هر بار یک نسخه اصلی
پروژهای که AlmaLinux در ۲۰۲۱ معرفی کرد و با ابزار Leapp نسخه اصلی سیستمعامل را بدون نصب مجدد بالا میبرد.
✅ نقطه بیبازگشت فرمان leapp upgrade است.
✅ پیش از آن یک اسنپشات تازه بگیرید.
پیش از اولین فرمان دو تصمیم را بنویسید: مقصد سرور، و اسنپشاتی که اگر کار نیمهکاره ماند به آن برمیگردید. مقصد در عمل AlmaLinux 8 است، چون گزینه دیگر ELevate یعنی CentOS Stream 8 از ۳۱ مه ۲۰۲۴ آپدیت نمیگیرد. ساعت هر اسنپشات را همان لحظه یادداشت کنید.
📌 نقشه کار از اسنپشات اول تا مقصد
◀️ وضعیت فعلی CentOS 7
◀️ آمادهسازی پیش از نقطه بیبازگشت
◀️ اجرای ELevate گام به گام
◀️ بررسیهای بعد از ریبوت

طبق اعلام پروژه CentOS، عمر CentOS Linux 7 در ۳۰ ژوئن ۲۰۲۴ (۱۰ تیر ۱۴۰۳) تمام شد و دیگر بهروزرسانی نمیگیرد. بستههایش به آرشیو vault.centos.org رفتهاند؛ یعنی سرور نه وصله امنیتی دارد و نه مخزن فعال.
مخزنهای پیشفرض دیگر بستهای ندارند. راهنمای سریع ELevate دو راه میدهد: مخزن vault یا میرور CentOS 7 که AlmaLinux برای ELevate ساخته است (فرمانش در گام ۱).
روی سرورهای ایران خطای yum گاهی از اختلال اینترنت بینالملل است؛ تنظیم میرور داخلی لینوکس در مقاله جداگانه آمده است. پیش از مهاجرت CentOS به AlmaLinux از دسترسی پایدار به مخزن مطمئن شوید؛ Leapp بستههای نسخه جدید را از مخزنهایی میگیرد که در /etc/leapp/files/leapp_upgrade_repositories.repo آمدهاند. راهنمای آفلاین ELevate نشان میدهد این نشانیها را چطور به میرور محلی AlmaLinux ببرید.
طبق صفحه رسمی ELevate، این ابزار CentOS 7 را به AlmaLinux 8 میبرد و بعد داخل همان توزیع هر بار یک نسخه اصلی جلو میرود. همان صفحه میگوید از بهروزرسانی ۳ نوامبر ۲۰۲۵ مهاجرت به Rocky Linux پشتیبانی نمیشود، چون دادههای مهاجرت Rocky برای قالب جدید leapp-data ارائه نشده است.
migrate2rocky.sh که طبق مستندات Rocky EL8 را به Rocky Linux 8 تبدیل میکند؛ برای EL9 اسکریپت جدای migrate2rocky9.sh هست.مسیر ترکیبی Rocky یکجا مستند نشده؛ اول روی سرور آزمایشی امتحانش کنید. برای مقایسه دو توزیع، انتخاب سیستمعامل سرور مجازی را ببینید.

تا وقتی leapp upgrade را اجرا نکردهاید، سرور هنوز CentOS 7 است و با اسنپشات اول برمیگردد. مستندات ELevate بکاپ یا اسنپشات و یک اجرای آزمایشی جدا را توصیه میکند؛ اگر مهاجرت CentOS به AlmaLinux روی سرور عملیاتی است، هر دو لازم است.
مهاجرت درجا بازسازی خانهای است که ساکنانش هنوز در آن زندگی میکنند: وسایل باارزش را اول به خانه اقوام میبرید، و دیواری که خراب شد فقط از روی نقشهای که نگه داشتهاید دوباره ساخته میشود.
اسنپشات کل دیسک را برمیگرداند و بکاپ داده (دیتابیسها، /etc و فایلهای سایت) بیرون از سرور میماند. مستندات Rocky هم برای سرور عملیاتی هر دو را خواسته است.
🔶 اسنپشات و بازگردانی در پنل وبداده
بعد از نقطه بیبازگشت، راه برگشت سیستمعامل اسنپشاتی است که در پنل سرور مجازی وبداده گرفتهاید. بازگردانی هم از همان پنل انجام میشود.
فرمان leapp preupgrade مشکلها و راهحلهای پیشنهادی را در /var/log/leapp/leapp-report.txt مینویسد و طبق راهنما بسته rpm نصب نمیکند. اولین اجرا روی نصب پیشفرض شکست میخورد. گاهی Leapp فایل /var/log/leapp/answerfile را هم میسازد که همه پرسشهایش باید جواب بگیرند.
⚠️ نقطه بیبازگشت همینجاست
از گام ۵ (بخش بعد) به بعد، Leapp بستههای CentOS 7 را با نسخههای EL8 عوض میکند و مستندات ELevate راه برگرداندنی نمیدهد. بدون اسنپشات دوم از این خط رد نشوید.
گامهای زیر مهاجرت CentOS به AlmaLinux را به ترتیب راهنمای سریع ELevate پیش میبرند. گامهای ۰ تا ۴ با اسنپشات اول برمیگردند و گام ۵ فقط با اسنپشات دوم. روند ارتقا بعد از ریبوت در کنسول سرور دیده میشود.
اسنپشات اول را بگیرید و بکاپ داده را بیرون از سرور بفرستید. فهرست سرویسهای در حال اجرا را هم برای مقایسه بعدی ذخیره کنید:
systemctl list-units --type=service --state=running > ~/services-before.txt
فرمان دوم فایل CentOS-Base.repo را بازنویسی میکند، پس فرمان اول از آن کپی میگیرد:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /root/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo
sudo yum update -y
sudo reboot
اگر اینجا خطا دیدید: معمولاً yum به مخزن نمیرسد. دسترسی سرور به el7.repo.almalinux.org را بسنجید؛ فایل قبلی در /root مانده است.
sudo yum install -y https://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
sudo yum install -y leapp-upgrade leapp-data-almalinux
بسته اول مخزن و کلید GPG پروژه را اضافه میکند و بسته leapp-data-almalinux دادههای مقصد را نصب میکند (راهنما همین نشانی را با http آورده است). اگر اینجا خطا دیدید: دسترسی به repo.almalinux.org را بسنجید.
sudo leapp preupgrade
🔸 خواندن موانع در leapp-report.txt
موارد مانع (inhibitor) جلوی ارتقا را میگیرند. سه فرمان زیر رفعهای رایج CentOS 7 در راهنما هستند؛ فقط همانی را اجرا کنید که گزارش شما نام برده است. خط PermitRootLogin yes ورود root با SSH را باز میکند. فرمان tee -a آن را ته فایل میگذارد، پس اگر فایل به بلوک Match ختم میشود خط را بالای آن بنویسید. بعد از ارتقا این سیاست را بازبینی کنید.
sudo rmmod pata_acpi
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
اگر اینجا خطا دیدید: بعد از هر رفع، پیشارتقا را دوباره اجرا کنید. برای خطاهای دیگر سراغ صفحه مشکلات رایج ELevate بروید.
حالا که گزارش تمیز است، اسنپشات دوم بگیرید تا اگر ارتقا شکست خورد، رفع موانع را از اول تکرار نکنید.
sudo leapp upgrade
sudo reboot
بعد از ریبوت، گزینه ELevate-Upgrade-Initramfs در GRUB میآید و سیستم خودکار با آن بالا میآید. اگر اینجا خطا دیدید: پیام «More space needed on the / filesystem» یعنی /var جا ندارد، یا روی XFS با ftype=0 فایل overlay (پیشفرض ۲۰۴۸ مگابایت) کم است. چون sudo متغیرهای محیطی را پاک میکند، ارتقا را از پوسته root دوباره اجرا کنید:
sudo -i
export LEAPP_OVL_SIZE=4096
leapp upgrade

وقتی مهاجرت CentOS به AlmaLinux تمام شد و سرور بالا آمد، نسخه سیستمعامل، بستههای باقیمانده از CentOS 7 و لاگ Leapp را بسنجید. سرویسها را هم با فایل گام ۰ مقایسه کنید:
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el7
sudo cat /var/log/leapp/leapp-report.txt
sudo cat /var/log/leapp/leapp-upgrade.log
بستههایی را که هنوز el7 دارند یکییکی حذف یا دستی بهروز کنید. برای خرابی sssd هم صفحه مشکلات رایج راهحل دارد.
پیش از ارتقای دوم، راهنمای «ELevating CentOS 7 to AlmaLinux 10» در ویکی AlmaLinux پاکسازی میخواهد. ورودیهای elevate و leapp را از خط exclude= در /etc/yum.conf و /etc/dnf/dnf.conf بردارید. بستههای باقیمانده el7 و leapp و elevate را حذف کنید و dnf clean all بزنید. بعد با اسنپشات سوم، ELevate را تکرار کنید. اگر dnf update خطای وابستگی داد، مخزن CRB را ببینید؛ اگر پیش از ELevate فعال نبوده، خاموش میماند.
روی AlmaLinux 8.10 اول همان پاکسازی بالا را انجام دهید؛ README اسکریپت مخزنهای اصلی فعال و بدون مخزن مزاحم میخواهد. اسنپشات بگیرید و فضای /var را بسنجید (README حدود 1.5G خواسته است). فرمانها را با کاربر root و داخل نشست tmux یا screen اجرا کنید؛ طبق README اگر نشست SSH وسط کار قطع شود، اسکریپت میمیرد و ممکن است سیستم قابل بازیابی نماند.
sudo -i
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod u+x migrate2rocky.sh
./migrate2rocky.sh -r
مستندات Rocky میگوید بعد از پیام Complete! سرور را ریبوت کنید و نتیجه را بسنجید:
reboot
hostnamectl
این پاسخها را پیش از جلسه تعیین پنجره تعمیرات مرور کنید تا آخر هفته پای کنسول نمانید.
بهصورت پشتیبانیشده خیر؛ صفحه رسمی ELevate این مسیر را از ۳ نوامبر ۲۰۲۵ کنار گذاشته است. راه فعلی، ارتقا تا AlmaLinux 8 و بعد migrate2rocky است.
مستندات عددی نمیدهد و فقط از دو ریبوت خود ارتقا میگوید؛ زمان را روی نسخه آزمایشی بسنجید.
خیر. صفحه رسمی ELevate برای سرورهای cPanel نسخه جداشده cPanel ELevate را توصیه میکند.
خیر. ELevate هر بار یک نسخه اصلی جلو میرود: اول ۷ به ۸، بعد ۸ به ۹.
هر دو در فهرست مخزنهای جانبی ELevate هستند (EPEL فقط برای مقصد AlmaLinux)؛ بقیه را خودتان تنظیم کنید.
معمولاً از درایوی که EL7 داشت و EL8 پشتیبانی نمیکند. پیام را در کنسول بخوانید و راهحل را در صفحه مشکلات رایج ببینید؛ اگر وقت تمام است، اسنپشات دوم را برگردانید.
بله. راهنمای آفلاین ELevate نشان میدهد Leapp را چطور به میرور محلی AlmaLinux وصل کنید.
جمعبندی؛ مهاجرت CentOS به AlmaLinux با یک خط قرمز آن خط قرمز فرمان leapp upgrade است. پیش از آن اسنپشات اول و بکاپ میگیرید، مخزن را عوض میکنید و سیستم را آپدیت میکنید. بعد گزارش پیشارتقا را تا آخرین مانع تمیز میکنید و راه برگشتتان اسنپشات اول است. بعد از آن، پشتوانه شما اسنپشات دومی است که درست پیش از ارتقا گرفتهاید. مقصد مستقیم ELevate امروز AlmaLinux 8 است و Rocky Linux از مسیر دو مرحلهای migrate2rocky میرسد. بعد از ارتقا، سرویسها را با فایل گام ۰ مقایسه کنید و برای نسخه ۹ همین چرخه را با اسنپشات تازه تکرار کنید.
🚀 ابزار Leapp وسط ارتقا به مخزن وصل میشود
ابزار Leapp بستهها را وسط ارتقا از مخزن میگیرد؛ دسترسی سرور ایران به مخزن را از قبل پایدار کنید.
سرور شما الان روی کدام نسخه است و در گزارش پیشارتقا کدام سرویس جلوی ارتقا را گرفته؟ نام مانع را همانطور که در گزارش آمده بنویسید.
منابع