首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libvirt:创建Centos 7 VM:启动开关根失败

libvirt:创建Centos 7 VM:启动开关根失败
EN

Unix & Linux用户
提问于 2017-04-18 15:37:37
回答 1查看 5.7K关注 0票数 1

我试图使用virt-install在同一个发行版上创建Centos 7 (1611)的VM。我正在使用来自雷米·范·埃斯特的名单的示例脚本,它需要进行一些更改:

代码语言:javascript
复制
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

引导过程失败,原因如下:

代码语言:javascript
复制
[FAILED] Failed to start Switch Root.
See 'systemctl status initrd-switch-root.service' for details.

然后,进入“紧急模式”外壳。上述服务的日志是:

代码语言:javascript
复制
:/# 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

代码语言:javascript
复制
:/# 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

我不知道怎么从这里开始。我在互联网上看到了很多类似的文章,但似乎没有一篇文章描述了我的问题,也没有任何解决办法。

EN

回答 1

Unix & Linux用户

发布于 2017-05-11 02:27:04

我还想知道为什么/sysroot似乎不完整作为失败的开关根启动的一个原因。最终的结果是,一旦客户接管了安装,它实际上就无法从安装源读取。在我的例子中,原因是将网络配置到virt(参见下面),对于您来说,问题是相同的,但是原因与您从本地源安装的原因不同。我认为这就是问题所在(来自virt-install手册页):

代码语言:javascript
复制
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.

您可以尝试使用到virt的另一个--磁盘参数来包含到install映像/dvd/目录的路径。

代码语言:javascript
复制
--disk=path=/path/to/rhel7-dvd.iso,device=cdrom

对于任何有同样问题但试图从网络安装的人来说,问题都是一样的。解决方案需要将ip地址分配给来宾(在我的例子中是静态的)。然而,这也没有立即解决问题,因为我的-位置设置使用的域名安装。我还必须包括一个dns参数到-额外的-args,才能最终实现这个功能。

代码语言:javascript
复制
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"
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/359712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档