在提供VM给用户使用的时候,可能需要生成一个随机密码供用户第一次登陆VM使用,这就涉及到修改VM映像中root密码的问题。对于Linux映像而言,可以使用qemu-nbd和chroot来进行修改。本文中以CentOS为例(因为ubuntu更加简单)。

宿主机OS:Ubuntu 12.04LTS

VM OS:CentOS 6.2

首先,无论采用何种虚拟化技术,都要生成一个映像文件,可以是raw、qcow2等格式的,这里以kvm为例(因为比较方便,xen要写配置文件太麻烦),生成一个4G的映像文件。

# kvm-img create -f raw centos.img 4G

然后,将下载好的iso文件挂载到VM的光驱上,在映像中安装系统。

# kvm -m 1024 -cdrom CentOS-6.2-x86_64-minimal.iso -drive file=centos.img -boot d -net nic -net tap -nographic -vnc :6

(如果你对kvm不熟,注意:"-vnc"和冒号之间有个空格)

接下来,用VNC打开安装界面,按步骤安装。

# vncviewer 192.168.1.102:6

安装完以后就会进入系统,你可以自定义地配置映像中的系统来满足未来量产的需求。其中,为了能够通过chroot修改root密码,必须关闭SELINUX,否则使用chroot对系统文件进行修改都不会生效,因为受到SELINUX的保护。

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

关闭VM,接下来把映像挂载起来用chroot进行修改。(如果不关机,也可以挂载映像文件并修改VM文件系统里的内容,但是似乎不会生效。)

用mount挂载全虚拟化模式下安装的映像文件是不行的,所以这里就要用到qemu-nbd,这个工具很强大,即便映像文件中的文件系统类型是ntfs的,也可以被挂载起来。

# qemu-nbd --connect=/dev/nbd0 /home/p_w_picpaths/centos.img

(这里的映像文件路径必须是绝对路径,qemu-nbd似乎不能识别相对路径)

# partprobe /dev/nbd0

# mount /dev/nbd0p1 /mnt

(具体分区表请通过fdisk -l /dev/nbd0查看)

挂载完毕后,chroot到/mnt下,然后使用passwd修改root密码

# chroot /mnt

# passwd root

修改完毕后,推出chroot的shell,卸载映像文件。

# exit

# umount /mnt

# qemu-nbd --disconnect /dev/nbd0

启动VM。

# kvm -m 1024 -drive file=centos.img -boot c -net nic -net tap -nographic -vnc :6

再登录VM的时候,会发现root密码已经被修改了。

转载于:https://blog.51cto.com/dchampion/870658

linux VM映像chroot注入修改root密码相关推荐

  1. Linux系统如何在开机时修改root密码

    关键词:Redhat Enterprlse LINUX9.0版本 1.开机后,看到以下画面在此启动界面按下"e"键,该界面停留时间较短,请马上操作. 2.选项可能只有一个,也可能有 ...

  2. 红帽linux改root密码,Redhat 7.6 主机强制修改root密码及配置网关

    最近接到一个需求,做Oracle数据库迁移,但是新环境只有纯操作系统,操作在机房.到了机房才发现,真的只有纯服务器,网线都没插,找了显示器,启动服务器,启动过程可以看到是Redhat7.6的系统,但是 ...

  3. linux进入单用户模式改密码,1.4linux单用户模式下修改root密码和救援模式修改root密码...

    在忘记root密码无法登入系统的情况下,有两种修改root密码的方法. 第一种:进入单用户模式下,直接修改root密码,前提是grub没有设置密码. 第二种:使用安装光盘启动,进入救援模式更改root ...

  4. linux 进入单用户模式修改root密码

    Redhat系统Root密码的修改 一台双系统的机器,忘记redhat 的root密码了.    一.相关方法如下: 1. 开机在出现grub画面,按e键 2. 用上下键选中第二项(类似于kernel ...

  5. Linux下修改root密码以及找回root密码的方法

    linux的root享有至高无上的权力,一旦root密码忘记或者被盗,是一件非常头痛的事情,那么怎么样才能找回root的密码呢,接下来为大家分享下Linux下修改root密码以及找回的方法 以root ...

  6. Linux下的系统排错以及无图形修改root密码

    一.Linux系统引导过程 (1) 开机BIOS(基本输入输出系统)自检,加载硬盘. (2) 读取MBR,进行MBR引导. (3) grub文件引导去寻找boot所在分区(Boot Loader). ...

  7. Linux命令——修改root密码

    Linux命令--修改root密码 连接SSH,提示"SSH服务器拒绝了密码,请再试一次". 解决办法:网上看了修改了sshd_config文件还是没用,最终想直接把密码改了吧 命 ...

  8. linux忘记root密码修改root密码及免登录配置

    Linux系统有7个运行级别(runlevel),分别是运行级别0---6运行级别 (1)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动.其实就是关机. (2)运行级别1:单用 ...

  9. kali linux修改root密码

    稍微有别于其他linux系统,kali linux修改root密码有以下几步: 首先,启动kali linux,grub引导到如下界面时,选择Advanced options for kaliGNU/ ...

最新文章

  1. CI/CD — Overview
  2. GDCM:对dicom文件的简单Scanner的测试程序
  3. 解决win7下netbeans安装的错误问题
  4. matlab将struct和cell转换成matrices
  5. 口红会染唇是什么意思_会涂口红和不会涂口红的女生,区别这么大?!
  6. windows 2003系列之搭建域环境
  7. 什么是信贷风险控制?
  8. PAKDD2020:阿里巴巴算法大赛中的得与失
  9. 解决GTX1050Ti显卡下安装Deepin15.7完成后重启卡logo问题
  10. pc端和移动端两套样式在vue中的切换
  11. 北航计算机学院学硕分数,考研|北航各学院复试分数线陆续公布,原来这个专业分数最高!...
  12. Leetcode中级算法-动态规划01
  13. HTML网页设计文件的组成
  14. 搞砸一个产品的功能安全
  15. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)
  16. 如何在excel2019指定的单元格中插入图片
  17. 关于做产品与做项目的区别
  18. win7更新,360手机安装谷歌框架
  19. 习题 6.12 有一行电文,已按下面规律译成密码:...即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
  20. ISME Comm | 机器学习和深度学习在微生物组研究中的应用

热门文章

  1. nginx同域名代理tomcat不同目录下的文件
  2. css内边距与外边距的区别
  3. mssql,mysql,oracle中查询数据库表的比较
  4. sys和system的区别
  5. 5G NR — 基于 GPS 的时间同步
  6. 5G NGC — 云原生的 5G 核心网架构演进
  7. Openstack-L 路由注入方式
  8. 开源示波器Scopefun介绍、原理图学习
  9. array,vector对象 数组越界检测
  10. Linux环境下进入MySQL环境报权限问题:Access denied for user 'root@localhost' (using password:YSE)...