جهت عضویت در گروه فنی ویپ کلیک کنید

ریمستر کردن اوبونتو (How to Remaster Ubuntu)

در این اموزش که از سایت دوستم برداشتم hajm.ir قصد داریم به iso اوبونتو سرور پکیج های دلخواهمون رو به همراه تمام dependency هاشون اضافه کنیم تا در صورتی که خواستیم اون پکیج ها رو در هنگام نصب اوبونتو سرور انتخاب کنیم و نصبشون کنیم.
به روش های مختلفی میشه یک پکیج رو در هنگام نصب اوبونتو سرور نصب کرد مثلا با استفاده از preseed یا اجرا کردن یک اسکریپت در مرحله اخر نصب و … ولی من خودم هیچ کدوم رو نتونستم راه بندازم به جز این یک روش. در روشی که در این جا می خواهیم استفاده کنیم میایم در ابتدا پکیج مورد نظر و تمام dependency هاش رو دانلود میکنیم و سپس اون ها رو به لیست فایل های موجود در iso اوبونتو اضافه میکنیم ,مزیتی که این روش دارد قابلیت انتخاب در نصب شدن انواع بسته ها هستش و دیگر بسته ها همگی به صورت یک جا نصب نمی شوند . مثلا یک ایمیج iso رو در نظر بگیرین که توش انواع وب سرور های apache و enginx و sql سرور های mysql, postgresql و … وجود دارد, با این روش میتونیم فقط بسته هایی که میخایم مثلا enginx به همراه mysql رو نصب کنیم و دیگر apache رو نصب نکنیم.
برای شروع احتیاج به دانلود یک نسخه از اوبونتو سرور رو داریم که در این جا من از نسخه ubuntu server 14.04 استفاده می کنم و همچنین دستور mkisofs رو هم باید نصب کنیم که با یکی از دو دستور زیر به راحتی نصب میشود:

apt-get install genisoimage
apt-get install mkisofs

در طی اموزش از دو محل برای مونت و ساخت iso جدید استفاده می کنیم :
محل اول mnt/test/ که مکانی هست که ایمیج جدید اوبونتو در اون ساخته می شود
محل دوم mnt/test2/ که ایزوی اصلی اوبونتو رو در اون مونت میکنیم

برای شروع کار ابتدا iso اوبونتو اصلی رو که دانلود کردین mount می کنیم :

mount -o loop ~/Desktop/ubuntu-14.04.2-server-amd64.iso /mnt/test2/mount: block device /home/ali/Desktop/ubuntu-14.04.2-server-amd64.iso is write-protected, mounting read-only

بعد از مونت کردن تمام محتوای اون رو کپی میکنیم به محلی که می خواهیم iso مون رو بسازیم که در این جا mnt/test/ هستش. با دستور زیر کل محتوای فایل iso رو به ادرس mnt/test/new/ کپی میکنیم(دایرکتوری new رو خودش اوتومات می سازد)

cp -rT /mnt/test2/ /mnt/test/new/

از این جا به بعد دیگه احتیاجی به مونت بودن iso اصلی اوبونتو نداریم اگر خواستین میتونین با دستور زیر unmountش کنین :

umount /mnt/test2

با دستور زیر می تونین ادرس url هایی که بستتون از اون جا دانلود و نصب می شود رو به همراه تمام dependency ها بدست بیارید و سپس با کمک url ها بسته ها رو دانلود کنید و به iso جدید انقال بدین.

نکته : بهترین کار اجرا کردن این دستور بر روی اوبونتویی است که با استفاده از iso که می خواهید رمستر کنید نصب شده باشد که بعد این دستور رو توش اجرا کنین.

apt-get install PACKAG-ENAME -y –print-uris | grep http| cut -d ” ” -f 1|tr -d \’

به جای PACKAG-ENAME نام پکیج مد نظرتون رو بزارین مثلا برای asterisk دستور به همراه خروجیش به شکل زیر می شود

apt-get install asterisk -y --print-uris | grep http| cut -d " " -f 1|tr -d \'

http://archive.ubuntu.com/ubuntu/pool/universe/f/freeradius-client/libfreeradius-client2_1.1.6-7_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/main/l/lua5.1/liblua5.1-0_5.1.5-5ubuntu0.1_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/main/f/freetds/libsybdb5_0.91-5_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/main/f/freetds/freetds-common_0.91-5_all.deb

http://archive.ubuntu.com/ubuntu/pool/universe/libi/libiksemel/libiksemel3_1.2-4.2_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk/asterisk-config_11.7.0~dfsg-1ubuntu1_all.deb

http://archive.ubuntu.com/ubuntu/pool/universe/p/pjproject/libpjlib-util2_2.1.0.0.ast20130823-1_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/p/pjproject/libpj2_2.1.0.0.ast20130823-1_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/p/pjproject/libpjnath2_2.1.0.0.ast20130823-1_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/s/sqlite/libsqlite0_2.8.17-10ubuntu2_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/main/p/postgresql-9.3/libpq5_9.3.9-0ubuntu0.14.04_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/libr/libresample/libresample1_0.1.3-4_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk-core-sounds/asterisk-core-sounds-en_1.4.22-1_all.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk/asterisk-modules_11.7.0~dfsg-1ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk-core-sounds/asterisk-core-sounds-en-gsm_1.4.22-1_all.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk-moh-opsound/asterisk-moh-opsound-gsm_2.03-1_all.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk/asterisk_11.7.0~dfsg-1ubuntu1_amd64.deb

http://archive.ubuntu.com/ubuntu/pool/universe/a/asterisk/asterisk-voicemail_11.7.0~dfsg-1ubuntu1_amd64.deb

بعد از دانلود بسته ها نوبت به انتقالشون می رسد.

انتقال پکیج ها و ساخت فایل های ایندکس

با دستورهای زیر ابتدا دایرکتوری های لازم رو بسازین

mkdir -p /mnt/test/new/dists/stable/extras/binary-amd64
mkdir -p /mnt/test/new/pool/extras/

سپس بسته های دانلود شده رو اتقال دهید:

cp ~/Desktop/pack14.04-64bit/*.deb /mnt/test/new/pool/extras/

بعد از کپی کردن باید فایل های index رو بسازیم.برای این کار ابتدا وارد دایرکتوری new بشید و سپس دستورات رو اجرا کنین. 

cd /mnt/test/new
apt-ftparchive packages ./pool/extras/ > ./dists/stable/extras/binary-amd64/Packages
gzip -c ./dists/stable/extras/binary-amd64/Packages | tee ./dists/stable/extras/binary-amd64/Packages.gz > /dev/null

ساخت فایل iso

کار انتقال و ساخت فایل های ایندکس تموم شد و نوبت به ساخت iso می رسد :

mkisofs -r -V "Custom Ubuntu Install CD" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../new.iso ./

I: -input-charset not specified, using utf-8 (detected in locale settings)

Using MULTIPATH_MODULES_3_16_0_2000.;1 for ./pool/main/l/linux-lts-utopic/multipath-modules-3.16.0-25-generic-di_3.16.0-25.33~14.04.2_amd64.udeb (multipath-modules-3.16.0-26-generic-di_3.16.0-26.35~14.04.1_amd64.udeb)

Using MULTIPATH_MODULES_3_16_0_2001.;1 for ./pool/main/l/linux-lts-utopic/multipath-modules-3.16.0-26-generic-di_3.16.0-26.35~14.04.1_amd64.udeb (multipath-modules-3.16.0-28-generic-di_3.16.0-28.38~14.04.1_amd64.udeb)

Using LINUX_CLOUD_TOOLS_3_13_0_45000.;1 for ./pool/main/l/linux/linux-cloud-tools-3.13.0-45-generic_3.13.0-45.74_amd64.deb (linux-cloud-tools-3.13.0-45_3.13.0-45.74_amd64.deb)

Using MULTIPATH_MODULES_3_16_0_2002.;1 for ./pool/main/l/linux-lts-utopic/multipath-modules-3.16.0-28-generic-di_3.16.0-28.38~14.04.1_amd64.udeb (multipath-modules-3.16.0-29-generic-di_3.16.0-29.39~14.04.1_amd64.udeb)

Using MULTIPATH_MODULES_3_13_0_2000.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-24-generic-di_3.13.0-24.47_amd64.udeb (multipath-modules-3.13.0-27-generic-di_3.13.0-27.50_amd64.udeb)

Using MULTIPATH_MODULES_3_13_0_3001.U;1 for ./pool/main/l/linux/multipath-modules-3.13.0-32-generic-di_3.13.0-32.57_amd64.udeb (multipath-modules-3.13.0-33-generic-di_3.13.0-33.58_amd64.udeb)

Using MULTIPATH_MODULES_3_13_0_2001.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-27-generic-di_3.13.0-27.50_amd64.udeb (multipath-modules-3.13.0-29-generic-di_3.13.0-29.53_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_3000.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-30-generic-di_3.13.0-30.55_amd64.udeb (multipath-modules-3.13.0-32-generic-di_3.13.0-32.57_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_3002.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-33-generic-di_3.13.0-33.58_amd64.udeb (multipath-modules-3.13.0-34-generic-di_3.13.0-34.60_amd64.udeb)

Using MULTIPATH_MODULES_3_13_0_3006.U;1 for ./pool/main/l/linux/multipath-modules-3.13.0-37-generic-di_3.13.0-37.64_amd64.udeb (multipath-modules-3.13.0-39-generic-di_3.13.0-39.66_amd64.udeb)

Using MULTIPATH_MODULES_3_13_0_3003.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-34-generic-di_3.13.0-34.60_amd64.udeb (multipath-modules-3.13.0-35-generic-di_3.13.0-35.62_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_3004.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-35-generic-di_3.13.0-35.62_amd64.udeb (multipath-modules-3.13.0-36-generic-di_3.13.0-36.63_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_3005.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-36-generic-di_3.13.0-36.63_amd64.udeb (multipath-modules-3.13.0-37-generic-di_3.13.0-37.64_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_4000.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-40-generic-di_3.13.0-40.69_amd64.udeb (multipath-modules-3.13.0-41-generic-di_3.13.0-41.70_amd64.udeb)

۴٫۷۸% done, estimate finish Thu Nov 5 23:37:41 2015

Using MULTIPATH_MODULES_3_13_0_4001.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-41-generic-di_3.13.0-41.70_amd64.udeb (multipath-modules-3.13.0-43-generic-di_3.13.0-43.72_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_4002.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-43-generic-di_3.13.0-43.72_amd64.udeb (multipath-modules-3.13.0-44-generic-di_3.13.0-44.73_amd64.udeb)
Using MULTIPATH_MODULES_3_13_0_4003.U;1 for  ./pool/main/l/linux/multipath-modules-3.13.0-44-generic-di_3.13.0-44.73_amd64.udeb (multipath-modules-3.13.0-45-generic-di_3.13.0-45.74_amd64.udeb)
Size of boot image is 4 sectors -> No emulation
  ۱٫۵۹% done, estimate finish Thu Nov  5 23:37:41 2015
  ۳٫۱۸% done, estimate finish Thu Nov  5 23:37:41 2015
  ۶٫۳۷% done, estimate finish Thu Nov  5 23:37:41 2015
  ۷٫۹۶% done, estimate finish Thu Nov  5 23:37:41 2015
  ۹٫۵۶% done, estimate finish Thu Nov  5 23:37:41 2015
 ۱۱٫۱۵% done, estimate finish Thu Nov  5 23:37:41 2015

۳۹٫۸۰% done, estimate finish Thu Nov 5 23:37:41 2015

 ۱۲٫۷۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۱۴٫۳۳% done, estimate finish Thu Nov  5 23:37:41 2015
 ۱۵٫۹۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۱۷٫۵۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۱۹٫۱۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۰٫۷۰% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۲٫۲۹% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۳٫۸۸% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۵٫۴۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۷٫۰۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۲۸٫۶۶% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۰٫۲۵% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۱٫۸۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۳٫۴۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۵٫۰۳% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۶٫۶۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۳۸٫۲۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۴۱٫۳۹% done, estimate finish Thu Nov  5 23:37:41 2015

۷۱٫۶۴% done, estimate finish Thu Nov 5 23:37:41 2015

 ۴۲٫۹۹% done, estimate finish Thu Nov  5 23:37:41 2015
 ۴۴٫۵۸% done, estimate finish Thu Nov  5 23:37:41 2015
 ۴۶٫۱۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۴۷٫۷۶% done, estimate finish Thu Nov  5 23:37:41 2015
 ۴۹٫۳۵% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۰٫۹۵% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۲٫۵۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۴٫۱۳% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۵٫۷۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۷٫۳۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۵۸٫۹۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۰٫۵۰% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۲٫۰۹% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۳٫۶۸% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۵٫۲۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۶٫۸۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۶۸٫۴۶% done, estimate finish Thu Nov  5 23:37:41 2015
 ۷۰٫۰۵% done, estimate finish Thu Nov  5 23:37:41 2015
 ۷۳٫۲۳% done, estimate finish Thu Nov  5 23:37:41 2015

۳۱۴۰۷۵ extents written (613 MB)

 ۷۴٫۸۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۷۶٫۴۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۷۸٫۰۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۷۹٫۶۰% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۱٫۱۹% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۲٫۷۹% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۴٫۳۸% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۵٫۹۷% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۷٫۵۶% done, estimate finish Thu Nov  5 23:37:41 2015
 ۸۹٫۱۵% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۰٫۷۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۲٫۳۴% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۳٫۹۳% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۵٫۵۲% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۷٫۱۱% done, estimate finish Thu Nov  5 23:37:41 2015
 ۹۸٫۷۰% done, estimate finish Thu Nov  5 23:37:41 2015
Total translation table size: 2048
Total rockridge attributes bytes: 406838
Total directory bytes: 2000896
Path table size(bytes): 16338

Max brk space used 3ae000

فایل ایزو در ادرس mnt/test/new.iso/ ایجاد شده

تست iso جدید و نصب انتخوابی پکیج ها

برای تست iso من اون رو بر روی vmware player نصب میکنم . تمام مراحل نصب رو به صورت عادی پیش برید تا به مرحله ی زیر (software selection) برسید که در عکس زیر دیده می شود . وقتی به این مرحله رسیدین بر روی گذینه Manual package selection برید و با زدن دکمه space انتخوابش کنید و سپس با دکمه tab بر روی continue برید و دکمه enter رو بزنین تا وارد صفحه aptitude بشید. اموزش aptitude خارج از بحث این جا هستش و فقط نصب پکیجی که فایل هاش رو به iso اصلی اضافه کردیم رو می گیم.

remaster1

 

وقتی وارد محیط aptitude شدید بر روی not installed package بزنین تا زیر شاخه هاش دیده شود . از این جا می تونین پکیجتون رو پیدا کنین ولی کار سختی هستش برای همین سیرچ میکنیم. برای سیرچ کردن دکمه / رو بزنین و در کادر باز شده اسم پکیج مد نظرتون رو (مثلا در اینجا asterisk) بنویسید و بعد بر روی ok بزنین.

2

بعد از این که پکیجتون رو پیدا کردین روش برین و برای نصب شدنش اول دکمه + رو بزنین تا به رنگ سبز در بیاد, اگر از نصبش صرف نظر کردین دکمه – رو بزنین تا نصبش لغو شود. توجه داشته بشید که تمام dependency هاشو رو هم خودش به رنگ سبز در میاره تا نصب شوند.

remaster ubuntu

 

سپس دکمه g رو بزنین تا همه پکیج هایی که میخواهند نصب شوند رو نشون بدهد

4

دوباره دکمه g رو بزنین تا عمل نصب شروع شود که در این همگام پکیج ها به رنگ نارنجی در میاد.

remaster ubuntu

 

remaster ubuntu

مراحل اخر نصب همیشه چند تا ارور میده که مشکلی رو برای من هیچ وقت ایجاد نکردن. بعد از اتمام نصب دکمه enter رو بزنین تا به aptitude برگردین و برای خروج از aptitude دکمه q رو بزنین یا با دکمه F10 وارد منو بشین و از اون جا خارج بشید.

 

دسته: آموزش

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.