KVM अतिथि कंसोल से स्थापित किया गया है। लेकिन मेहमान के कंसोल पर कैसे जाएं?


28

मैं केवीएम (आरएचईएल 6) पर पूरी तरह से वर्चुअलाइज्ड गेस्ट (फेडोरा 14 x86_64) स्थापित करने की कोशिश कर रहा हूं, केवल कमांड-लाइन (हाइपरवाइजर और गेस्ट) दोनों का उपयोग कर रहा हूं। यह त्रुटियों के बिना, और मूर्त परिणाम के बिना जाता है। मैं जानना चाहता हूं कि केवल-पाठ स्थापना कैसे करें।

तो, यहाँ मैंने क्या किया है:

# virt-install \
--name=FE --ram=756 --vcpus=1 \
--file=/var/lib/libvirt/images/FE.img  --network bridge:br0 \
--nographics --os-type=linux  \
--extra-args='console=tty0' -v \
--cdrom=/media/usb/Fedora-14-x86_64-Live-Desktop.iso 


Starting install...
Creating domain...                                                                                                                                                        |    0 B     00:00     
Connected to domain FE
Escape character is ^]
ÿ

अब क्या? जैसा कि मैंने कुछ दिनों तक गुगली करने के बाद समझा, मुझे टेक्स्ट इंस्टॉलेशन से अतिथि का आउटपुट देखना चाहिए, लेकिन ऐसा कुछ नहीं होता है। गुण-दर्शक इसे कनेक्ट नहीं कर सकता, कृपया सुझाव दें कि मैं --help (जो मैंने किया था) जोड़कर सभी विकल्पों का पता लगाता हूं। यदि मैं वायरश के साथ फिर से जुड़ता हूं, तो मैं इसे देखता हूं:

Domain installation still in progress. You can reconnect to 
the console to complete the installation process.
[root@v ~]
# virsh console FEConnected to domain FE
Escape character is ^]

इससे पता चलता है कि वीएम चल रहा है

# virsh list
 Id Name                 State
----------------------------------
  8 FE                   running

क्यूमू लॉग:

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 756 -smp 1,sockets=1,cores=1,threads=1 -name FE -uuid 6989d008-7c89-424c-d2d3-f41235c57a18 -nographic -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/FE.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=utc -no-reboot -boot d -drive file=/var/lib/libvirt/images/FE.img,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=/media/usb/Fedora-14-x86_64-Live-Desktop.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:0a:65:8d,bus=pci.0,addr=0x2 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 
char device redirected to /dev/pts/1

/Etc/libvirt/qemu/FE.xml का आउटपुट

# cat /etc/libvirt/qemu/FE.xml 
<domain type='kvm'>
  <name>FE</name>
  <uuid>6989d008-7c89-424c-d2d3-f41235c57a18</uuid>
  <memory>774144</memory>
  <currentMemory>774144</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/var/lib/libvirt/images/FE.img'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:0a:65:8d'/>
      <source bridge='br0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
  </devices>
</domain>

मुझे स्पष्ट रूप से कुछ याद आ रहा है जो कई अन्य नहीं करते हैं, लेकिन यह क्या है? अग्रिम में Thanx!


3
कैसे आप के साथ काम करने के लिए theextra-args स्विच प्राप्त करने में सक्षम थे? पुण्य स्थापित मैन पेज के अनुसार - टेक्स्ट-आर्ग केवल - एलोकेशन के साथ काम करता है?
SLM

4
मैं हटा दिया --network bridge:br0, बदल cdromकरने के लिए location, और extra-argsकरने के लिए --extra-args='console=tty0 console=ttyS0,115200n8 serial'और यह काम किया!
कुछ

2
मैंने केवल cdrom को स्थान में परिवर्तित किया और "अतिरिक्त-आर्ग" को जोड़ा। --Network विकल्प को हटाने की आवश्यकता नहीं है।
ट्वैन 163

1
जो भी कारण के लिए --cdromअतिरिक्त आर्ग के साथ काम नहीं करता है, लेकिन --location(या -l) करता है। एक ही रास्ता और सब कुछ।
रिक चैथम

जवाबों:


9

मैंने --extra-args='console=ttyS0'पिछली बार इंटरनेट से कहीं कॉपी किया था, यह काम करता है!

  • दो "कंसोल" कमांड के लिए कोई ज़रूरत नहीं है, कि बस एक के बजाय दो कंसोल खोलता है
  • बॉड दर को मैन्युअल रूप से निर्दिष्ट करने की आवश्यकता नहीं है।
  • "--serial" विकल्प को हटा दिया गया है
  • RedHat कंसोल डिवाइस "/ dev / ttyS0" है, न कि "/ dev / tty0"

देखें: http://anaconda-installer.readthedocs.io/en/latest/boot-options.html


7

--nographicsउपयोग किया जाता है, और आपके पास अतिथि में कोई कंसोल सेट नहीं है, इसके अलावा tty0 कंसोल भी है। यदि आप एक ग्राफिकल कंसोल चाहते हैं, विशेष रूप से उपलब्ध दूरस्थ रूप से आपको vga और vnc, या qxl और मसाला सक्षम करने की आवश्यकता होगी। यह एक उदाहरण है: http://www.linux-kvm.com/content/tip-how-run-headless-guest-machine-use-vnc-kvm

http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output या http://ubuntuforums.org/showpost.php?p=9610421&postcount7-7 भी एक समाधान है।


जवाब देने के लिए धन्यवाद, dyasny अपनी बातों को उठाते हुए: 1. नहीं, मैं एक ग्राफिकल कंसोल (मेरी पोस्ट नहीं देखना चाहता) 2. हाँ, मैं इस और इसी तरह के समाधानों की कोशिश कर रहा हूं। यह मेरे लिए काम नहीं किया।
बैडबिशप

मैं linux-kvm.org या libvirt मेलिंग सूची पर पूछने की कोशिश करूंगा
dyasny

6

मुझे केवल इसी तरह की समस्या थी जब मैं केवल सेंटोस की पाठ-स्थापना करने की कोशिश कर रहा था। यह सभी धारावाहिक आउटपुट कंसोल को निर्दिष्ट करने के लिए कर्नेल तर्कों को जोड़ने के लिए उबलता है console=ttyS0ताकि आप तब इसे कनेक्ट कर सकें जब --graphics noneया --nographicsउपयोग किया जाता है। से virt-install'मार्गदर्शन है:

-ग्राफिक्स कोई नहीं

अतिथि के लिए कोई ग्राफ़िकल कंसोल आवंटित नहीं किया जाएगा। पूरी तरह से वर्चुअलाइज्ड मेहमान (एक्सएन एफवी या क्यूईएमयू / केवीएम) को अतिथि में पहले सीरियल पोर्ट पर एक पाठ कंसोल कॉन्फ़िगर करने की आवश्यकता होगी (यह - theextra-args विकल्प के माध्यम से किया जा सकता है)। Xen PV इसे स्वचालित रूप से सेट करेगा। सीरियल डिवाइस से कनेक्ट करने के लिए कमांड 'वायरल कंसोल NAME' का उपयोग किया जा सकता है।

मैं इसे दो तरीकों से हल करने में कामयाब रहा हूं:

  1. आईएसओ छवि को संशोधित करके और --cdromविकल्प का उपयोग करके
  2. NFS के रूप में आईएसओ छवि को उजागर करने और --locationविकल्प के साथ प्रयोग करके--extra-args

1. छवि को संशोधित करना

आइसो इंस्टॉलेशन डिस्क पर कर्नेल मापदंडों को संशोधित करने के लिए:

  1. एक प्रोग्राम प्राप्त करें जो छवियों में हेरफेर करने की अनुमति देता है, उदाहरण के लिए, आइसोमैस्टर
  2. isolinux/isolinux.cfgछवि पर फ़ाइल पर जाएं , इसे खोलें, इसके साथ पहली पंक्ति ढूंढें initrd=और console=ttyS0इसे और अन्य सभी पंक्तियों को निर्दिष्ट पैरामीटर के साथ जोड़ें।
  3. फ़ाइल और छवि सहेजें।
  4. virt-installहमेशा की तरह, संशोधित छवि का उपयोग करें :

    $ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --cdrom /home/user/images/centos-modified.iso --os-type linux --nographics --accelerate
    

किया हुआ।

2. NFS शेयर का उपयोग करना

  1. छवि माउंट करें:

    $ sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom
    
  2. नहीं चल रहा है तो NFS सेवा शुरू करें: service nfs start

  3. /etc/exportsइसे ग्राहकों के लिए उपलब्ध कराने के लिए निम्न पंक्ति जोड़ें :

    /home/user/mnt/cdrom    *(ro,insecure,all_squash)
    
  4. सिस्टम की निर्यात तालिका को ताज़ा करें:

    $ exportfs -r
    
  5. शेयर का उपयोग करें , उदाहरण के virt-installलिए --extra-args, सुनिश्चित करें :

    $ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --location /home/user/mnt/cdrom --os-type linux --nographics --accelerate --extra-args="console=ttyS0"
    
  6. CentOS की स्थापना के दौरान आपको इंस्टॉलेशन फ़ाइलों के स्थान के बारे में पूछने के लिए संकेत मिलता है। आपको अपनी मशीन का पता और शेयर का पूरा रास्ता लिखना होगा।

किया हुआ।


मैं iso फ़ाइल माउंट करने के लिए अपनी दूसरी विधि की कोशिश की है, लेकिन मैं इस त्रुटि को स्थापित शुरू कर दिया ... फ़ाइल पुनर्प्राप्त .treeinfo ... | 552 B 00:00:00 ERROR अनुभाग में कोई विकल्प 'कर्नेल': 'छवियाँ-x86_64' i iso फ़ाइल को / mnt पर माउंट करें और उपयोग करें
गुणन

@public_name इसो को माउंट नहीं करने की कोशिश करें, लेकिन --locationजैसे के बाद सिर्फ आइसो के लिए पथ निर्दिष्ट करें --location /tmp/centos6.iso
रिक चैथम

Ubuntu 16 पर काम किया, आइसोलेटिनक्स / आइसोलिनक्स.सीएफजी के बजाय आइसोलिनिनक्स / txt.cfg का संपादन किया।
जॉन मैकगी

2

आपको पाठ मोड में फेडोरा इंस्टॉलर को चलाने की आवश्यकता है। अतिरिक्त आर्गन्स में 'टेक्स्ट' जोड़ने का प्रयास करें। वैकल्पिक रूप से, आप "vnc" को जोड़ने का प्रयास कर सकते हैं, जो आपको VNC पर इंस्टॉलर से जुड़ने के बाद इसे शुरू करने की अनुमति देगा


1
यह जाँच की, एक नए libvirt के लिए, आप -x और --cdrom का उपयोग नहीं कर सकते। नेटवर्क पर कहीं भी cdrom को माउंट करने की कोशिश करें और कहीं भी --location का उपयोग करें ।mounted -iso --graphics none --extra-args "कंसोल = ttyS0,115200 टेक्स्ट हेडलेस"
katriel

1

मैं थोड़ी देर के लिए अपनी स्थापना कर रहा हूं अब मोची और कोआन का उपयोग कर रहा हूं। मोची के भीतर मैंने अपने कर्नेल विकल्प सेट किए जैसे कि मेरे Centos60-x86_64 प्रोफ़ाइल के तहत:

Kernel Options: serial console=ttyS0,115200
Kernel Options (Post Install): console=ttyS0,115200

बूट के बाद आप कंसोल का उपयोग कर सकते हैं tty0 कंसोल = ttS0,115200 कंसोल को दो डिवाइस पर दिखाने के लिए; यह स्थापना के लिए काम नहीं करता है। यदि आप / etc / grub के अंतर्गत grub विकल्प संपादित करते हैं और grub.conf को क्रमबद्ध करते हैं तो सीरियल कंसोल सेटिंग्स कर्नेल अपग्रेड से बचेगी। इंस्टॉलर को GUI शुरू करने से रोकने के लिए कर्नेल कमांड लाइन में "टेक्स्ट" जोड़ें।

जब मेरे KVM अतिथि उदाहरण शुरू होते हैं, तब मैं KVM होस्ट में लॉग इन करते समय उनसे कनेक्ट होता हूं और इस तरह एक अतिथि के कंसोल से जुड़ता हूं:

[root@vmhost ~]# virsh console guestvm

मैं इसे अपने शेल में देखता हूं:

Connected to domain guestvm
Escape character is ^]

CentOS Linux release 6.0 (Final)
Kernel 2.6.32-71.el6.x86_64 on an x86_64

guestvm login: 

एक अंतिम नोट, जब मैं कोन को अपने केवीएम मेहमानों में से एक का निर्माण शुरू करने के लिए कहता हूं, तो मैं इसे --nogfx स्विच के साथ कहता हूं:

koan --server 192.168.1.1 --virt --nogfx --system=guestvm

1

मुझे लगता है कि आप एक गलत धारणा कंसोल देख रहे हैं।

शायद यह या इसी तरह की कोशिश करें:

पहले मैं अपने ग्रब कॉन्फिगरेशन के लिए कंसोल लाइन जोड़ता हूं, जैसे कि एक आर्क गेस्ट के लिए: कर्नेल / vmlinuz26 रूट = / dev / vda2 ro कंसोल = ttyS0,115200 फिर मैं ttyS0 (समान आर्क गेस्ट) को सक्षम करने के लिए / etc / inittab को संपादित करता हूं: सह: 23 : रिस्पॉन्स: / sbin / agetty -8 115200 ttyS0 linux। और सुनिश्चित करें कि आपके पास ttyS0 आपके / etc / safetty में है।

यहाँ अधिक जानकारी: ` http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output

--edit--

आप कोशिश कर सकते हैं console=ttyS0,115200और अन्य संभव कंसोल मापदंडों की जांच कर सकते हैं ।


BTW --extra-args=अन्य कंसोल सेटिंग्स को भी सीधे लेता है।
जोनाथन रॉस

आपके द्वारा उद्धृत पाठ के अनुसार, मुझे अतिथि पर / etc / inittab को संशोधित करने की आवश्यकता है। पूरी समस्या यह है: मैं अतिथि के साथ कैसे बातचीत करूं? क्षमा करें, मुझे नहीं मिल रहा है।
बैडबिशप

क्षमा करें संपादित देखें, मैं बहुत स्पष्ट नहीं था।
जोनाथन रॉस

हां, मैंने प्रश्न पोस्ट करने से पहले --extra-args = 'कंसोल = ttyS0' और साथ ही कोशिश की है।
बैडबिशप

क्षमा करें, मेरा मतलब है console=ttyS0,115200और संभवतः इसके लिए अन्य पैरामीटर हैं जिन्हें आप आज़मा सकते हैं। मुझे अभी भी लगता है कि आपके पास कुछ विवरणों का गलत कंसोल है।
जोनाथन रॉस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.