18.04 आईएसओ का पीएक्सई बूट


12

इससे पहले, मैं एक NFS माउंट के लिए आईएसओ निकालकर और vmlinuz.efi की प्रतिलिपि बनाकर Ubuntu LiveCDs का PXE बूटिंग सेट कर रहा हूं और कुछ XXE स्क्रिप्टिंग मैजिक के साथ कैस्पर से tftpboot निर्देशिका में initrd.gz कॉपी कर रहा हूं।

इसने 16.04, 16.10 और 17.10 (आर्टफुल) के लिए निर्दोष रूप से काम किया।

18.04 के साथ, मुझे पहली बार पता चला कि vmlinuz.efi अब कास्पर में मौजूद नहीं है, लेकिन vmlinuz करता है। इसलिए, मैं कुछ नाम बदलने के साथ फिर से कोशिश करता हूं ...

और अब यह अभी भी पूरा नहीं हो रहा है। मुझे "आपातकालीन मोड" मिलता है। 'Journalctl -xb' में टाइप करना (जैसा कि आपातकालीन मोड प्रॉम्प्ट द्वारा सुझाया गया है) और ब्राउज़िंग निम्न की ओर जाता है:

Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.

मदद!

जोड़ा गया 2018-04-30:

PXE माउंट के लिए ISO निकालने के लिए उपयोग किया जाने वाला स्क्रिप्ट कोड (TARGET सेट छवि नाम, जैसे बायोनिक):

set -e

# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET

# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET

# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET

# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.

# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.

क्या यह एक "क्लीन" इंस्टॉल था, जिसका अर्थ है, जिस ड्राइव पर कर्नेल है वह ताज़ा स्वरूपित था? या यह अन्य ओएस के साथ / ओवरटॉप है?
जोनाथन

1
प्रश्न में लक्ष्य मशीनों में कोई हार्ड ड्राइव नहीं है, और नेटवर्क बूट के माध्यम से 18.04 डेस्कटॉप लाइवसीडी लोड कर रहे हैं। कोई पिछला कॉन्फ़िगरेशन नहीं है। उन मशीनों के समूह की कल्पना करें, जो liveCD को बूट करने के लिए USB कुंजी या सीडी का उपयोग करने के बजाय, नेटवर्क पर iPXE का उपयोग करके लाइव सीडी को बूट करते हैं।
जो मार्ले

जवाबों:


7

मैंने लॉन्चपैड बग ट्रैकर पर "वुडरो शेन" की सलाह का पालन करते हुए iPXE में इस मुद्दे पर काम किया ।

मूल रूप से मैंने ubuntu 16.04.3 के लिए हमारी पुरानी प्रविष्टि को अनुकूलित किया:

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

Ubuntu 18.04 के लिए इस तरह दिखने के लिए:

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

निम्नलिखित परिवर्तनों पर ध्यान दें:

  • 4 और 6 लाइनों पर vmlinuz.efiहोने का नाम बदलेंvmlinux
  • toramपंक्ति 6 में विकल्प जोड़ें
  • स्पष्ट रूप nfs_pathसे नई एक्सट्रैक्ट आईएसओ के स्थान से मिलान करने के लिए बदलें

ध्यान दें कि लॉन्चपैड पर बताया गया है, इस toramविकल्प के लिए अतिरिक्त रैम की आवश्यकता होती है। मेरे परीक्षण में, मुझे यह सुनिश्चित करने की आवश्यकता थी कि मेरी आभासी मशीनों में 4GB RAM आवंटित हो

ध्यान दें कि यह हमारे EFI और विरासत BIOS सिस्टम दोनों के लिए भी काम करता है।


1
Thankyou DrGecko - toramविकल्प ने टकसाल 19 के साथ मेरे लिए काम किया!
ब्रायन साइडबोटहम

यह lubuntu 18.04.1 (LTS) के लिए भी काम करता है, जो वास्तव में मुझे चाहिए था। धन्यवाद!
जो मार्ले

1
एक और विकल्प है, जिसके toramलिए कंप्यूटर की आवश्यकता नहीं होती है और बहुत कम रैम वाले कंप्यूटर को बूट करने की अनुमति देता है: लाइन 6 के अंत को बदल देंip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag बहुत बहुत धन्यवाद, मेरे पास 2GB RAM वाले कंप्यूटरों का ढेर है। परीक्षण किया गया और उबंटू मेट 18.04.1 और लिनक्स मिंट 19.1 पर काम करता है, जिसमें एक ही मुद्दा है क्योंकि यह उबंटू 18.04 पर आधारित है।
स्काइलर इटनर

2

सप्ताहांत के बाद, मुझे अपने सटीक लक्षणों का वर्णन करने वाला एक बग मिला (और एक इंटरैक्टिव वर्कअराउंड प्रदान करता है)।

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863

जाहिरा तौर पर मैं 18.04.1 को इंतजार कर रहा हूं। कम से कम मुझे अब पता है कि मैं (पूरी तरह से) पागल नहीं हूं!


मुझे पहले लिंक पर क्लिक करना चाहिए था - काफी समय लगा। मैं AIO बूट का उपयोग कर रहा था। धन्यवाद।
रेगि

0

नीचे अद्यतन - लाइव आइसो का उपयोग न करें, पारंपरिक का उपयोग करें जिसे पीएक्सई बूट किया जा सकता है जैसा कि मैं करता था


ubuntu 14.04 और 16.04 के लिए, मैंने बस लूप-बैक को पूरा सर्वर डीवीडी आईएसओ पर चढ़ाया ताकि यह एक वेब सर्वर के माध्यम से सुलभ हो, और सामान्य तरीके से पीएक्सई बूट सेट किया गया था (कर्नेल और इनफर्ट को tftp डेमन में कॉपी किया गया था, डीएचसीपी अगला-सर्वर विकल्प , pxe मेनू आदि)।

हमारे पास नोड्स की तैनाती को पूरी तरह से स्वचालित करने के लिए एक किकस्टार्ट प्रक्रिया है।

यह बस 18.04 के साथ काम नहीं करता है, इंस्टाल डायरेक्टरी में कोई कर्नेल नहीं था, और न ही कोई इनस्टॉल / नेटबूट / ubuntu-इंस्टॉलर / एमड ६४ डाइरेक्टरी! इसलिए मैंने कैस्पर डायरेक्टरी से कर्नेल और इनिट्रड की कोशिश की लेकिन वह भी बेकार है। मैं डीवीडी स्थापना को iso पकड़ लिया और उस से कर्नेल और initrd का उपयोग किया। यह वास्तव में पाठ इंस्टॉलर को आग लगा देता है लेकिन जोर देता है कि दर्पण एक फाइल को याद कर रहा है, लेकिन मेरे http सर्वर से लॉग कोई 404 नहीं दे रहा है!

कुल मिलाकर, मुझे लगता है कि ubuntu 18.04 सर्वर आईएसओ स्वचालित इंस्टॉल करने के इच्छुक लोगों के लिए एक प्रतिगामी कदम है।


मैंने इसे किकस्टार्ट में जोड़ने का भी प्रयास किया

preseed लाइव-इंस्टॉलर / नेट-इमेज स्ट्रिंग http: //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs

जो कुछ हद तक मुझे उबंटू 14.04 पीएक्सई बूट को स्वचालित बनाने के लिए करना था

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.