常见问题 FAQ

2021-03-09
8分钟阅读时长

【版本】

当前版本号v20240321

版本修改说明
v20240321把全部问题汇集到此文档

由于常见问题比较多,各位同学可以Ctrl+F打开页面的查找功能来查找问题!

VirtualBox 相关

Q101. VirtualBox 启动错误 “the vm session was closed before any attempt to power it on”

  • 答:点击虚拟机“清除”,清除保存状态。

Q102. VirtualBox 不能为虚拟电脑打开一个新任务:“The VM session was closed before any attempt to power it on”

  • 答:关闭VirtualBox,右键点击VirtualBox图标,并选择“以管理员身份运行” 。

Q103. 遇到 VirtualBox 无法选择仅主机Host-Only网络,或者选择后出错的情况。

  • (1)关闭虚拟机,关闭VirtualBox。以管理员权限运行VirtualBox。
  • (2)从菜单“管理”->“主机网络管理器”
  • (3)创建一个新的网卡
  • (4)在虚拟机的网络设置选择新的网卡。

Q104. 安装完成后,重启又进入安装界面。

答:这是因为没有调整虚拟机的启动顺序,安装以后,硬盘的启动顺序应该在光盘之前。关闭虚拟机,参考步骤36

Q105. 如何对虚拟机进行备份(生成快照)

答: 虚拟机的备份称为快照,允许用户创建快照并且进行恢复。

  • (1)点击虚拟机的选项菜单,点击备份

  • (2)点击生成,输入快照名称和描述,可以创建快照。

如果需要恢复,可以右键点击对应的快照,选择恢复备份

Q106. 打开VirtualBox 遇到“UUID-{00000000-0000-0000-0000-000000000000} has zero format.”错误

答:

  • (1)按照消息的提示,用文本编辑器打开C:\Users\你的用户名\.VirtualBox\VirtualBox.xml

  • (2)按消息提示找到UUID="{00000000-0000-0000-0000-000000000000}"这一行,如下参考代码,删除以后,保存VirtualBox.xml。

<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="E:\VirtualBoxImages\rockylinux8_8\rockylinux8_8.vbox"/>
  • (3)再次打开VirtualBox。

Q107. 打开 VirtualBox 虚拟机出现 Runtime error opening XXXX for overwriting VERR ACCESS DENIED(Access denied.)

答: 这是因为存放VirtualBox虚拟机文件的目录没有写入权限导致的。

  • (1)首先打开 VirtualBox 存放虚拟机文件的目录。

  • (2)右键点击该目录,选择“属性”。

  • (3)选中“安全”选项卡,编辑权限。

  • (4)添加用户,你当前的用户名可以在“命令提示符”(CMD)

  • (5)输入用户名,检查名称。

  • (6)选中用户名,并且勾选“完全控制”选项。点击“应用按钮”,把权限应用到目录。

Q109. VirtualBox 无法打开运行虚拟机,提示“VERR_INVALID_NAME(-104) - Invalid(malformed) file/path name.”错误,或者VirtualBox后找不到对应的虚拟网卡。

答:

  • (1)在 Windows 系统控制面板下,卸载 Virtualbox。

  • (2)安装 CCCleaner 扫描注册表。

  • (3)清理注册表前选择备份注册表。

  • (4)清理注册表。

  • (5)重启 Windows系统,并重新安装 Virtualbox。

  1. 安装 Virtualbox 后找不到对应的虚拟网卡。 答:参考上面常见问题13

网络相关

Q206. FinalShell 连接不上虚拟机

答:

  • (1)检查虚拟机 IP 地址是否 10.0.0.70,在虚拟机输入以下命令
ip a
  • (2)检查虚拟机对应的虚拟网络适配器(网卡)的IP设置。
IP:10.0.0.2
掩码:255.255.255.0
网关:10.0.0.254

系统相关

Q301. 安装软件失败提示Error dowloading packages或者 [Errno 256] No more mirrors to try.

答:这是因为没有正确挂载光盘内的镜像文件导致的。

  • (1)查看虚拟机是否已经插入 RockyLinux 的安装镜像虚拟光盘。

  • (2)查看/mnt目录下是否有内容。如果没有内容需要执行第3步的重新挂载。

ls /mnt

正常状况下应该可以查看到光盘的内容。

  • (3)重新把光盘内容挂载到/mnt目录。
mount /dev/cdrom /mnt
  • 正常会返回以下挂载成功消息。
mount:/dev/sr0 is write-protected, mounting read-only
  • (4)刷新源的缓存,再重新尝试安装软件。
dnf clean all
dnf makecache

Q302. 如何查看 CentOS 虚拟机网卡信息。

ip a

Q303. 如何启用网卡

遇到网卡没有开机启用的情况,可以编辑网卡设置。如果网卡名称为enp0s3,则可以使用以下命令编辑enp0s3网卡配置。如果网卡名称不同,则需要修改以下命令为相应网卡名。

  • (1)先提升root权限
su
  • (2)编辑配置
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
  • (3)把 ONBOOT=no 修改为 ONBOOT=yes

  • (4)重启网络管理器

systemctl restart NetworkManager

Q304. 如何修改网卡的 IP 地址

  • (1)先提升root权限
su
  • (2)编辑配置,如果网卡名称为enp0s3,则可以使用以下命令编辑enp0s3网卡配置。如果网卡名称不同,则需要修改以下命令为相应网卡名。
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
  • (3)修改以下选项,并保存。
#IP 地址
IPADDR="10.0.0.70"
#掩码
PREFIX="24"
#网关
GATEWAY="10.0.0.254"
#DNS地址
DNS1="223.5.5.5"
  • (4)重启网络服务
sudo nmcli c reload
  • (5)再次查看IP地址是否更改成功
ip a

Q305. 实现开机挂载/mnt目录

  • (1) 提升到 root 权限
su
  • (2) 执行以下命令
echo 'mount /dev/cdrom /mnt'>> /etc/rc.local
sudo chmod +x /etc/rc.local
source /etc/rc.local

Q306. 挂载/mnt不成功,提示找不到媒体。

[root@tmpl ~]# mount /dev/cdrom /mnt
mount: 在 /dev/sr0 上找不到媒体

答: (1)检查虚拟光驱是否已经插入镜像文件。

(2)解挂,再重新挂载。

umount /mnt
mount /dev/cdrom /mnt

Q307. 安装软件不成功,提示“Error downloading packages:” 或者“ No more mirrors to try”

答:

  • (1)检查虚拟光驱是否已经插入镜像文件。

  • (2)解挂,再重新挂载。

umount /mnt
mount /dev/cdrom /mnt
  • (3)检查源的内容是否正确。
cat /etc/yum.repos.d/local.repo 

正常会展示以下内容

[local-openstack-yoga]
name=Openstack Yoga
baseurl=file:///opt/repo/openstack-yoga
gpgcheck=0
enabled=1
gpgkey=0

[local-baseos]
name=Rocky Linux $releasever - Local - BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[local-appstream]
name=Rocky Linux $releasever - Local - AppStream
baseurl=file:///mnt/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
  • (4)清理源缓存
dnf clean all
dnf makecache
  • (5)重新执行安装命令

OpenStack命令相关

Q401. “-bash: openstack: 未找到命令”

  • 答:未安装 openstack 客户端,执行以下命令安装
dnf install python-openstackclient openstack-selinux -y

Q402. 执行 openstack 命令遇到“Missing value auth-url required for auth plugin password” 或者 “Missing parameter(s): ”错误,如下图和代码所示。

Missing parameter(s): 
Set a username with --os-username, OS_USERNAME, or auth.username
Set a scope, such as a project or domain, set a project scope with --os-project-name, OS_PROJECT_NAME or auth.project_name, set a domain scope with --os-domain-name, OS_DOMAIN_NAME or auth.domain_name
  • 答:运行以下命令执行环境变量
source /etc/keystone/admin-openrc

Q403. 错误“publicURL endpoint for compute service not found”

  • 答:运行一下命令,查看是否有 Nova 服务(Service)。
openstack service list|grep nova
  • 如果没有可以执行以下命令创建 Nova 服务(Service)。
openstack service create --name nova  --description "OpenStack Compute" compute

Q404. 错误“Could not determine a suitable URL for the plugin”

  • 答:使用以下命令检查 keystone 的 endpoint
openstack endpoint list|grep -E 'ID|keystone'
  • 正常的 endpoint 类似以下所示
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL   
| 0474f429a13f4e39b10239aca9f878e4 | RegionOne | keystone     | identity     | True    | admin    | http://controller999:5000/v3 |
| 200aa266832f462ca9307a54db0aadb5 | RegionOne | keystone     | identity     | True    | public   | http://controller999:5000/v3  |
| 7c989fa05c004b579a9ebe10f627def9 | RegionOne | keystone     | identity     | True    | internal | http://controller999:5000/v3  |

Q405. openstack-nova-compute 无法启动,提示 “ERROR nova.virt.driver [-] Compute driver option required, but not specified”。

答:主要原因是缺少这行配置,请运行一下命令。参考链接

openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriver

Q406. openstack-nova-compute 无法启动,提示“Timed out waiting for a reply to message ID”

答:这有可能是因为控制节点和计算节点时间不同步,导致 RabbitMQ 队列响应超时。

  • (1)请分别检查控制节点和计算节点时间是否同步。
date

  • (2)如果无法同步,使用时间修改命令进行更改,参考时间修改命令
  • (3)按顺序重启以下进程
#控制节点
rabbitmq-server
openstack-nova-conductor
openstack-nova-scheduler

#计算节点
openstack-nova-compute

Q407. 登录 Dashboard(Horizon) Web界面提示身份验证令牌已经过期

请使用 timedatectl 命令校准控制节点和计算节点的时间,或者通过宿主机同步时间来进行校准。

Q408. 登录 Dashboard(Horizon) 提示无法连接 Keystone

请检查计算节点下 /var/log/httpd/error_log 查看具体信息进行诊断。可能原因有:

  • (1)计算节点访问不了控制节点的 Keystone Endpoint(端口5000)
  • (2)控制节点关于 Keystone 的 service 或 endpoint 配置重复或错误。

Q409. 登录 Dashboard(Horizon) 的页面没有显示域(Domain)

local_settings配置文件中找到OPENSTACK_KEYSTONE_DEFAULT_DOMAIN选项(如果没有则新增),注意去掉前面注释的#号,通过仪表盘创建用户时的默认域配置为 default。

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'

Q410. 使用 admin 账号登录 Dashboard(Horizon) 的页面显示“凭据无效”

  • (1)首先检查 openstack 中关于 keystone 的endpoint是否有问题。
source /etc/keystone/admin-openrc
openstack endpoint list|grep -E 'ID|keystone'
  • 可以看到类似以下结果(其中XXX是你学号后3位):
| Service Name | Service Type | Interface | URL                          |
| keystone     | identity     | admin     | http://controllerXXX:5000/v3|
| keystone     | identity     | public    | http://controllerXXX:5000/v3 |
| keystone     | identity     | internal  | http://controllerXXX:5000/v3 |
  • (2)检查是否能够查看 keystone 的 token,
source /etc/keystone/admin-openrc
openstack token issue

类似结果:

+------------+-------------------------------------------------+
| Field      | Value                                           |
+------------+-------------------------------------------------+
| expires    | 2021-03-24T08:27:30.000000Z                     |
| id         | gAAAAABgWunifA_DeD3mcJMerIIFLqXy7tajYuAmAVvM1pM |
|            | 9yTeRaM5gXVDImlqbrivC1IwtpxtJR2Gq6EHMJ1iSZ10iRa |
|            | dJzqZWYjoWLha-bSlbqb3y0Iyzo-                    |
|            | liAC02tVsiv6ZPge4KXndvwxTk79_dkw--              |
|            | zvXUlKmM5SY68n2eQZttddTcPSQ                     |
| project_id | 70667e2a19c640b796c9e2de6571a33c                |
| user_id    | 5b74a6845f264ae9912b78d4a32f5f73                |
+------------+-------------------------------------------------+
  • (3)打开local_settings 配置文件,在OPENSTACK_API_VERSIONS检查配置。
vim /etc/openstack-dashboard/local_settings

配置如下:

OPENSTACK_API_VERSIONS = {
     "data-processing": 1.1,
     "identity": 3,
     "image":2,
     "volume": 3,
     "compute": 2,
 }

Q411. 启动 Apache(httpd) 失败。

答 :可以在控制节点上查看 httpd 的日志诊断错误。

tail -100 /var/log/httpd/openstack_dashboard-error.log 

Q412. 控制节点 ping Openstack 的实例无响应,或者分配了错误的IP。

答:

  • (1)检查该实例是否者已启动并且活跃(Active)。

  • (2)检查虚拟机的网卡混合模式是否为全部允许,参考此步骤

  • (3)查看该实例分配到IP,这里以10.0.0.215为例。

  • (4)进入Openstack 实例的控制台。

  • (5)使用账户密码cirros/gocubsgo登录Cirros。

  • (6)在 Cirros 上面执行以下命令手动配置IP。请使用你的IP替换10.0.0.215,其中/24表示的是子网掩码

sudo ip a add 10.0.0.215/24 dev eth0

Q413. 使用 SSH 登录 CirrOS 实例没有免密登录,需要输入用户名和密码。

答:检查 Neutron 的配置文件/etc/neutron/metadata_agent.ini是否配置正确。查看Part 7 的步骤19,20

Q414. 创建的 OpenStack 虚拟机实例提示“Host is not mapped to any cell”错误。

答: 这可能是因为 OpenStack 的计算节点没有映射到任何单元(Cell),可以在控制节点运行以下命令,再尝试重新创建实例。

nova-manage cell_v2 discover_hosts --verbose
  • 正常会提示类似以下消息:
Found 2 cell mappings.
Getting computes from cell 'cell1': 03746a84-850f-4f7d-8467-970461437001
Found 0 unmapped computes in cell: 03746a84-850f-4f7d-8467-970461437001
Skipping cell0 since it does not contain hosts.

Q415. cirros 实例无法正常启动,提示not syncing: I0-APIC + timer doesn't work的错误。

答: 解决方法一:通过修改 cirros 虚拟机的参数禁用 APIC 检查

  • (1)关闭实例,并查看实例ID。以下命令在控制节点运行。
openstack server list
openstack server stop 实例名称

  • (2)在实例所在的计算节点编辑实例配置,配置的格式是XML格式。
virsh edit 实例ID

  • (3)此时已经使用 vi 打开了cirros虚拟机配置文件。找到以下内容,把其中内容进行注释。
  • 找到以下这段配置内容
  <features>
    <acpi/>
    <apic/>
  </features>
  • 注释掉<acpi/><apic/>标签
  <features>
    <!--
	<acpi/>
    <apic/>
	-->
  </features>
  • (5)保存并退出编辑。exit命令可以退出virsh客户端。
exit
  • (6)重启实例。

扫码或长按识别访问