اصولا برای نوشتن و ساختن یک توزیع لینوکس، شما نیاز به این دارید که یک اسکریپت یا نرم افزار مخصوص تهیه لایو دیسک رو استفاده کنید. اما این که پشت اون نرم افزار ها چی میگذره؟! این مهمه. خب این نرم افزارها معمولا اسکریپت هستند ( و اگر نباشن هم سورسشون موجوده) ، پس میشه با نگاه به کد، به راحتی پی برد که اون پشت چی میگذره. ولی برای این که این راه رو تست کنید، نگاهی به این مطلب من بندازید. بیاید اول ببینیم ساختار دیسک اوبونتو چیه و چطوره؟!
(CD ROOT)
|-------+casper
| |-------filesystem.${FORMAT}
| |-------filesystem.manifest
| |-------filesystem.manifest-desktop
| |-------vmlinuz
| |-------initrd.img
|
|-------+boot
| |--------+grub
| | |--------grub.cfg
| |
| |-------memtest86+
|
|--------md5sum.txt
توی دیسک اوبونتو، همه چیز به شکل بالا چیده شده! همه برنامه ها و کتابخانه ها (و به طور کلی کل سیستم عامل) داخل پوشه کسپر قرار دارند، و همچنین ملزومات بوت شدن سیستم عامل، توی boot . برای لایو بوت شدن هم از تکنولوژی AuFS استفاده میشه (بعدا در موردش مطلبی خواهم نوشت). اما اگر بخوایم ریز تر شیم، بازهم بهتره به توضیحاتی که سازنده های اوبونتو دادن توجه کنیم :
/casper/filesystem.${FORMAT}: This is the container of the linux filesystem we are going to copy from our harddisk. It is usually a compressed filesystem like squahsfs.
/casper/filesystem.manifest: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
/casper/filesystem.manifest-desktop: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
/casper/vmlinuz: The linux kernel. This is copied form the linux filesystem.
/casper/initrd.img: the initramfs that contain the customizations necessary for the live CD/DVD.
/boot/grub/grub.cfg: File containing boot options for the live CD/DVD.
/boot/memtest86+: Optional file used to test the RAM of the machine form the live CD/DVD.
/md5sum.txt: Optional file containing checksums for all the files in the CD.
پس اسکریپت هایی که برای «ریمسترینگ» استفاده میشن، این کارها رو میکنند و چنین برنچی رو برای ما میسازند. خب برای ساخت چنین چیزی باید چه کار کنیم؟ قبل تر در مورد ساخت توزیع مطلب نسبتا زیادی نوشتم، چه تو وبلاگ قبلی که روی بلاگفا بود و چه توی این وبلاگ. اما اگر واقعا میخواید کار مشابه اسکریپتی مثل ReLinux انجام بدید، به این لینک سر بزنید.
این روش روی چه توزیع هایی کار میده؟!
این هم سوال بسیار خوبیه، میشه گفت هر توزیعی که ساختار مشابه اوبونتو داشته باشه. حتی اگر شما بخواید توزیعی بر مبنای آرچ لینوکس ارائه بدید، میتونید ازش استفاده کنید، ولی احتمالا زحمت زیادی خواهد داشت براتون. اگر توزیع مبدا ساختار مشابه نداشته باشه، احتمالا نتونید چنین توزیعی ازش بیرون بکشید ولی اگر تونستید هم به احتمال بسیار قوی توزیع جدید ساختار تازه ای ارائه خواهد کرد. به زودی هم لینکی که دادم رو ترجمه میکنم 🙂
موفق باشید!