web-dev-qa-db-ja.com

KVMゲストがコンソールからインストールされました。しかし、ゲストのコンソールにアクセスする方法は?

KVM(RHEL 6))に完全仮想化ゲスト(Fedora 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 ^]
ÿ

それで?数日間グーグルで調べたところ、テキストインストールからのゲストの出力が表示されるはずですが、何も起こりません。 virt-viewerはそれに接続できません。--help(私がやった)を追加してすべてのオプションを探索することをお勧めします。 virshで再接続すると、次のようになります。

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

これは、VMが実行されていることを示しています

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

Qemuログ:

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>

他の多くの人には欠けているものを私は明らかに見逃していますが、それは何ですか?よろしくお願いします!

28
badbishop

前回、インターネットから--extra-args='console=ttyS0'をコピーしました。うまくいきました。

  • 2つの「コンソール」コマンドは不要で、1つではなく2つのコンソールを開くだけです。
  • ボーレートを手動で指定する必要はありません。
  • 「--serial」オプションは廃止されました
  • RedHatコンソールデバイスは「/ dev/tty0」であり、「/ dev/tty0」ではありません

参照: http://anaconda-installer.readthedocs.io/en/latest/boot-options.html

9
brayden

--nographicsが使用されており、tty0コンソール以外にゲストにコンソールが設定されていません。特にリモートで利用できるグラフィカルコンソールが必要な場合は、vgaとvnc、またはqxlとspiceを有効にする必要があります。これは例です: 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 または http://ubuntuforums.org/showpost.php?p = 9610421&postcount = 7 も解決策です。

7
dyasny

CentOSのテキストのみのインストールを実行しようとすると、同様の問題が発生しました。結局のところ、シリアル出力コンソールconsole=ttyS0を指定するためのカーネル引数を追加することになるので、--graphics noneまたは--nographicsを使用するときに、それに接続できます。 virt-installのマニュアルから:

-グラフィックスなし

ゲストにグラフィカルコンソールは割り当てられません。完全に仮想化されたゲスト(Xen FVまたはQEmu/KVM)では、ゲストの最初のシリアルポートでテキストコンソールを構成する必要があります(これは--extra-argsオプションで実行できます)。 Xen PVはこれを自動的にセットアップします。コマンド「virsh console NAME」を使用して、シリアルデバイスに接続できます。

私はそれを2つの方法で解決することができました:

  1. iSOイメージを変更し、--cdromオプションを使用する
  2. isoイメージをNFS共有として公開し、--locationオプションを--extra-argsとともに使用する

1。画像の変更

ISOインストールディスクのカーネルパラメータを変更するには:

  1. isomaster のように、画像を操作できるプログラムを取得します。
  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のインストール中に、インストールファイルの場所を尋ねるプロンプトが表示されます。マシンのアドレスと共有へのフルパスを入力する必要があります。

できました。

6
Johnny Baloney

Fedoraインストーラーをテキストモードで実行する必要があります。追加の引数に「テキスト」を追加してみてください。または、「vnc」を追加して、VNC経由でインストーラーに接続できるようにすることもできます。

2
katriel

しばらくの間、cobblerとkoanを使用してインストールを行っています。 cobbler内で、Centos60-x86_64プロファイルでカーネルオプションを次のように設定しました。

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

起動後、console = tty0 console = ttS0,115200を使用して、2つのデバイスでコンソールを表示できます。これはインストールでは機能しません。/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: 

最後に、koanにKVMゲストの1つを構築するように指示すると、次のように--nogfxスイッチで呼び出します。

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

コンソールの設定が間違っていると思います。

たぶんこれまたは同様のものを試してください:

最初に、コンソール行をgrub構成に追加します。 Archゲストの場合:kernel/vmlinuz26 root =/dev/vda2 ro console = ttyS0,115200次に、/ etc/inittabを編集してttyS0(同じArchゲスト)を有効にします:co:23:respawn:/ sbin/agetty -8 115200 ttyS0 Linux。また、/ etc/securettyにttyS0があることを確認してください。

詳細はこちら: ` http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output

-編集-

あなたは試すことができますconsole=ttyS0,115200そしておそらく他の可能なコンソールパラメータをチェックしてください。

1
Jonathan Ross