الفرق بين المراجعتين ل"Debian/prepare files for tftp netbooting"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(2.1 تمام التعديل على المحتوى)
ط
 
سطر 1: سطر 1:
 
{{DISPLAYTITLE: تجهيز الملفات لإقلاع مثبِّت ديبيان شبكيًا عبر بروتوكول TFTP}}
 
{{DISPLAYTITLE: تجهيز الملفات لإقلاع مثبِّت ديبيان شبكيًا عبر بروتوكول TFTP}}
 
 
إذا كان الحاسوب متصلًا بشبكة محلية LAN، فمن الممكن إقلاع المثبت عبر الشبكة من حاسوب آخر باستخدام بروتوكول TFTP، وفي هذه الحالة، أي عند إقلاع نظام التثبيت من حاسوب آخر، يجب أن تكون ملفات الإقلاع في أماكن محددة على ذلك الحاسوب، كما ينبغي أن يكون الحاسوب الذي سيثبت عليه النظام مهيأً لدعم الإقلاع من الحاسوب الآخر الذي يحتوي ملفات التثبيت.
 
إذا كان الحاسوب متصلًا بشبكة محلية LAN، فمن الممكن إقلاع المثبت عبر الشبكة من حاسوب آخر باستخدام بروتوكول TFTP، وفي هذه الحالة، أي عند إقلاع نظام التثبيت من حاسوب آخر، يجب أن تكون ملفات الإقلاع في أماكن محددة على ذلك الحاسوب، كما ينبغي أن يكون الحاسوب الذي سيثبت عليه النظام مهيأً لدعم الإقلاع من الحاسوب الآخر الذي يحتوي ملفات التثبيت.
  

المراجعة الحالية بتاريخ 06:08، 27 فبراير 2022

إذا كان الحاسوب متصلًا بشبكة محلية LAN، فمن الممكن إقلاع المثبت عبر الشبكة من حاسوب آخر باستخدام بروتوكول TFTP، وفي هذه الحالة، أي عند إقلاع نظام التثبيت من حاسوب آخر، يجب أن تكون ملفات الإقلاع في أماكن محددة على ذلك الحاسوب، كما ينبغي أن يكون الحاسوب الذي سيثبت عليه النظام مهيأً لدعم الإقلاع من الحاسوب الآخر الذي يحتوي ملفات التثبيت.

ويحتاج المستخدم هنا إلى إعداد خادم TFTP، وقد يحتاج إلى خادم DHCP أو خادم BOOTP، وهذا الأخير هو بروتوكول IP يخبر الحاسوب بعنوان IP الخاص به والمكان الذي يستطيع أن يحصل منه على نسخة الإقلاع boot image، أما خادم DHCP فهو صورة موسعة وأكثر مرونة من BOOTP، ويدعم التوافق الخلفي/العكسي backwards-compatibility كذلك، وقد لا يحتاج النظام إلا إلى خادم DHCP.

أما بروتوكول نقل الملفات البسيطة Trivial File Transfer Protocol (TFTP) فيُستخدم في توصيل نسخة ملف الإقلاع إلى الحاسوب العميل client، ويمكن -نظريًا- استخدام أي خادم على أي منصة ولديه هذه البروتوكولات، وتعطي الأوامر المذكورة في هذه الصفحة أمثلة من نظامي التشغيل SunOS 4.x، و SunOS 5.x -المسمى أيضًا Solaris-، وكذلك نظام جنو/لينكس.

يُنصح باستخدام tftpd-hpa في حالة خادم ديبيان جنو/لينكس، ذلك أن المبرمج الذي كتبه هو نفسه الذي كتب محمِّل إقلاع syslinux، وعلى ذلك فاحتمال حدوث مشاكل جراء استخدامه قليل، وهو بديل جيد لـ atftpd.

إعداد خادم DHCP

يمكن استخدام أحد خوادم DHCP الحرة مثل dhcpd، ويُنصح في حالة ديبيان جنو/لينكس بحزمة isc-dhcp-server. فيما يلي مثال لملف تهيئته -يُنظر في ملف ‎/etc/dhcp/dhcpd.conf-:

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

يوجد في المثال أعلاه servername واحد فقط يقوم بكل مهام خادم DHCP و TFTP وبوابة الشبكة network gateway، ويحتاج المستخدم هنا إلى تغيير خيارات اسم النطاق domain-name واسم الخادم وعنوان عتاد العميل client hardware، وينبغي أن يكون خيار filename نفس الملف الذي سيُجلب عبر TFTP. يعاد تشغيل خادم dhcpd بعد تمام التعديل على ملف التهيئة dhcpd، بواسطة الأمر ‎/etc/init.d/isc-dhcp-server restart

تفعيل إقلاع PXE في تهيئة DHCP

فيما يلي مثال آخر لملف dhcp.conf باستخدام أسلوب بيئة تنفيذ ما قبل الإقلاع Pre-boot Execution Environment أو PXE، الخاص ببروتوكول TFTP:

option domain-name "example.com";

default-lease-time 600;
max-lease-time 7200;

allow booting;
allow bootp;

# يجب تعديل الفقرة التالية لتوافق حالة كل مستخدم
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option broadcast-address 192.168.1.255;
# عنوان البوابة، والذي قد يكون مختلفًا
# (الوصول إلى الإنترنت مثلًا)
  option routers 192.168.1.1;
# توضيح dns الذي سيتعمله المستخدم
  option domain-name-servers 192.168.1.3;
}

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp عنوان عتاد عميل
  hardware ethernet  00:10:DC:27:6C:15;
  filename "pxelinux.0";
 }
}

يلاحظ أن اسم ملف العميل pxelinux.0 في إقلاع PXE هو محمِّل إقلاع وليس نسخة للنواة، كما سيأتي بيانه في فقرة "وضع نسخ TFTP في أماكنها" أدناه. إذا كان الحاسوب يستخدم UEFI للإقلاع فسيحتاج المستخدم إلى تحديد محمّل الإقلاع المناسب لحواسيب UEFI، على سبيل المثال:

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp عنوان عتاد عميل 
  hardware ethernet  00:10:DC:27:6C:15;
  filename "debian-installer/amd64/bootnetx64.efi";
 }
}

إعداد خادم BOOTP

يوجد خادمان BOOTP متاحان لنظام جنو/لينكس، أولهما هو CMU bootpd، أما الآخر فما هو إلا خادم DHCP وهو ISC dhcpd، وهذان الخادمان موجودان في ديبيان جنو/لينكس في حزمتي bootp و isc-dhcp-server على التوالي.

ولاستخدام CMU bootps، يجب أن يُلغى تعليق السطر المناسب في ‎/etcd/inet.conf أو يضاف إن لم يكن موجودًا، وعند استخدام ديبيان جنو/لينكس، يمكن فعل ذلك عن طريق تشغيل الأمر update-inetd --enable bootps ثم ‎/etc/init.d/inetd reload. أما في حالة إن لم يكن خادم BOOTP يعمل على ديبيان فينبغي أن يشبه السطر المطلوب ما يلي:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

والآن، يجب إنشاء ملف ‎/etc/bootptab، وستكون صيغته الغريبة مشابهة لملفات printcap و termcap وdisktap الخاصة بنظام BSD. يُرجع في هذا إلى صفحة دليل bootptab للمزيد من المعلومات، أما بالنسبة لـ CMU bootpd، فيجب أن يعرف المستخدم عنوان العتاد MAC address الخاص بالعميل، كما في المثال التالي: ‎ /etc/bootptab

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

يجب أن يغير المستخدم خيار ha على الأقل الذي يحدد عنوان العتاد للعميل، أما خيار bf فيحدد الملف الذي يجب أن يجلبه العميل عبر TFTP، كما سيأتي بيانه في فقرة وضع نسخ TFTP في أماكنها أدناه.

وعلى النقيض من ذلك، فإن إعداد BOOTP مع ISC dhcpd سهل للغاية بما أنه يعامل عملاء BOOTP كحالة خاصة نوعًا ما من عملاء DHCP، وتتطلب بعض المعماريات إعدادات معقدة من أجل إقلاع العملاء من خلال BOOTP، فإذا تطلب الحاسوب ذلك فيجب قراءة فقرة إعداد خادم DHCP أعلاه، وإلا فتكفي إضافة التوجيه allow bootp إلى كتلة التهيئة للشبكة الفرعية subnet التي تحتوي العميل في ملف ‎/etc/dhcp/dhcpd.con، وإعادة تشغيل dhcpd بواسطة الأمر ‎/etc/init.d/isc-dhcp-server restart.

تفعيل خادم TFTP

يجب التأكد من تفعيل tftpd أولًا من أجل تجهيز خادم TFTP، وهناك طريقتين لتشغيل الخدمة في حالة tftpd-hpa، إما ببدئها حسب الطلب بواسطة عفريت daemon للنظام اسمه inetd، أو إعدادها لتعمل كعفريت مستقل، ويمكن اختيار أي الطريقتين عند تثبيت الحزمة، كما يمكن التبديل بينهما بإعادة ضبط الحزمة.

يلاحظ أن خوادم TFTP كانت تستخدم المجلد ‎/tftpboot في نقل نُسخ التثبيت منه، غير أن حزم ديبيان جنو/لينكس قد تستخدم مجلدات أخرى لتتوافق مع معيار FHS، فمثلًا تستخدم tftpd-hpa المجلد ‎/srv/tftp، وعلى ذلك يمكن تعديل أمثلة الإعدادات في هذا القسم وفقًا لذلك.

يجب أن تسجل جميع بدائل in.tftpd المتاحة الطلبات إلى سجلات النظام افتراضيًا، وتدعم بعضها وسيط ‎-v لغرض الإسهاب، ويُنصح بالتحقق من رسائل السجلات تلك إذا حدثت مشاكل في الإقلاع إذ تكون نقطة جيدة لبداية تشخيص سبب الأخطاء.

وضع نُسخ TFTP في مكانها المناسب

تكون الخطوة التالية بعد تشغيل خادم TFTP هي وضع نسخة إقلاع TFTP التي يريدها المستخدم كما هو موضح في كيفية إيجاد ملفات التثبيت المختلفة لكل مرآة من صفحة ملفات النسخ الرسمية لتثبيت ديبيان جنو/لينكس، داخل مجلد نُسخ إقلاع tftpd، وقد يحتاج المستخدم إلى إنشاء رابط من ذلك الملف إلى الملف الذي ستستخدمه tftpd في إقلاع عميل ما، لكن اسم الملف يُحدده عميل TFTP، ولا توجد معايير قوية تضبط هذه التسمية.

أما في حالة إقلاع PXE فيكون كل شيء يحتاجه المستخدم معدًا وجاهزًا في أرشيف netboot/netboot.tar.gz، وما عليه سوى استخراج هذا الأرشيف إلى مجلد نُسخ إقلاع tftpd، مع التأكد من إعداد خادم dhcp ليمرر pxelinux.0 إلى tftpd كاسم الملف الذي يجب إقلاعه، أما بالنسبة للحواسيب التي فيها واجهات UEFI، فسيحتاج المستخدم إلى تمرير اسم نسخة EFI المناسب، مثل ‎/debian-installer/amd64/bootnetx64.efi.

انظر أيضًا

المصادر