如何修改镜像密码

我有一个镜像文件(qcow2格式/raw格式等等),想使用这个镜像文件创建一个VM,但是忘记密码了,怎么才能重设密码呢?


有两种方式可以解决这个问题:

1)创建VM时通过密码注入的方式将新密码注入(如openstack中使用nova boot时可以使用--admin-pass参数来指定admin密码),这样VM创建起来后就可以用新密码打开了;这个要求镜像中包含cloud init程序,VM起来后通过cloudinit程序获取到metadata数据并修改密码,它修改的是VM的密码,其实镜像中的密码并没有改变;


2)使用挂载的方式,将镜像挂载到现有的Linux系统中,然后通过chroot进行修改密码


以下为第二种解决办法的具体步骤:


0.插入nbd模块,需要使用nbd内核模块
[root@control ~]# insmod nbd.ko max_part=8


1.建立nbd连接,将镜像和qemu-nbd建立连接关系
[root@control ironic]# qemu-nbd -c /dev/nbd0 my-image.qcow2


2.挂载nbd设备到mnt目录
[root@control ironic]# mount /dev/nbd0p1 /mnt


3.进入挂载目录
[root@control ironic]# ls /mnt
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


4.执行chroot
[root@control ironic]# chroot /mnt
[root@control /]# ls



5.修改密码
[root@control /]# passwd 
Changing password for user root.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@control /]# exit
exit


6.解除挂载点
[root@control /]# umount /mnt


7.解除连接
[root@control ironic]# qemu-nbd -d /dev/nbd0p1 


至此,my-image.qcow2镜像中的密码已经修改了。


你可能感兴趣的:(openstack,镜像)