در سرورهایی که به اینترنت دسترسی ندارند (آفلاین هستند)، نیاز به نصب بستههای نرمافزاری (Packages) جدید است. در چنین شرایطی، بهترین راهکار این است که فایل ISO نصب سیستمعامل را همیشه به عنوان یک درایو (فایلسیستم) آماده و متصل در سرور داشته باشیم.
چرا به این کار نیاز داریم؟
۱. ایجاد مخزن (Repository) محلی: میتوانید از فایلهای داخل ISO به عنوان سورس yum یا dnf استفاده کنید تا نرمافزارها بدون نیاز به اینترنت نصب شوند.
۲. صرفهجویی در فضا و زمان: به جای اکسترکت کردن محتویات ISO که فضای زیادی میگیرد، آن را به صورت Loop Device میخوانیم.
۳. دسترسی سریع به ابزارهای ریکاوری و فایلهای نصب.
پیش نیاز:
شما به فایل ISO سیستمعامل نیاز دارید. در این مثال، فرض میکنیم فایل شما در مسیر زیر قرار دارد:
/root/OracleLinux-R9-U7-x86_64-dvd-20251119.iso
مرحله اول: ساخت دایرکتوری (Mount Point)
ابتدا باید یک پوشه خالی بسازیم تا محتویات ISO در آن نمایش داده شود. در این آموزش از پوشهای به نام /cdrom/ استفاده میشود.
mkdir -p /cdrom
مرحله دوم: ویرایش فایل fstab برای اتصال دائمی
فایل /etc/fstab در لینوکس وظیفه مدیریت فایلسیستمهایی را دارد که باید هنگام بوت شدن سیستم متصل (Mount) شوند.
فایل را با ویرایشگر vi یا nano باز کنید:
vi /etc/fstab
خط زیر را به انتهای فایل اضافه کنید:
/root/OracleLinux-R9-U7-x86_64-dvd-20251119.iso /cdrom iso9660 defaults,loop,ro 0 0
توضیح پارامترها:
- بخش اول: مسیر دقیق فایل ISO.
- بخش دوم (cdrom/): محلی که فایلها در آن نمایش داده میشوند.
- بخش سوم (
iso9660): فرمت استاندارد فایلسیستمهای CD/DVD و فایلهای ISO. - بخش چهارم (
defaults,loop,ro): loop: به لینوکس میگوید که این یک فایل است، نه یک هارد دیسک فیزیکی، و باید آن را در یک Loop Device مجازی (مانند/dev/loop0) اجرا کند.ro(Read-Only): فایلهای ISO فقط خواندنی هستند. اضافه کردن این پارامتر از نمایش خطای مزاحمWARNING: source write-protectedجلوگیری میکند.- بخش پنجم و ششم (
0 0): تنظیمات مربوط به بکاپگیری (dump) و بررسی خطا (fsck) در زمان بوت که برای ISO باید روی صفر باشند.
مرحله سوم: اعمال تغییرات در systemd (نکته کلیدی)
پس از ویرایش فایل fstab در لینوکسهای مدرن، سیستمعامل پیام زیر را میدهد:
(hint) your fstab has been modified, but systemd still uses the old version
دلیل این پیام این است که systemd تنظیمات fstab را کش (Cache) میکند تا فرآیند بوت سریعتر شود. برای اینکه systemd متوجه تغییرات شما شود، حتماً باید دستور زیر را اجرا کنید:
systemctl daemon-reload
مرحله چهارم: اتصال و بررسی
حالا به جای اینکه سیستم را ریاستارت کنیم، به سیستم میگوییم تمام فایلسیستمهای داخل fstab را متصل کند:
mount -a
برای اطمینان از صحت انجام کار، دستور زیر را وارد کنید:
df -h
در خروجی باید خطی شبیه به این ببینید که نشان میدهد ISO شما به عنوان /dev/loop0 یا مشابه آن، روی /mnt/iso متصل شده و ۱۰۰٪ حجم آن استفاده شده است (زیرا فقط خواندنی است).
گام تکمیلی (ارزش افزوده): ساخت مخزن محلی (Local Repository)
حالا که سیستمعامل به صورت یک درایو آماده در cdrom/ قرار دارد، حیف است از آن برای نصب پکیجها استفاده نکنیم.
برای سیستمعاملهای مبتنی بر RedHat (مانند Oracle Linux 9، RHEL، Rocky Linux) به این شکل عمل کنید:
یک فایل برای مخزن جدید بسازید:
vi /etc/yum.repos.d/local-iso.repo
محتویات زیر را در آن قرار دهید (در نسخههای ۸ و ۹ ردهت، پکیجها به دو بخش BaseOS و AppStream تقسیم شدهاند):
[Local-BaseOS]
name=Oracle Linux 9 - BaseOS
baseurl=file:///cdrom/BaseOS
enabled=1
gpgcheck=0
[Local-AppStream]
name=Oracle Linux 9 - AppStream
baseurl=file:///cdrom/AppStream
enabled=1
gpgcheck=0
اکنون کش dnf را پاک کرده و لیست پکیجها را آپدیت کنید:
dnf clean all
dnf repolist
حالا شما همیشه یک درایو از سیستمعامل خود را متصل دارید و میتوانید با دستوراتی مثل dnf install vim نرمافزارهای دلخواه را با بالاترین سرعت و بدون نیاز به اینترنت مستقیماً از روی فایل ISO نصب کنید.