如何修改操作系统镜像的密码

如题所述

有两种方式可以解决这个问题:
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镜像中的密码已经修改了。
温馨提示:答案为网友推荐,仅供参考
相似回答