KVM Guest konsolundan kuruldu. Ama konuğun konsoluna nasıl gidilir?


28

KVM'ye (RHEL 6) tamamen sanallaştırılmış bir konuk (Fedora 14 x86_64), yalnızca komut satırını (hem hipervizör hem de konuk) kullanarak yüklemeye çalışıyorum. Hata olmadan ve somut bir sonuç olmadan gider. Salt metin yükleme yapmayı bilmek istiyorum.

İşte yaptığım şey şu:

# 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 ^]
ÿ

Şimdi ne olacak? Birkaç gündür googling yaptıktan sonra anladığım kadarıyla, konuğun metin kurulumundan çıktısını görmeliyim, ama hiçbir şey olmuyor. virt-viewer buna bağlanamıyor, lütfen tüm seçenekleri --help (yaptığım) ekleyerek keşfetmemi öneririm. Eğer virsh ile tekrar bağlanırsam, şunu görüyorum:

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 ^]

Bu, VM'nin çalıştığını gösterir

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

Qemu günlüğü:

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 dosyasının çıktısı

# 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>

Belli ki diğerlerinin yapmadığı bir şeyi özlüyorum, ama nedir? Şimdiden teşekkürler!


3
--Extra-args anahtarının --cdrom ile çalışmasını nasıl sağladınız? Virt-install man sayfasına göre --extra-args sadece --location ile çalışır?
slm

4
Ben kaldırıldı --network bridge:br0değişmiş cdromiçin locationve extra-argsiçin --extra-args='console=tty0 console=ttyS0,115200n8 serial've işe yaradı!
bazı

2
Sadece cdrom 'u yer değiştirdim ve "extra-args" ekledim. - ağ seçenekleri kaldırmanıza gerek yok.
twan163

1
Sebebi ne olursa olsun --cdrom, fazladan hatalarla çalışmaz, fakat --location(veya -l) yapar. Aynı yol ve her şey.
Rick Chatham

Yanıtlar:


9

--extra-args='console=ttyS0'Geçen sefer internetten bir yere kopyaladım , işe yarıyor!

  • İki "konsol" komutuna gerek yok, bu sadece bir tane yerine iki konsol açar
  • Baud hızını manuel olarak belirtmenize gerek yok.
  • "--serial" seçeneği kullanımdan kaldırıldı
  • RedHat konsol cihazı "/ dev / tty0" değil, "/ dev / ttyS0" şeklindedir.

Bakınız: http://anaconda-installer.readthedocs.io/en/latest/boot-options.html


7

--nographicskullanılır ve konukta tty0 konsolunun yanı sıra bir konsol kurulmamıştır. Grafik bir konsol istiyorsanız, özellikle uzaktan erişilebilirse, vga ve vnc veya qxl ve spice'i etkinleştirmeniz gerekir. bu bir örnektir: http://www.linux-kvm.com/content/tip-how-run-headless-guest-machine-using-vnc-kvm

http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output veya http://ubuntuforums.org/showpost.php?p=9610421&postcount=7 de bir çözümdür.


Cevap verdiğin için teşekkürler, Dyasny. Puanlarınızı toplama: 1. Hayır, grafik konsolu istemiyorum (bkz. Yazım) 2. Evet, bunu ve benzeri çözümleri denedim. Benim için işe yaramadı.
badbishop

Linux-kvm.org veya libvirt mail listesinden
sormaya çalışırdım

6

CentOS'un salt metin yüklemesini gerçekleştirmeye çalışırken de benzer bir sorunla karşılaştım. Hepsi seri çıkış konsolunu belirtmek için çekirdek argümanları eklemekle kaynaşır, console=ttyS0böylece daha sonra --graphics noneveya --nographicskullanıldığında bağlanabilirsiniz . Kullanım virt-installkılavuzundan:

- grafik yok

Konuk için hiçbir grafik konsolu tahsis edilmeyecektir. Tamamen sanallaştırılmış konukların (Xen FV veya QEmu / KVM), konuğun ilk seri portunda yapılandırılmış bir metin konsoluna sahip olması gerekir (bu --extra-args seçeneği ile yapılabilir). Xen PV bunu otomatik olarak ayarlayacaktır. Seri cihaza bağlanmak için 'virsh console NAME' komutu kullanılabilir.

Bunu iki şekilde çözmeyi başardım:

  1. iso görüntüsünü değiştirerek ve --cdromseçeneği kullanarak
  2. iso görüntüsünü NFS paylaşımı olarak göstererek ve --locationseçeneği kullanarak--extra-args

1. Resmi değiştirmek

İso kurulum diskindeki çekirdek parametrelerini değiştirmek için:

  1. Örneğin, izomaster gibi görüntüleri değiştirmeye izin veren bir program edinin .
  2. Resimdeki isolinux/isolinux.cfgdosyaya gidin , açın, initrd=üzerindeki ilk satırı bulun console=ttyS0ve belirtilen parametreye sahip diğer tüm satırları ekleyin .
  3. Dosyayı ve resmi kaydedin.
  4. Değiştirilen görüntüyü virt-installher zamanki gibi kullanın , örneğin:

    $ 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
    

Bitti.

2. NFS paylaşımı kullanma

  1. Resmi bağla:

    $ sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom
    
  2. Çalışmıyorsa NFS servisini başlatın: service nfs start

  3. /etc/exportsİstemcilere sunulması için aşağıdaki satırı ekleyin :

    /home/user/mnt/cdrom    *(ro,insecure,all_squash)
    
  4. Sistemin ihracat tablosunu aşağıdakilerle yenileyin:

    $ exportfs -r
    
  5. Örneğin, virt-installaşağıdakileri aşağıladığınızdan emin olarak paylaşım kullanın.--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 kurulumu sırasında kurulum dosyalarının yeri hakkında bir bilgi istemi alırsınız. Makinenizin adresini ve paylaşımın tam yolunu yazmanız gerekir.

Bitti.


iso dosyasını bağlamak için ikinci yönteminizi denedim ama bu hatayı aldım. Kurulumu başlatıyorum ... Dosya alınıyor .treeinfo ... | 552 B 00:00:00 HATA Bölümde 'çekirdek' seçeneği yok: 'images-x86_64' iso dosyasını / mnt'ye bağlarım ve virt-install içinde --location / mnt komutunu kullanırım
public_name

@public_name iso montaj ama hemen sonra iso yolunu belirterek çalışın --locationgibi --location /tmp/centos6.iso.
Rick Chatham

Ubuntu 16'da çalışıldı, isolinux / isolinux.cfg yerine isolinux / txt.cfg düzenlenmesi.
John McGehee

2

Fedora yükleyiciyi metin modunda çalıştırmanız gerekir. Fazladan argümanlara 'text' eklemeyi deneyin. Alternatif olarak, başlatıldıktan sonra yükleyiciye VNC üzerinden bağlanmanıza izin verecek "vnc" eklemeyi deneyebilirsiniz


1
Daha yeni bir kütüphaneci için -x ve --cdrom kullanamazsınız. CD'yi ağın herhangi bir yerine yerleştirmeyi ve --location somewhere.com/mounted-iso --graphics none --extra-args "console = ttyS0,115200 metin başsız" kullanmayı
deneyin

1

Kurulumlarımı bir süredir ayakkabıcı ve koan kullanarak yapıyorum. Ayakkabıcıda, Centos60-x86_64 profilimin altındaki gibi çekirdek seçeneklerimi belirledim:

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

Başlatmadan sonra, konsolun iki cihazda gösterilmesini sağlamak için console = tty0 console = ttS0,115200 kullanabilirsiniz; bu kurulum için çalışmıyor. Eğer / etc / grub altındaki grub seçeneklerini düzenlerseniz ve grub.conf komutunu yeniden düzenlerseniz, seri konsol ayarları bir çekirdek yükseltme işleminden geçecektir. Yükleyicinin bir GUI başlatmasını önlemek için çekirdek komut satırına "text" ekleyin.

KVM misafir örnekleriim başladığında, KVM ana bilgisayarına giriş yaparken onlara bağlanıyorum ve şu şekilde bir misafir konsoluna bağlanıyorum:

[root@vmhost ~]# virsh console guestvm

Daha sonra bunu kabuğumda görüyorum:

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: 

Son bir not, koan'a KVM misafirlerimden birini oluşturmaya başladığımı söylediğimde --nogfx anahtarını şöyle söylerim:

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

1

Yanlış yapılandırılmış bir konsol görüyorsunuzdur.

Belki bunu ya da benzerlerini deneyin:

Öncelikle grub konfigürasyonumuza konsol satırı ekledim, örneğin bir Arch konuğu için: kernel / vmlinuz26 root = / dev / vda2 ro console = ttyS0,115200 Sonra ttyS0'ı etkinleştirmek için / etc / inittab dosyasını düzenledim (aynı Arch guest): co: 23 : respawn: / sbin / agetty -8 115200 ttyS0 linux. Ve / etc / securetty dosyasında ttyS0 olduğundan emin olun.

Daha fazla bilgi burada: ` http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output

--Düzenle--

console=ttyS0,115200Belki diğer olası konsol parametrelerini kontrol etmeye çalışabilirsin .


BTW --extra-args=diğer konsol ayarlarını da doğrudan alıyor.
Jonathan Ross

Aldığın metne göre, konukta / etc / inittab değiştirmem gerekiyor. Bütün sorun şudur: misafirle nasıl etkileşime girebilirim? Üzgünüm, anlamadım.
badbishop

Üzgünüm düzenlemeye bakın, çok net değildim.
Jonathan Ross

Evet, soruyu göndermeden önce --extra-args = 'console = ttyS0' denedim.
badbishop

Üzgünüm, demek istedim console=ttyS0,115200ve muhtemelen bunun için deneyebileceğiniz başka parametreler var. Hala bir açıklama yanlış yapılandırılmış bir konsolun olduğunu tahmin ediyorum.
Jonathan Ross
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.