在使用Qemu&KVM的时候,除了能通过下载正常ISO镜像自己制作qcow2格式镜像外,还可以通过官方给出的网站直接下载qcow2的镜像,但是qcow2镜像的密码在使用前需要修改一下,否则无法登陆系统
一、下载镜像
通过镜像网站下载合适镜像,这里给大家提供一个镜像网站
https://mirrors.ustc.edu.cn/
二、安装guestfish相关软件
apt-get install guestfish libguestfs-tools -y
三、用openssl生成密码的哈希值
这里假设用户密码为123456
root@controller:~# openssl passwd -1 123456
$1$fyhDdJd5$j5ul5YBIiskv8eVtUZhXO. #这是生成的密码哈希值,复制后一会儿替换到shadow文件中
四、挂载运行需改密码的镜像
root@controller:~# guestfish --rw -a exam.qcow2
Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.
Type: ‘help’ for help on commands
‘man’ to read the manual
‘quit’ to quit the shell
><fs> run
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
><fs> list-filesystems #查看镜像分区信息
/dev/sda1: xfs
><fs> mount /dev/sda1 / #挂载sda1分区到/目录
><fs> vi /etc/shadow #用上方生成的密码哈希值替换下图圈出位置
><fs> quit #保存退出,该镜像现在的root用户登录密码为123456
五、验证
将修改后的镜像上传到Openstack平台或使用KVM进行验证,下面以Openstack平台进行验证
1、上传镜像
glance image-create --name exam \
--disk-format qcow2 --container-format bare \
--progress <./exam.qcow2
[=============================>] 100%
+------------------+----------------------------------------------------------------------------------+
| Property | Value |
+------------------+----------------------------------------------------------------------------------+
| checksum | e098998a68cd7d7db9ea5067295100a5 |
| container_format | bare |
| created_at | 2023-09-20T02:15:30Z |
| disk_format | qcow2 |
| id | e3336bdd-06b3-4e8c-8f44-2ecd869dc2e5 |
| min_disk | 0 |
| min_ram | 0 |
| name | exam |
| os_hash_algo | sha512 |
| os_hash_value | c0efa9b784967c73aca670f8db1bdc2f94e6becbfe685ae97418dcc4360904d271270243b39b973b |
| | f39196b8a8736e27a9e6511b6cdb85d95051b14341853174 |
| os_hidden | False |
| owner | e9af856c4210432dac35bbc8127765fa |
| protected | False |
| size | 615710720 |
| status | active |
| tags | [] |
| updated_at | 2023-09-20T02:15:35Z |
| virtual_size | 42949672960 |
| visibility | shared |
+------------------+----------------------------------------------------------------------------------+
2、创建实例
root@controller:~# openstack server create --image exam --flavor test --network ext test-server
+-------------------------------------+---------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | |
| OS-EXT-STS:power_state | NOSTATE |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | WJnr5VxzZ2aP |
| config_drive | |
| created | 2023-09-20T02:18:18Z |
| flavor | test (cc42047d-0958-4d4a-bdce-b77fe8cdddb7) |
| hostId | |
| id | 0e77fc99-9eea-48a8-931e-edc741d8c079 |
| image | exam (e3336bdd-06b3-4e8c-8f44-2ecd869dc2e5) |
| key_name | None |
| name | test-server |
| progress | 0 |
| project_id | e9af856c4210432dac35bbc8127765fa |
| properties | |
| security_groups | name='default' |
| status | BUILD |
| updated | 2023-09-20T02:18:18Z |
| user_id | 8f99a870714b468c9c1500e6ff41f90c |
| volumes_attached | |
+-------------------------------------+---------------------------------------------+
3、验证登录
openstack console url show test-server #通过该命令查看实例vnc链接
+----------+-----------------------------------------------------------------------------------------------+
| Field | Value |
+----------+-----------------------------------------------------------------------------------------------+
| protocol | vnc |
| type | novnc |
| url | http://192.168.200.99:6080/vnc_auto.html?path=%3Ftoken%3D744f5bd3-dc42-4163-b549-53d0299b52c4 |
+----------+-----------------------------------------------------------------------------------------------+
通过浏览器访问上方URL链接