हां, यह बहुत संभव है। सिस्टम का प्रकार आप बूट कर सकते हैं यह निर्भर करेगा कि सिस्टम कैसे काम करता है।
आमतौर पर, आप पाएंगे कि बहुत ही सरल सिस्टम (जैसे DOS या Win98) और बहुत ही जटिल सिस्टम (जैसे आधुनिक लिनक्स डिस्ट्रोस) नेटवर्क पर आसानी से बूट किए जा सकते हैं।
दो प्रकार की प्रणालियों पर इसे पूरा करने का तरीका बहुत अलग है।
आइए दोनों तरीकों को अधिक विस्तार से देखें। मैं मान रहा हूं कि आपके पास पहले से ही पीएक्सई बूट सर्वर सेटअप है ; यदि आप नहीं करते हैं, तो आगे बढ़ें और इसे करें, यह काफी आसान है।
मैं dnsmasq
tftproot के साथ एक लिनक्स सर्वर पर एक सेटअप भी मान रहा हूं /var/lib/tftpboot
, लेकिन आपको निर्देशों को किसी अन्य सेटअप में अनुकूलित करने में सक्षम होना चाहिए।
सरल प्रणालियों के लिए
सरल सिस्टम के लिए, आप बस छवि (आईएसओ) को रैम में लोड करते हैं, और सिस्टम को विश्वास में लेते हैं कि यह एक वास्तविक इकाई है। यह BIOS से थोड़ी मदद और एक सॉफ्टवेयर मॉड्यूल के साथ किया जाता है जिसे मेमडिस्क कहा जाता है ।
सिस्टम जिसे आप नेटवर्क पर लोड करना चाहते हैं, वह फ्रीडोस है:
# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32
PROMPT 0
TIMEOUT 0
MENU DEFAULT freedos
LABEL freedos
MENU LABEL FreeDOS
KERNEL /syslinux/memdisk
INITRD /freedos.iso iso
तो इतना ही है। पहली कुछ पंक्तियाँ मेनू बायलरप्लेट हैं; महत्वपूर्ण बिट्स अंतिम चार लाइनें हैं: दिए गए आईएसओ के साथ मेमडिस्क लोड करें।
जटिल प्रणालियों के लिए
अच्छे मेमोरी मैनेजमेंट और उचित हार्डवेयर डिटेक्शन जैसे फैंसी सामान के साथ आधुनिक सिस्टम कुछ भी BIOS को अनदेखा कर देता है।
यह memdisk
ऊपर दिए गए दृष्टिकोण को बहुत बेकार में प्रस्तुत करता है, क्योंकि यदि आपने आईएसओ को इस तरह से लोड किया है, तो एक बार कर्नेल को आईएसओ से पढ़ने और मेमोरी में लोड किया जाता है (यह आईएसओ में बूटलोडर द्वारा किया जाता है; बूटलोडर्स BIOS पर ध्यान देते हैं) , आईएसओ डेटा चला जाएगा।
तब आप क्या करते हो? ठीक है, आप वास्तव में आईएसओ को नेटवर्क से लोड नहीं करते हैं, लेकिन सिस्टम को बताएं कि यह वहां से आवश्यक फाइलों तक पहुंच सकता है।
लिनक्स सिस्टम के लिए, tftproot में कहीं आईएसओ सामग्री निकालें और कर्नेल और initrd को सीधे लोड करें, फिर रूट फाइलसिस्टम को खोजने और इसे माउंट करने के लिए उन्हें ऊपर छोड़ दें।
यहां अद्भुत सिस्टम रेस्क्यू सीडी का उपयोग करके एक उदाहरण दिया गया है । मैंने वास्तव में TFTP सर्वर की जड़ पर पूरे आईएसओ को निकाला, क्योंकि यह मेरी निर्देशिका संरचना के साथ सही है, इसलिए गुठली अंदर है /syslinux
।
# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32
PROMPT 0
TIMEOUT 0
MENU DEFAULT sysrescd64
LABEL sysrescd64
MENU LABEL 1) SysResCD 4.2.0 (x64)
KERNEL /syslinux/rescue64
APPEND setkmap=us nomodeset netboot=nbd://pxe:sysrcd.dat
INITRD /syslinux/initram.igz
यहां सबसे महत्वपूर्ण बिट APPEND
लाइन है। netboot=
अंत में देखें ? यह ओएस कैसे जानता है कि इसका रूट फाइल सिस्टम कहां है। वाक्य-विन्यास है <protocol>://<server>:<path>
।
मैंने pxe
अपने सर्वर के लिए आसानी से एक DNS नाम निर्धारित किया था । यदि आपके पास ऐसा नहीं है कि आप सर्वर के लिए एक आईपी पते का उपयोग करेंगे।
इसके अलावा, sysresccd सबसे आसान में से एक है क्योंकि यह अपने रूट फाइल सिस्टम के लिए एक स्क्वाशफेट इमेज का उपयोग करता है, जिसे आसानी से डाउनलोड किया जा सकता है और किसी भी विधि से रैम में लोड किया जा सकता है। यहाँ मैं nbd का उपयोग करता हूं; आप tftp, nfs और http का भी उपयोग कर सकते हैं ।
अन्य डिस्ट्रोस के लिए, उबंटू की तरह, मुझे लगता है कि आप केवल एनएफ़एस का उपयोग कर सकते हैं।
विंडोज सिस्टम के लिए यह करना थोड़ा अधिक जटिल है । रूपरेखा है:
- सर्वर पर एक साझा फ़ोल्डर पर एक विंडोज 7 स्थापित करें
- अपने TFTP रूट में सर्वर पर एक पूर्ण Windows PE वातावरण है
- क्लाइंट मशीन को नेटवर्क पर WinPE लोड करें और F12कमांड प्रॉम्प्ट प्राप्त करने के लिए दबाएं
- विंडोज 7 के साथ साझा फ़ोल्डर को ड्राइव अक्षर पर इंस्टॉल करें
- मैप किए गए फ़ोल्डर से स्थापना शुरू करें
मैंने कभी यह कोशिश नहीं की है, और ऐसा लगता है कि यह कुछ लोगों के लिए काम नहीं करता है। विस्टा से पुराने NT संस्करणों के लिए मुझे लगता है कि यह भी संभव नहीं है। प्री-एनटी विंडोज (95, 98, ME, आदि) के लिए आप मेमदिस्क अप्रोच का उपयोग कर सकते हैं, लेकिन बूट करना आपकी सेहत के लिए बुरा है :-p