เหตุผลอะไรที่สามารถป้องกันเอาต์พุตคอนโซลจาก“ virsh -c qemu: /// ระบบคอนโซล guest1”?


9

ฉันใช้ KVM กับโฮสต์ Ubuntu 10.04 ระบบปฏิบัติการของแขกก็คือ Ubuntu 10.04

ฉันกำลังพยายามเชื่อมต่อกับแขกโดยใช้คำสั่ง 'คอนโซล' ดูเหมือนว่าฉันสามารถสร้างการเชื่อมต่อ แต่ฉันไม่ได้รับผลลัพธ์

$ sudo virsh -c qemu:///system console guest1
Connected to domain guest1
Escape character is ^]
(NOTHING HERE)
^]
$

ฉันไม่ได้กำหนดค่าอุปกรณ์ 'ซีเรียล' แต่มีอุปกรณ์ 'คอนโซล' เหล่านี้

<console type='pty' tty='/dev/pts/2'>
  <source path='/dev/pts/2'/>
  <target port='0'/>
</console>
<console type='pty' tty='/dev/pts/2'>
  <source path='/dev/pts/2'/>
  <target port='0'/>
</console>

สิ่งเหล่านี้เพียงพอสำหรับคอนโซลหรือฉันต้องการอุปกรณ์แบบอนุกรมด้วยหรือไม่

ฉันต้องทำอะไรเพื่อให้คอนโซล KVM ทำงานได้

คำตอบ:


7

ฉันค่อนข้างแน่ใจว่าคุณจำเป็นต้องกำหนดค่าแขกให้ใช้คอนโซลอนุกรม คุณต้องการสามสิ่งเพื่อให้สิ่งนี้ทำงาน:

  1. ให้อุปกรณ์ประเภทอนุกรมเสมือนแก่ผู้เยี่ยมชมpty(ตัวอย่างเช่นโดยการเพิ่มหนึ่งรายการในvirt-managerหน้าข้อมูล vm)

  2. บอก kernel เพื่อใช้สำหรับการส่งออกของตนโดยการเพิ่มพารามิเตอร์บูตเหมือนserial=tty0 console=ttyS0,115200n8เข้าไปGRUB_CMDLINE_LINUXใน/etc/default/grub; จากนั้นเรียกใช้sudo update-grub

  3. (ทางเลือก) ใส่ getty บน ttyS0เพื่อให้คุณได้รับพร้อมต์ล็อกอิน

ดูhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507650สำหรับข้อมูลเพิ่มเติม


1
และเพื่อเพิ่มเก็ตตี้ให้กับ ttyS0 ฉันได้ทำตามคำแนะนำที่นี่: ubuntuforums.org/showpost.php?p=9610421&postcount=7
Stefan Lasiewski

1

สิ่งหนึ่งที่เป็นไปได้คือเครื่องเสมือนของคุณไม่มีการกำหนดค่าคอนโซลแบบอนุกรม

virsh dumpxml guest1

จะแสดงว่ามีการกำหนดค่าคอนโซลแบบอนุกรมหรือไม่ ควรมีสิ่งที่คล้ายกัน

<serial type='pty'>
<target port='0'/>
</serial>

ขอบคุณ @txwikinger virsh dumpxmlฉันปรับปรุงคำถามของฉันกับการส่งออกจากการ ฉันไม่เห็นอุปกรณ์อนุกรม แต่ฉันเห็นอุปกรณ์คอนโซลบางตัว คุณรู้หรือไม่ว่าเพียงพอ
Stefan Lasiewski


1

ฉันเพิ่งพบเจอสิ่งนี้

นี่คือสิ่งที่ฉันมีในการกำหนดค่า XML บนโฮสต์ (เรียกใช้ KVM):

<serial type='pty'>
  <source path='/dev/pts/0'/>
  <target port='0'/>
</serial>
<console type='pty' tty='/dev/pts/0'>
  <source path='/dev/pts/0'/>
  <target port='0'/>
</console>

ฉันยังต้องเพิ่มต่อไปนี้ใน /etc/default/grub.conf ใน VM (ผนวกเข้ากับคำสั่ง "kernel"):

kernel ..... serial=tty0 console=ttyS0,115200n8

ในที่สุดฉันก็รักษาความปลอดภัย ttyS0 ด้วยการเพิ่ม "/ etc / securetty" เพื่อเปิดใช้งานการเข้าสู่ระบบจากที่นี่

vi /etc/securetty
ttyS0

คุณอาจต้องโคลนด้วยการตั้งค่า getty ของคุณ (ตามที่อธิบายโดยคำตอบอื่น ๆ ) เช่นกัน

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.