【版本】
当前版本号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。
- 安装 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)重启实例。