---
title: تبدیل Centos به AlmaLinux
description: این مستند نحوه تبدیل سیستم عامل شما به AlmaLinux را با استفاده از ابزار AlmaLinux Migration شرح می‌دهد.
url: "https://www.novinhost.org/docs/migrate-centos-to-almalinux/"
updated: "2025-10-08"
category: راهنمای لینوکس / آلمالینوکس
---

# تبدیل Centos به AlmaLinux

# راهنمای مهاجرت به آلما لینوکس

این مستند نحوه تبدیل سیستم عامل شما به AlmaLinux را با استفاده از [ابزار AlmaLinux Migration](https://github.com/AlmaLinux/almalinux-deploy) شرح می‌دهد.

چه سیستم عامل‌هایی قابل تبدیل هستند:

- CentOS 8
- CentOS Stream 8, 9
- Miracle Linux 8, 9
- Oracle Linux 8, 9
- RHEL 8, 9
- Rocky Linux 8, 9
- Virtuozzo Linux (VZLinux) 8, 9

این ابزار همچنین از پنل‌های cPanel، Plesk و DirectAdmin پشتیبانی می‌کند.

حداقل نسخه پشتیبانی شده از سیستم عامل‌های EL8، ۸.۴ است. در صورتی که نسخه سیستم عامل شما پایین‌تر است، لطفاً آن را ارتقا دهید.

نکته

توصیه می‌شود از سیستم خود یک نسخه پشتیبان یا اسنپ‌شات داشته باشید. در صورت بروز مشکل، یک نقطه بازیابی وجود خواهد داشت.

هشدار

مطمئن شوید که از دسترسی کنسول قابل اعتمادی به سیستم خود استفاده می‌کنید. توصیه می‌شود ابزار مهاجرت از داخل کنسول اصلی یا از طریق ssh اجرا شود.

## مهاجرت با استفاده از مخازن عمومی AlmaLinux (سیستم‌های آنلاین)

این مراحل برای مهاجرت‌های استاندارد در سیستم‌های آنلاینی که می‌توانند در طول فرآیند مهاجرت به مخازن رسمی AlmaLinux دسترسی داشته باشند، مناسب است.

سیستم EL8 یا EL9 خود را با استفاده از CLI به AlmaLinux تبدیل کنید:

- در صورت نیاز، دستور زیر را برای به‌روزرسانی سیستم عامل خود اجرا کنید:
  ```text
  sudo dnf update -y
  ```
- دستور زیر را برای دانلود اسکریپت [almalinux-deploy.sh](https://github.com/AlmaLinux/almalinux-deploy/blob/master/almalinux-deploy.sh) اجرا کنید :
  ```text
  curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
  ```
- اسکریپت را اجرا کنید:
  ```text
  sudo bash almalinux-deploy.sh
  ```
- خروجی را برای یافتن هرگونه خطا بررسی کنید. اگر تبدیل بدون هیچ مشکلی انجام شده باشد، خواهید دید که  `Migration to AlmaLinux is completed` در خروجی تکمیل شده است.
- سیستم را برای بوت شدن با هسته AlmaLinux مجدداً راه‌اندازی کنید:
  ```text
  sudo reboot
  ```
- مطمئن شوید که سیستم شما با موفقیت تبدیل شده است:
  - فایل انتشار را بررسی کنید:
    ```text
    $ cat /etc/redhat-release
    AlmaLinux release 8.7 (Stone Smilodon)
    ```
  - بررسی کنید که سیستم به طور پیش‌فرض با هسته AlmaLinux بوت شود.:
    ```text
    $ sudo grubby --info DEFAULT | grep AlmaLinux
    title="AlmaLinux (4.18.0-425.3.1.el8.x86_64) 8.7 (Stone Smilodon)"
    ```

## مهاجرت یک دستگاه دارای air-gapped

این مراحل برای مهاجرت دستگاه‌های ایزوله‌ای که اتصال اینترنتی ندارند اما به یک آینه خصوصی یا به یک دستگاه ذخیره‌سازی داده با آینه دسترسی شبکه دارند، توصیه می‌شود.

این فرآیند حداقل شامل دو میزبان است:

- سیستمی با دسترسی به اینترنت برای ایجاد یک آینه محلی AlmaLinux یا ذخیره آینه در یک دستگاه ذخیره‌سازی داده.
- سیستم هدفی که قرار است منتقل شود.

### الزامات

برای مهاجرت یک دستگاه ایزوله، باید یک mirror محلی برای دریافت به‌روزرسانی‌ها ایجاد کنید. برای این منظور، فضای ذخیره‌سازی توصیه‌شده حداقل ۵۰۰ گیگابایت برای هر نسخه اصلی است.

### ایجاد یک شبکه محلی و خصوصی AlmaLinux

**این مراحل باید روی یک میزبان با دسترسی به اینترنت انجام شود.**

از ابزار `rsync` می‌توان برای ایجاد یک شبکه استفاده کرد.

- همگام‌سازی با نسخه رسمی AlmaLinux از طریق `rsync`:
  ```shell
  /usr/bin/rsync -avSH --exclude='.~tmp~' --delete-delay --delay-updates rsync://rsync.repo.almalinux.org/almalinux/ /example-almalinux-mirror/
  ```
- در صورت نیاز، یک وظیفه cron ایجاد کنید تا آینه شما را به صورت دوره‌ای همگام‌سازی کند (توصیه می‌کنیم هر ۳ ساعت یکبار آینه را به‌روزرسانی کنید):
  ```shell
  0 */3 * * * sleep $(((RANDOM%3500)+1)) && /usr/bin/flock -n /var/run/almalinux_rsync.lock -c "/usr/bin/rsync -avSH --exclude='.~tmp~' --delete-delay --delay-updates rsync://rsync.repo.almalinux.org/almalinux/ /example-almalinux-mirror/"
  ```

  فایل `/example-almalinux-mirror/` می‌تواند روی یک دستگاه ذخیره‌سازی داده خارجی قرار گیرد، بنابراین می‌توان از این دستگاه در سیستم‌هایی که دسترسی مستقیم به mirror ایجاد شده توسط شما ندارند، استفاده کرد.

  اخطار

  فراموش نکنید که دایرکتوری /example-almalinux-mirror/ را با دایرکتوری مورد نیاز خود جایگزین کنید.

### اگر آینه محلی روی حافظه دستگاه باشد

اگر به یک آینه خصوصی یا اینترنت دسترسی ندارید، باید از یک دستگاه ذخیره‌سازی داده با یک آینه خصوصی محلی که با استفاده از مراحل بالا ایجاد شده است، استفاده کنید. اطمینان حاصل کنید که دستگاه دارای آینه مستقیماً برای سیستم در حال مهاجرت قابل دسترسی است، به عنوان مثال، با نصب آن در دایرکتوری `/opt` .

مطمئن شوید که mirror روی دستگاه از ساختار دایرکتوری مخزن AlmaLinux پیروی می‌کند. مثال برای AlmaLinux 8، x86-64 arch:

```text
/opt
├── almalinux-release-latest-8.x86_64.rpm
├── RPM-GPG-KEY-AlmaLinux-8
└── 8
    ├── AppStream
    │   └── x86_64
    │       └── os
    │           ├── Packages
    │           └── repodata
    ├── BaseOS
    │   └── x86_64
    │       └── os
    │           ├── Packages
    │           └── repodata
    ├── PowerTools
    .   └── x86_64
    .       └── os
    .           ├── Packages
                └── repodata
```

کجا:

- `Packages` - پوشه‌ای با مخزن مربوطه، تمام بسته‌ها
- `repodata` - پوشه‌ای با فراداده‌های مخزن

توجه داشته باشید که دانلود بسته `almalinux-release` و کلید عمومی GPG مربوط به نسخه شما، مانند`almalinux-release-latest-8.x86_64.rpm` و  `RPM-GPG-KEY-AlmaLinux-8`برای AlmaLinux 8 x86_64، از آدرس [https://repo.almalinux.org/almalinux/](https://repo.almalinux.org/almalinux/) (در پنجره جدید باز می‌شود) و قرار دادن آنها در ریشه `/opt`الزامی است.

### انجام مهاجرت

این مراحل باید روی سیستم هدف که قرار است مهاجرت کند، انجام شود.

سیستم EL8 یا EL9 خود را با استفاده از CLI به AlmaLinux تبدیل کنید:

- اکیداً توصیه می‌شود که سیستم عامل شما جدیدترین بسته‌ها را داشته باشد.
- اسکریپت [almalinux-deploy.sh](https://github.com/AlmaLinux/almalinux-deploy/blob/master/almalinux-deploy.sh) روی سیستم شما موجود است.
- اسکریپت را با استفاده از یکی از روش‌های زیر اجرا کنید:
  - اگر میرور محلی خصوصی AlmaLinux شما از طریق شبکه قابل دسترسی است، مثلاً از طریق http://mirror.example.com/example-almalinux-mirror:

  ```text
  sudo bash almalinux-deploy.sh --local-repo=http://mirror.example.com/example-almalinux-mirror
  ```

  - اگر آینه خصوصی AlmaLinux شما به صورت محلی در سیستم فایل ذخیره شده است، به عنوان مثال، در دایرکتوری `/opt` :

  ```text
  sudo bash almalinux-deploy.sh --local-repo=file:///opt
  ```
- خروجی را برای یافتن هرگونه خطا بررسی کنید. اگر تبدیل بدون هیچ مشکلی انجام شده باشد، خواهید دید که  `Migration to AlmaLinux is completed`  در خروجی تکمیل شده است.
- سیستم را برای بوت شدن با هسته AlmaLinux مجدداً راه‌اندازی کنید:
  ```text
  sudo reboot
  ```
- مطمئن شوید که سیستم شما با موفقیت تبدیل شده است:
  - فایل انتشار را بررسی کنید:
    ```text
    $ cat /etc/redhat-release
    AlmaLinux release 8.7 (Stone Smilodon)
    ```
  - بررسی کنید که سیستم به طور پیش‌فرض با هسته AlmaLinux بوت شود.:
    ```text
    $ sudo grubby --info DEFAULT | grep AlmaLinux
    title="AlmaLinux (4.18.0-425.3.1.el8.x86_64) 8.7 (Stone Smilodon)"
    ```

## مهاجرت از نسخه‌های CentOS پایین‌تر از ۸.۴

چند نکته‌ی اضافی هنگام تبدیل سیستم CentOS شما وجود دارد. برای تبدیل به AlmaLinux، CentOS 8.4 یا 8.5 مورد نیاز است. اگر نسخه CentOS شما پایین‌تر است، توصیه می‌شود قبل از تبدیل به AlmaLinux، آن را به 8.5 به‌روزرسانی کنید. اگرچه، اگر نسخه CentOS شما حداقل CentOS 8.4 باشد، نیازی به این کار نیست.

- از تاریخ ۳۱ ژانویه ۲۰۲۲، لیست‌های mirror در CentOS 8 آفلاین هستند. برای اجرای موفقیت‌آمیز دستور `dnf update -y` ، باید فایل‌های پیکربندی `dnf`خود را به‌روزرسانی کنید تا به یک mirror معتبر اشاره کنند. برای راحتی می‌توانید از دستورات  `sed` زیر برای بازیابی dnf به حالت عملیاتی استفاده کنید که به شما امکان به‌روزرسانی به ۸.۵ و متعاقباً AlmaLinux را می‌دهد.

```text
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[baseos]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/BaseOS/$basearch/os' /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[appstream]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/AppStream/$basearch/os' /etc/yum.repos.d/CentOS-Linux-AppStream.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[cr]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/ContinuousRelease/$basearch/os' /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[devel]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/Devel/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Devel.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[extras]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/extras/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Extras.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[fasttrack]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/fasttrack/$basearch/os' /etc/yum.repos.d/CentOS-Linux-FastTrack.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[ha]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/HighAvailability/$basearch/os' /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[plus]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/centosplus/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Plus.repo
sudo sed -i -e '/mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http://mirror.centos.org/$contentdir/$releasever// s/^#*/#/' -e '/^[powertools]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/PowerTools/$basearch/os' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
```

نکته

به عنوان یک روش جایگزین، می‌توانید از آپشن `-f` برای مدیریت این مورد هنگام اجرای اسکریپت [almalinux-deploy.sh](https://github.com/AlmaLinux/almalinux-deploy/blob/master/almalinux-deploy.sh)استفاده کنید:

```text
sudo bash almalinux-deploy.sh -f
```

- برای به‌ روزرسانی سیستم عامل خود، دستور زیر را اجرا کنید:

```text
sudo dnf update -y
```

- بعد از آپدیت سیستم را ریستارت کنید:

```text
sudo reboot
```

- دستور زیر را برای دانلود اسکریپت [almalinux-deploy.sh](https://github.com/AlmaLinux/almalinux-deploy/blob/master/almalinux-deploy.sh) اجرا کنید:

```text
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
```

- اسکریپت را اجرا کنید::

```text
sudo bash almalinux-deploy.sh
```

- مطمئن شوید که سیستم شما با موفقیت تبدیل شده است:
  - فایل انتشار را بررسی کنید

  ```text
  $ cat /etc/redhat-release
  AlmaLinux release 8.7 (Stone Smilodon)
  ```

  - بررسی کنید که سیستم به طور پیش‌فرض با هسته AlmaLinux بوت شود

  ```text
  $ sudo grubby --info DEFAULT | grep AlmaLinux
  title="AlmaLinux (4.18.0-425.3.1.el8.x86_64) 8.7 (Stone Smilodon)"
  ```
