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 · آخر تعديل: بواسطة 127.0.0.1
