الفرق بين المراجعتين لصفحة: «Debian/prepare files for tftp netbooting»
أسامه-دمراني (نقاش | مساهمات) 1.0: إضافة عنوان الصفحة | 2.0 محتوى أولي للصفحة |
أسامه-دمراني (نقاش | مساهمات) 2.1 تمام التعديل على المحتوى |
||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE: تجهيز الملفات لإقلاع مثبِّت ديبيان شبكيًا عبر بروتوكول TFTP}} | {{DISPLAYTITLE: تجهيز الملفات لإقلاع مثبِّت ديبيان شبكيًا عبر بروتوكول TFTP}} | ||
إذا كان الحاسوب متصلًا بشبكة محلية 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-، وكذلك نظام جنو/لينكس.<blockquote>يُنصح باستخدام <code>tftpd-hpa</code> في حالة خادم ديبيان جنو/لينكس، ذلك أن المبرمج الذي كتبه هو نفسه الذي كتب محمِّل إقلاع <code>syslinux</code>، وعلى ذلك فاحتمال حدوث مشاكل جراء استخدامه قليل، وهو بديل جيد لـ <code>atftpd</code>.</blockquote> | |||
== إعداد خادم DHCP == | |||
يمكن استخدام أحد خوادم DHCP الحرة مثل <code>dhcpd</code>، ويُنصح في حالة ديبيان جنو/لينكس بحزمة <code>isc-dhcp-server</code>. فيما يلي مثال لملف تهيئته -يُنظر في ملف <code>/etc/dhcp/dhcpd.conf</code>-:<syntaxhighlight lang="bash"> | |||
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; | |||
} | |||
</syntaxhighlight>يوجد في المثال أعلاه <code>servername</code> واحد فقط يقوم بكل مهام خادم DHCP و TFTP وبوابة الشبكة network gateway، ويحتاج المستخدم هنا إلى تغيير خيارات اسم النطاق domain-name واسم الخادم وعنوان عتاد العميل client hardware، وينبغي أن يكون خيار <code>filename</code> نفس الملف الذي سيُجلب عبر TFTP. يعاد تشغيل خادم <code>dhcpd</code> بعد تمام التعديل على ملف التهيئة <code>dhcpd</code>، بواسطة الأمر <code>/etc/init.d/isc-dhcp-server restart</code> | |||
=== تفعيل إقلاع PXE في تهيئة DHCP === | |||
فيما يلي مثال آخر لملف <code>dhcp.conf</code> باستخدام أسلوب بيئة تنفيذ ما قبل الإقلاع Pre-boot Execution Environment أو PXE، الخاص ببروتوكول TFTP:<syntaxhighlight lang="bash"> | |||
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"; | |||
} | |||
} | |||
</syntaxhighlight>يلاحظ أن اسم ملف العميل <code>pxelinux.0</code> في إقلاع PXE هو محمِّل إقلاع وليس نسخة للنواة، كما سيأتي بيانه في فقرة "وضع نسخ TFTP في أماكنها" أدناه. | |||
إذا كان الحاسوب يستخدم UEFI للإقلاع فسيحتاج المستخدم إلى تحديد محمّل الإقلاع المناسب لحواسيب UEFI، على سبيل المثال:<syntaxhighlight> | |||
group { | |||
next-server 192.168.1.3; | |||
host tftpclient { | |||
# tftp عنوان عتاد عميل | |||
hardware ethernet 00:10:DC:27:6C:15; | |||
filename "debian-installer/amd64/bootnetx64.efi"; | |||
} | |||
} | |||
</syntaxhighlight> | |||
== إعداد خادم BOOTP == | |||
يوجد خادمان BOOTP متاحان لنظام جنو/لينكس، أولهما هو <code>CMU bootpd</code>، أما الآخر فما هو إلا خادم DHCP وهو <code>ISC dhcpd</code>، وهذان الخادمان موجودان في ديبيان جنو/لينكس في حزمتي <code>bootp</code> و <code>isc-dhcp-server</code> على التوالي. | |||
ولاستخدام <code>CMU bootps</code>، يجب أن يُلغى تعليق السطر المناسب في <code>/etcd/inet.conf</code> أو يضاف إن لم يكن موجودًا، وعند استخدام ديبيان جنو/لينكس، يمكن فعل ذلك عن طريق تشغيل الأمر <code>update-inetd --enable bootps</code> ثم <code>/etc/init.d/inetd reload</code>. أما في حالة إن لم يكن خادم BOOTP يعمل على ديبيان فينبغي أن يشبه السطر المطلوب ما يلي:<syntaxhighlight lang="bash"> | |||
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 | |||
</syntaxhighlight>والآن، يجب إنشاء ملف <code>/etc/bootptab</code>، وستكون صيغته الغريبة مشابهة لملفات <code>printcap</code> و <code>termcap</code> و<code>disktap</code> الخاصة بنظام BSD. يُرجع في هذا إلى صفحة دليل <code>bootptab</code> للمزيد من المعلومات، أما بالنسبة لـ <code>CMU bootpd</code>، فيجب أن يعرف المستخدم عنوان العتاد MAC address الخاص بالعميل، كما في المثال التالي: <code>/etc/bootptab</code><syntaxhighlight lang="bash"> | |||
client:\ | |||
hd=/tftpboot:\ | |||
bf=tftpboot.img:\ | |||
ip=192.168.1.90:\ | |||
sm=255.255.255.0:\ | |||
sa=192.168.1.1:\ | |||
ha=0123456789AB: | |||
</syntaxhighlight>يجب أن يغير المستخدم خيار <code>ha</code> على الأقل الذي يحدد عنوان العتاد للعميل، أما خيار <code>bf</code> فيحدد الملف الذي يجب أن يجلبه العميل عبر TFTP، كما سيأتي بيانه في فقرة وضع نسخ TFTP في أماكنها أدناه. | |||
وعلى النقيض من ذلك، فإن إعداد BOOTP مع <code>ISC dhcpd</code> سهل للغاية بما أنه يعامل عملاء BOOTP كحالة خاصة نوعًا ما من عملاء DHCP، وتتطلب بعض المعماريات إعدادات معقدة من أجل إقلاع العملاء من خلال BOOTP، فإذا تطلب الحاسوب ذلك فيجب قراءة فقرة إعداد خادم DHCP أعلاه، وإلا فتكفي إضافة التوجيه <code>allow bootp</code> إلى كتلة التهيئة للشبكة الفرعية subnet التي تحتوي العميل في ملف <code>/etc/dhcp/dhcpd.con</code>، وإعادة تشغيل <code>dhcpd</code> بواسطة الأمر <code>/etc/init.d/isc-dhcp-server restart</code>. | |||
== تفعيل خادم TFTP == | |||
يجب التأكد من تفعيل <code>tftpd</code> أولًا من أجل تجهيز خادم TFTP، وهناك طريقتين لتشغيل الخدمة في حالة <code>tftpd-hpa</code>، إما ببدئها حسب الطلب بواسطة عفريت daemon للنظام اسمه <code>inetd</code>، أو إعدادها لتعمل كعفريت مستقل، ويمكن اختيار أي الطريقتين عند تثبيت الحزمة، كما يمكن التبديل بينهما بإعادة ضبط الحزمة. | |||
يلاحظ أن خوادم TFTP كانت تستخدم المجلد <code>/tftpboot</code> في نقل نُسخ التثبيت منه، غير أن حزم ديبيان جنو/لينكس قد تستخدم مجلدات أخرى لتتوافق مع معيار FHS، فمثلًا تستخدم <code>tftpd-hpa</code> المجلد <code>/srv/tftp</code>، وعلى ذلك يمكن تعديل أمثلة الإعدادات في هذا القسم وفقًا لذلك. | |||
يجب أن تسجل جميع بدائل <code>in.tftpd</code> المتاحة الطلبات إلى سجلات النظام افتراضيًا، وتدعم بعضها وسيط <code>-v</code> لغرض الإسهاب، ويُنصح بالتحقق من رسائل السجلات تلك إذا حدثت مشاكل في الإقلاع إذ تكون نقطة جيدة لبداية تشخيص سبب الأخطاء. | |||
== وضع نُسخ TFTP في مكانها المناسب == | |||
تكون الخطوة التالية بعد تشغيل خادم TFTP هي وضع نسخة إقلاع TFTP التي يريدها المستخدم كما هو موضح في كيفية إيجاد ملفات التثبيت المختلفة لكل مرآة من صفحة [[Debian/official debian images|ملفات النسخ الرسمية لتثبيت ديبيان جنو/لينكس]]، داخل مجلد نُسخ إقلاع <code>tftpd</code>، وقد يحتاج المستخدم إلى إنشاء رابط من ذلك الملف إلى الملف الذي ستستخدمه <code>tftpd</code> في إقلاع عميل ما، لكن اسم الملف يُحدده عميل TFTP، ولا توجد معايير قوية تضبط هذه التسمية. | |||
أما في حالة إقلاع PXE فيكون كل شيء يحتاجه المستخدم معدًا وجاهزًا في أرشيف <code>netboot/netboot.tar.gz</code>، وما عليه سوى استخراج هذا الأرشيف إلى مجلد نُسخ إقلاع <code>tftpd</code>، مع التأكد من إعداد خادم dhcp ليمرر <code>pxelinux.0</code> إلى <code>tftpd</code> كاسم الملف الذي يجب إقلاعه، أما بالنسبة للحواسيب التي فيها واجهات UEFI، فسيحتاج المستخدم إلى تمرير اسم نسخة EFI المناسب، مثل <code>/debian-installer/amd64/bootnetx64.efi</code>. | |||
== انظر أيضًا == | == انظر أيضًا == | ||
*[[Debian/debian software|البرمجيات المتاحة في نظام ديبيان جنو/لينكس]]. | *[[Debian/debian software|البرمجيات المتاحة في نظام ديبيان جنو/لينكس]]. | ||
سطر 15: | سطر 116: | ||
[[تصنيف:UNIX]] | [[تصنيف:UNIX]] | ||
[[تصنيف:Open Source]] | [[تصنيف:Open Source]] | ||
[[تصنيف:Architecture]] | |||
[[تصنيف:subnet]] | |||
[[تصنيف:TFTP]] | |||
[[تصنيف:BOOTP]] | |||
[[تصنيف:DHCP]] |
مراجعة 05:47، 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
.
انظر أيضًا
- البرمجيات المتاحة في نظام ديبيان جنو/لينكس.
- تاريخ موجز لنظام ديبيان.
- إصدارات نظام ديبيان.
- تثبيت نظام ديبيان جنو/لينكس.