محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

معرفی ساختار LILO : بوت لودر ( Boot Loader ) قدیمی لینوکس

خوب قبلا بصورت مفصل در خصوص انواع Boot Loader در سیستم عامل لینوکس صحبت کرده ایم و حتی کمی در خصوص ساختار GRUB هم توضیح داده ایم ، اما همانطور که شما هم می دانید یک Boot Loader به نام LILO هم وجود دارد که امروزه به ندرت استفاده می شود و تقریبا می توانیم بگوییم در اکثر توزیع های معتبر لینوکس از Boot Loader دیگر وجود ندارد اما با توجه به اینکه شما باید با ساختار آن برای امتحان بین المللی LPIC آشنایی داشته باشید امروز در خصوص ساختار LILO توضیحاتی ارائه می کنیم ، اگر در سیستم عامل لینوکس شما lilo وجود داشته باشد قطعا باید در مسیر //etc و در فایلی به نام lilo.conf وجود داشته باشد ، قطعا باید بدانید که اولین جایی که دستورات لینوکس از آن خوانده می شود مسیر //sbin است و به همین شکل دستورات lilo نیز از مسیر //sbin//lilo اجرا و محتویات فایل مورد نظر را باز می کنند تا اطلاعات مورد نظرمان را در MBR سیستم کپی کنند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

دقت کنید که قبل از انجام هرگونه تغییر بر روی فایل های Boot Loader ممکن است باعث تخریب شدن ساختار Boot سیستم عامل شما شوند بنابراین همیشه قبل از اعمال تغییرات از روی فایل مورد نظر یک کپی در جای دیگر تهیه کنید تا در صورت بروز مشکل بتوانید آن را با CD ها یا Flash های Bootable درست کنید و مشکل را حل کنید. حالا به سراغ کارمان می رویم ، دستور lilo که از دایرکتوری //sbin//lilo اجرا می شود وظیفه اعمال تغییرات بر روی فایل lilo.conf را برعهده دارد تا تشخیص بدهد که کدام سیستم عامل یا بهتر بگوییم کدام Kernel سیستم عامل باید در حافظه Load شود. ساختاری که در زیر مشاهده می کنید قالب کلی یک فایل lilo.conf است که بصورت dual boot برای سیستم عامل لینوکس نسخه RHEL و سیستم عامل DOS طراحی شده است ، هر چند بصورت کلی lilo در خصوص dual boot شدن با سیستم عامل های غیر لینوکسی چندان تبهری ندارد اما در نسخه های جدیدتر آن این مورد گنجانده شده است. دقت کنید که ساختار lilo.conf بسیار بسیار ساده تر و فاقد پیچیدگی های موجود در GRUB است :

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
lba32
default=linux

image=/boot/vmlinuz-2.4.0-0.43.6
	label=linux
	initrd=/boot/initrd-2.4.0-0.43.6.img
	read-only
	root=/dev/hda5

other=/dev/hda1
	label=dos

خوب موارد زیر به ترتیب خطوطی هستند که در نمونه فایل lilo.conf ای که در بالا مشاهده می کنید :

  1. boot=//dev//hda : این خط به LILO می گوید که خودش را بر روی اولین هارد دیسک IDE ای که روی سیستم وصل شده است نصب کنید ، طبیعتا اگر هارد دیسک شما SATA باشد قسمت hda به sda تغییر می کند و اگر دو عدد هارد دیسک IDE داشته باشید اولین مورد به شکل hda و دومین مورد به شکل hdb دیده می شود ، این ساختار نامگذاری هارد دیسک ها در لینوکس است.
  2. map=//boot//map : این قسمت مسیر map file سیستم را مشخص می کند ، در حالت عادی شما هیچوقت این قسمت را تغییر نمی دهید . اگر بخواهیم بصورت خلاصه map file در لینوکس را توضیح بدهیم اینگونه می شود که مجموعه ای از لینک ها به dll ها و بلاکهای حافظه که در هنگام boot مورد نیاز هستند. البته این تعریف من درآوردی و کاملا سریع است ، به قول یکی از geek های لینوکس map file یک چیزی هست که وجود داره و کسی هم نمیدونه دقیقا چیکار می کنه ولی وجود داره ، مثلا لاله گوش !!! وجود داره تو بدن اما تو نمیدونی دقیقا کاربردش چی هست D:
  3. install=//boot/boot.b : این قسمت به LILO می گوید که فایل مورد نظر که boot.b هست را در اولین boot sector هارد دیسک مورد نظر نصب کند. در حالت عادی این قسمت را نیز شما نباید دستکاری کنید. اگر این خط از فایل lilo.conf وجود نداشته باشد ، بصورت پیشفرض LILO فایل مسیر //boot//boot.b را به عنوان اولین فایلی که باید استفاده شود در نظر خواهد گرفت.
  4. prompt : همانطور که از نامش هم پیداست شما می توانید با استفاده از محتویات این خط به LILO بگویید که در هنگام boot یک پیغام دلخواه به شما نمایش بدهد ، ترجیحا هیچوقت این خط را حذف نکنید ، البته اگر هم حذف کنید شما می توانید به پیغام های LILO با نگه داشتن کلید shift در هنگام boot سیستم عامل مواجه شوید.
  5. timeout=50 : این خط به LILO می گوید که چه مدت زمانی در زمان نمایش دادن گزینه های boot صبر کند و اگر انتخابی انجام نشد ، انتخاب پیشفرض را ادامه بدهد ، طبیعتا default یا پیشفرض همان خط boot ای است که در ابتدای فایل نوشته شده است ، شما می توانید به دلخواه این زمان را تغییر بدهید که پیشفرض آن 50 بر حسب ثانیه است.
  6. message=//boot//message : اینجا همان صفحه نمایش LILO هنگام بوت شدن است که سیستم عامل های مختلف را نشان می دهد ، شما می توانید با گزینه message نام سیستم عامل ها در هنگام boot را تغییر بدهید ، برای مثال شما می توانید سیستم عامل itpro و سیستم عامل unity که هر دو Debian هستند را در کنار هم داشته باشید و به این اسامی تغییر نام بدهید.
  7. lba32 : مخفف کلمه های large block addressing است و همانطور که از نامش پیداست هندسه و ساختار قالب بندی دیسک را برای LILO تشریح می کند ، برخی موارد ممکن است شما به جای lba32 بصورت linear مشاهده کنید که به معنی linear یا خطی است ، شما نباید این مورد را عوض کنید مگر اینکه واقعا به کاری که می کنید آگاه باشید. اگر ندانسته تغییری بر روی این قسمت انجام بدهید سیستم عامل شما دیگر boot نخواهد شد.
  8. default=linux : اگر ادامه خطوط را نگاه کنید به گزینه label نگاه کنید که نام سیستم عامل هایی که lilo می تواند boot کند را نمایش می دهد کاربرد این خط نیز مشخص می شود ، این خط به شما سیستم عامل پیشفرضی که lilo از طریق آن boot می شود را نمایش می دهد اسم linux ای که مشاهده می کنید در واقع به قسمت label ای اشاره می کند که در ادامه خطوط می بینید.
  9. image=//boot/vmlinux-2.4.0-0.43.6 : این قسمت مشخص کننده نسخه kernel ای است که باید توسط lilo در حافظه load شود.
  10. label=linux : در صفحه نمایش LILO اسامی سیستم عامل ها با پارامتر label تعریف می شوند ، در اینجا اسم همان چیزی است که در خط پیشفرض سیستم عامل ها تعریف شده است
  11. initrd=//boot/initrd-2.4.0-0.43.6.img : به فایل ram disk ای اشاره می کند که وظیفه اجرا کردن ابزارهای مورد نیاز فارق از kernel سیستم عامل که برای boot کردن Kernel اصلی مورد نیاز هستند ، اشاره می کند. اگر این ابزارها وجود نداشته باشند kernel اجرا نخواهد شد. در واقع ram disk یک سری پیشنیازهای ماشین اعم از درایورها ، کارت های SCSI ، هار دیسک و دستگاه هایی که برای Load کردن Kernel مورد نیاز هستند را برای سیستم Load می کند. شما هیچوقت نباید initial ram disk کامپیوترها را با هم جابجا کنید.
  12. read-only : این قسمت می گوید که root partition شما در حالت boot غیر قابل دستکاری و فقط قابل خواندن باشد
  13. root=//dev//hda5 : این قسمت مشخص کننده مسیر پارتیشنی است که kernel ما در آن قرار دارد و root partision ما است
  14. other=//dev//hda1 : مشخص کننده پارتیشنی است که برای مثال سیستم عامل دیگری در آن قرار دارد.

این یک نمونه از فایل lilo.conf است که بایستی برای آزمون بین المللی خوب بشناسید ، اما بارها اعلام کرده ایم که lilo امروزه بسیار به ندرت استفاده می شود مگر در سیستم عامل های stand alone که صرفا کاربردی تک منظوره دارند ، به هر حال امیدوارم مورد توجه شما قرار گرفته باشد. ITPRO باشید

نویسنده : محمد نصیری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات