نصب دیسترو جدید از راه دور

موقعیتی رو تصور کنید که روی سروری که در اختیار دارید می‌خواید یک سیستم عامل از اول نصب کنید. اما دسترسی به kvm ندارید.

اگه روی سرور دسترسی به گراب داشته باشید به راحتی می‌شه بدون داشتن kvm یک سیستم عامل جدید رو نصب کرد.

حتی موقع خرید سرور جدید بجای اینکه پول بدید بابت فعال کردن kvm خیلی راحت با سنت‌اواس ۵.۹ میشه سرور ددیکیتد رو تهیه کرد و بعد با روشی که گفته میشه اکثر سیستم عامل‌های جدید رو از اول خودتون نصب کنید 🙂

برای کسایی هم که نمی‌دونن kvm چیه بگم یه چی تو همون مایه‌های مانیتور کنار کیس و به صورت ریموت تصویر نصب دیسترو جدید رو خواهید داشت و بنابراین می‌شه سیستم رو به نحو مطلوب پارتیشن بندی و به دیسترو مطلوب آپگرید کرد.

برای شروع کافیه برید پوشه boot و یه فولدر بسازید به اسم دیسترویی که قراره نصب کنید . حالا باید کرنل و initrd دیسترو مد نظر رو دانلود کنید. و بعد توی کرنل سه خط اضافه میکنید تا موقع بالا اومدن سیستم از فایل‌هایی که دانلود کردید استفاده شه. توی همین گراب هم آی‌پی و مشخصات شبکه سرور رو می‌دید تا از طریق ریموت بتونید پروسه نصب اواس جدید رو نگاه کنید! 🙂

مثلا برای نصب سنت‌اواس ۶.۴ کافیه این مراحل رو انجام بدید.

cd /boot

mkdir centos6

cd centos6

wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/vmlinuz

wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/initrd.img

و حالا ویرایش گراب ( با فرض اینکه سنت‌اواس ۵.۹ و گراب یک دارید)‌

vi /boot/grub/menu.lst

این سه خط رو اضافه میکنید

title CentOS 6.4 VNC Installation
root (hd0,0)
kernel /centos6/vmlinuz vnc vncpassword=yourPassword headless ip=10.0.0.10 netmask=255.255.255.0 gateway=10.0.0.1 dns=8.8.8.8 ksdevice=eth0 method=http://mirror.centos.org/centos/6.4/os/x86_64/ lang=en_US keymap=us
initrd /centos6/initrd.img

رنگای آبی تعداد خطا رو نشون می ده که کلا ۴ خط خواهید داشت. همه‌شون رو هم با توجه به تنظیماتی که توی گراب وجود داره کپی‌ پیست می‌کنید. فقط خطی رو که مربوط به kernel و initrd هست رو به شکل بالا دستکاری میکنید. آی‌پی و نت مسک و گیت‌وی هم که با توجه به هر سروری فرق میکنه و خیلی مهمه! با این ای‌پی می تونید ریموت از طریق vnc وارد پروسه نصب بشید 🙂

پارامتر default=0 رو هم می‌تونید تغییر بدید تا به صورت خودکار بعد از ریست، سیستم با کرنل دیسترو جدید بوت بشه. اگرم چیزی ترکید و سیستم بالا نیومد می‌تونید زنگ بزنید به دیتاسنتر و بگید که سیستم رو ریست بدن و اینبار برن توی کرنل دیسترو قدیمی! :)‌ اما راه بهتری هم هست که کاری کنیم بدون ریست و تغییر گراب، کرنل و initrd بوت بشه! برای اینکار باید برنامه kexec-tools رو نصب داشته باشید.

kexec -l /boot/centos6/vmlinuz –initrd=/boot/centos6/initrd.img

kexec -e

دستور اول کرنل و initrd رو در مموری بارگذاری میکنه و دستور دوم باعث بالا اومدن کرنل جدید میشه.

برای اوبونتو و دبیان و اپن‌سوزه هم می‌تونید از ادرس‌های زیر برای نصب ریموت استفاده کنید.

http://cdimage.ubuntu.com/netboot/

http://www.debian.org/distrib/netinst

و اپن‌سوزه

 mkdir /boot/install

 cd /boot/install

 wget –output-document=oS-12.3.vmlinuz.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/linux

 wget –output-document=oS-12.3.initrd.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/initrd

و در گراب هم تنظیمات به این شکل میشه

  title install
root   (sdX,Y) # change this (sdX,Y)
kernel /boot/install/oS-12.3.vmlinuz.install install=http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/
initrd /boot/install/oS-12.3.initrd.install