linux:netboot
اختلافات
عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.
linux:netboot [2010/02/12 23:19] – تم إنشاء alsadi | linux:netboot [2015/04/23 03:21] (حالي) – تحرير خارجي 127.0.0.1 | ||
---|---|---|---|
سطر 1: | سطر 1: | ||
+ | {{tag>oj شبكة خوادم تثبيت deskless netboot}} | ||
+ | ====== الإقلاع والتثبيت عبر الشبكة ====== | ||
+ | * مترجمة بتصرف عن مقالة [[http:// | ||
+ | * غير مكتملة | ||
+ | ===== تمهيد ===== | ||
+ | الكثير من بطاقات الإيثرنت تدعم الإقلاع عبر الشبكة netboot ويستفاد من ذلك في عمل شبكة مركزية لا تملك أطرافها أقراصا disk-less clients. كذلك يمكن الاستفادة من هذه الخاصية في تثبيت لينكس على عدد كبير من الأجهزة متشابهة الإعدادات. | ||
+ | |||
+ | ===== المتطلبات ===== | ||
+ | نحتاج تخصيص خادم في الشبكة يحتوي على tftp (خدمة لنقل الملفات عبر الشبكة المحلية عبر منفذ UDP رقم 69 وهي بروتوكول **مختلف** تماما عن FTP الذي يعمل على منفذ TCP رقم 21). مهمة tftp هي توصيل الملفات اللازمة للإقلاع. | ||
+ | |||
+ | يتم الإقلاع عبر gPXE وهي تنفيذ لمعايير PXE | ||
+ | |||
+ | محمل الإقلاع المستخدم في هذه الوثيقة هو syslinux | ||
+ | |||
+ | ===== تثبيت TFTP على الخادم ===== | ||
+ | استخدم مدير الحزم لتثبيت tftp-server | ||
+ | <code bash> | ||
+ | yum install tftp-server | ||
+ | </ | ||
+ | في فيدورا وبالتالي أعجوبة ذلك يتضمن تثبيت xinetd | ||
+ | الإعدادات التلقائية ل tftp أنه يكون غير مفعل لذا قم بتحرير ملف / | ||
+ | |||
+ | < | ||
+ | disable = no | ||
+ | </ | ||
+ | وهذا لا يكفي حيث أن xinetd لا يكون مفعل تلقائيا (يمكنك تفعيله من نظام ثم إدارة ثم حدمات) أو عبر الأوامر | ||
+ | <code bash> | ||
+ | chkconfig --levels 2345 xinetd on | ||
+ | service xinetd start | ||
+ | </ | ||
+ | |||
+ | وسنفترض في بقية الوثيقة أن مسار ملفات TFTP هو المجلد /tftpboot/ | ||
+ | |||
+ | ===== وضع ملفات SysLinux على TFTP ===== | ||
+ | يمكنك القيام بذلك عبر system-config-netboot | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== توزيعة حية عبر الشبكة ==== | ||
+ | اذهب لمجلد /tftpboot/ ثم قم بوضع إعدادات syslinux ((وهو مشروع كبير منه isolinux المستخدم في إقلاع النسة الحية ومنه syslinux العادية التي تستخدم في إقلاع من أقراص USB ومنه pxelinux التي سنستخدمها)) | ||
+ | عمل ذلك أسهل ما يكون (طبعا ضع المكان الحقيقي لملف ISO الخاص بتوزيعة أعجوبة) | ||
+ | <code bash> | ||
+ | cd / | ||
+ | livecd-iso-to-pxeboot / | ||
+ | </ | ||
+ | |||
+ | هذا الأمر يعمل مجلد tftpboot داخل المجلد الحالي و محتوياته | ||
+ | * pxelinux.0 - محمل الإقلاع pxelinux | ||
+ | * vmlinuz0 - النواة | ||
+ | * initrd0.img - صورة لقرص الرام - في حالتنا الآن هي القرص الحي كاملا | ||
+ | * pxelinux.cfg - مجلد الإعدادات ويحتوي ويحتوي ملف إعدادات هكذا | ||
+ | * default - الإعدادات الافتراضية | ||
+ | |||
+ | تلك الإعدادات تبدو هكذا | ||
+ | < | ||
+ | DEFAULT oj3deskless | ||
+ | TIMEOUT 20 | ||
+ | PROMPT 0 | ||
+ | LABEL oj3deskless | ||
+ | KERNEL vmlinuz0 | ||
+ | APPEND rootflags=loop initrd=initrd0.img root=/ | ||
+ | ONERROR LOCALBOOT 0 | ||
+ | </ | ||
+ | |||
+ | ==== التثبيت عبر الشبكة ==== | ||
+ | داخل قرص أعجوبة وسيط التثبت ستجد مجلد اسمه images بداخله مجلد pxeboot فيه ملفات | ||
+ | * vmlinuz - النواة (او vmlinuz-PAE إن كان عندك أكثر من 4 غيغا من ذاكرة رام تريد الاستفادة منها) | ||
+ | * initrd.img - قرص الرام الاستهلالي (بعكس القرص الحي حجم هذا حوالي 20 ميغا فقط) كذلك ستجد ملف initrd-PAE.img المقابل للنواة vmlinuz-PAE | ||
+ | |||
+ | ما ينقصك حتى تقلع هو نسخ محمل الإقلاع pxelinux.0 من syslinux | ||
+ | < | ||
+ | yum install syslinux | ||
+ | cp / | ||
+ | </ | ||
+ | |||
+ | كما يلزمنا عمل الإعدادات pxelinux وذلك داخل مجلد pxelinux.cfg اعمل ملف اسمه default كما يلي: | ||
+ | |||
+ | < | ||
+ | DEFAULT oj3inst | ||
+ | TIMEOUT 20 | ||
+ | PROMPT 0 | ||
+ | LABEL oj3inst | ||
+ | KERNEL vmlinuz | ||
+ | APPEND initrd=initrd.img ramdisk_size=34561 method=http:// | ||
+ | ONERROR LOCALBOOT 0 | ||
+ | </ | ||
+ | |||
+ | حيث webserver هو خادم الويب و netboot هو العنوان الذي فيه نسخة محتويات قرص | ||
+ | التثبيت (اللازمة لبرنامج التثبيت أناكوندا بما فيها حزم rpm) يعني على خادم الويب اكتب | ||
+ | <code bash> | ||
+ | mkdir / | ||
+ | mount -o loop ojuba-X-i386-DVD.iso / | ||
+ | mkdir / | ||
+ | cp -ra / | ||
+ | umount / | ||
+ | rmdir / | ||
+ | </ | ||
+ | |||
+ | ===== إعداد خادم DHCP كي يحمل pxelinux ===== | ||
+ | عليك إضافة مدخلات تدل الأجهزة على الخادم وعلى الملف محمل الإقلاع. يعني في الجزء الخاص بالأجهزة المخدومة أضف | ||
+ | < | ||
+ | filename "/ | ||
+ | server-name " | ||
+ | next-server ip_address; | ||
+ | </ | ||
+ | |||
+ | هذا كل ما تحتاجه للبدء بالعمل يمكنك تجربة ما صنعنا دون إكمال بقية المقال. | ||
+ | |||
+ | سيتم نقل النواة وقرص الرام عبر الشبكة إلى الرام في الجهاز المخدوم ثم يقلع النظام. | ||
+ | في حالة النظام الحي سيكون قرص الرام هو القرص الحي كاملا مما سيأخذ وقتا طويلا خصوصا إن أخذنا تأخير بروتوكول tftp. | ||
+ | |||
+ | ملاحظة: | ||
+ | |||
+ | ===== وضع ملفات gPXE على TFTP ===== | ||
+ | محمل إقلاع gPXE هو ملف واحد ذي امتداد .pxe يعمل على تحميل firmware في بطاقة الإيثرنت مما يدعلها تدعم بروتوكلات مثل HTTP و HTTPS لذا يتم جلبه عبر tftp ثم جلب pxelinux | ||
+ | عبر HTTP لأنه أسرع. | ||
+ | |||
+ | يفترض أننا سنحتاج ملف واحد امتداده .pxe لكن هناك بعض الحالات لا تعمل فيها التعريفات العامة فنضطر لاستخدام gPXE UNDI driver | ||
+ | |||
+ | للحصول على الملفات | ||
+ | * من موقع [[http:// | ||
+ | * من القائمة اختر "PXE bootstrap loader image [Unload PXE stack] (.pxe)" | ||
+ | * اختر كل التعريفات all drivers | ||
+ | * قم بتخصيصه لتفعيل بروتوكول https | ||
+ | * اضغط على get image واحفظ الملف في / | ||
+ | * غير نوع التعريفات من all drivers إلى undionly | ||
+ | * اضغط على get image واحفظ الملف في / | ||
+ | |||
+ | ===== إعداد خادم DHCP كي يحمل gPXE ===== | ||
+ | قم بوضع الملفات على خادم apache أي في / | ||
+ | |||
+ | قم بتعديل إعدادات DCHP كي تقوم بتحميل pxelinux عبر http إن كان النظام يدعم | ||
+ | محمل إقلاع gPXE فإن لم يكن يدعمه فإنه يحمل gpxe.pxe الذي يضيف دعم http ثم يعيد من جديد. | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | يعني في الجزء الخاص بالأجهزة المخدومة أضف | ||
+ | < | ||
+ | next-server ip_address; | ||
+ | if exists user-class and option user-class = " | ||
+ | filename " | ||
+ | } else { | ||
+ | filename "/ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | قد تسأل ما فائدة الملف الآخر | ||
+ | قد يلزمك استخدامه مكان gpxe.pxe إن لم تكن الأجهزة عندك مدعومة من قبل الأول. | ||
+ | |||
+ | ولأن أغلب المختبرات تكون معدة من أجهزة متشابهة فإنه يلزمك واحد فقط من الملفين. | ||
+ | |||
+ | لكن إن وجدت نفسك في موقف بحاجة لاستعمالهما معا يمكنك عمل: | ||
+ | < | ||
+ | if exists user-class and option user-class = " | ||
+ | filename " | ||
+ | } else { | ||
+ | if binary-to-ascii(16, | ||
+ | | ||
+ | or binary-to-ascii(16, | ||
+ | | ||
+ | filename "/ | ||
+ | } else { | ||
+ | filename "/ | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | حيث mac_address_1 و mac_address_2 هما عنواني MAC للجهازين اللذان لم يعملان مع الملف العادي ويحتاجان للملف الثانوي undi.pxe | ||
+ | |||
+ | |||
+ | ===== مراجع ووثائق ذات صلة ===== | ||
+ | * http:// | ||
+ | * [[: | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * https:// |
linux/netboot.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1