libvirt:Centos 7 VMの作成:スイッチルートを起動できません。

libvirt:Centos 7 VMの作成:スイッチルートを起動できません。

.NETを使用して同じディストリビューションにCentos 7(1611)の仮想マシンを作成しようとしていますvirt-install。私はサンプルスクリプトを使用しています。Remy van Elstのリスト、ここではいくつかの変更が必要です。

virt-install \
  --name centos7 \
  --ram 1024 \
  --disk path=./centos7.qcow2,size=8 \
  --vcpus 1 \
  --os-type linux \
  --os-variant centos7.0 \
  --network default \
  --graphics none \
  --console pty,target_type=serial \
  --location /media/CentOS \
  --extra-args 'console=ttyS0,115200n8 serial'

このディレクトリ/media/CentOSにはインストールされていますCentOS-7-x86_64-Everything-1611.iso

次の理由で起動プロセスが失敗します。

[FAILED] Failed to start Switch Root.
See 'systemctl status initrd-switch-root.service' for details.

その後、「緊急モード」シェルに入ります。上記のサービスのログは次のとおりです。

:/# systemctl status initrd-switch-root.service -l
● initrd-switch-root.service - Switch Root
   Loaded: loaded (/usr/lib/systemd/system/initrd-switch-root.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2017-04-14 08:17:31 UTC; 19min ago
  Process: 3981 ExecStart=/usr/bin/systemctl --no-block --force switch-root /sysroot (code=exited, status=1/FAILURE)
 Main PID: 3981 (code=exited, status=1/FAILURE)

systemd[1]: Starting Switch Root...
systemctl[3981]: Failed to switch root: Specified switch root path /sysroot does not seem to be an OS tree. os-release file is missing.
systemd[1]: initrd-switch-root.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Switch Root.
systemd[1]: Unit initrd-switch-root.service entered failed state.
systemd[1]: Triggering OnFailure= dependencies of initrd-switch-root.service.
systemd[1]: initrd-switch-root.service failed.

見て/sysroot、明らかにどこにも行かないでしょうos-release

:/# find /sysroot
/sysroot
/sysroot/var
/sysroot/var/lib
/sysroot/var/lib/nfs
/sysroot/var/lib/nfs/rpc_pipefs
/sysroot/var/lib/nfs/rpc_pipefs/gssd
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX/gssd
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX/info
/sysroot/var/lib/nfs/rpc_pipefs/nfsd
/sysroot/var/lib/nfs/rpc_pipefs/cache
/sysroot/var/lib/nfs/rpc_pipefs/nfsd4_cb
/sysroot/var/lib/nfs/rpc_pipefs/statd
/sysroot/var/lib/nfs/rpc_pipefs/portmap
/sysroot/var/lib/nfs/rpc_pipefs/nfs
/sysroot/var/lib/nfs/rpc_pipefs/mount
/sysroot/var/lib/nfs/rpc_pipefs/lockd
/sysroot/boot
/sysroot/boot/initramfs-3.10.0-514.el7.x86_64.img

ここからどのように進むべきかわかりません。インターネット上で同様の内容を説明する投稿をたくさん見ましたが、私の特定の問題や回避策を説明する投稿はないようです。

ベストアンサー1

また、/sysrootが不完全でSwitch Rootが起動しない理由も気になります。結局のところ、ゲストがインストールを引き継いだ後、実際にインストールソースからデータを読み取ることができないことがわかりました。私の場合、原因はvirt-installのネットワーク構成(以下を参照)でした。問題は同じですが、ローカルソースからインストールしたため、原因が異なります。私はこれが問題だと思います(virt-installのマニュアルページから):

DIRECTORY  
    Path to a local directory containing an installable distribution image. Note that the directory will not be accessible by the guest after  initial boot, so the OS installer will need another way to access the rest of the install media.

インストールイメージ/ dvd /ディレクトリパスを含むvirt-installで別の--disk引数を試すことができます。

--disk=path=/path/to/rhel7-dvd.iso,device=cdrom

同じ問題がありますが、ネットワークからインストールしようとしている他の人にとっても、問題は同じです。このソリューションを使用するには、訪問者にIPアドレス(私の場合は固定)を割り当てる必要があります。ただし、--location設定がインストールされているドメイン名を使用したため、問題はすぐに解決されませんでした。また、最終的に動作させるには、--extra-argsにdns引数を含める必要がありました。

sudo virt-install --name test-c7 --ram 2048 --vcpus=1 --os-type=linux --os-variant=centos7.0 --network bridge=br0 --disk size=4 --location http://linux.mirrors.es.net/centos/7/os/x86_64 --graphics none --extra-args="ip=128.97.60.95::128.97.60.1:255.255.255.0:scylla.idre.ucla.edu:eth0:none dns=128.97.62.3 console=tty0 console=ttyS0,115200n8"

おすすめ記事