linux VM映像chroot注入修改root密码
在提供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密码相关推荐
- Linux系统如何在开机时修改root密码
关键词:Redhat Enterprlse LINUX9.0版本 1.开机后,看到以下画面在此启动界面按下"e"键,该界面停留时间较短,请马上操作. 2.选项可能只有一个,也可能有 ...
- 红帽linux改root密码,Redhat 7.6 主机强制修改root密码及配置网关
最近接到一个需求,做Oracle数据库迁移,但是新环境只有纯操作系统,操作在机房.到了机房才发现,真的只有纯服务器,网线都没插,找了显示器,启动服务器,启动过程可以看到是Redhat7.6的系统,但是 ...
- linux进入单用户模式改密码,1.4linux单用户模式下修改root密码和救援模式修改root密码...
在忘记root密码无法登入系统的情况下,有两种修改root密码的方法. 第一种:进入单用户模式下,直接修改root密码,前提是grub没有设置密码. 第二种:使用安装光盘启动,进入救援模式更改root ...
- linux 进入单用户模式修改root密码
Redhat系统Root密码的修改 一台双系统的机器,忘记redhat 的root密码了. 一.相关方法如下: 1. 开机在出现grub画面,按e键 2. 用上下键选中第二项(类似于kernel ...
- Linux下修改root密码以及找回root密码的方法
linux的root享有至高无上的权力,一旦root密码忘记或者被盗,是一件非常头痛的事情,那么怎么样才能找回root的密码呢,接下来为大家分享下Linux下修改root密码以及找回的方法 以root ...
- Linux下的系统排错以及无图形修改root密码
一.Linux系统引导过程 (1) 开机BIOS(基本输入输出系统)自检,加载硬盘. (2) 读取MBR,进行MBR引导. (3) grub文件引导去寻找boot所在分区(Boot Loader). ...
- Linux命令——修改root密码
Linux命令--修改root密码 连接SSH,提示"SSH服务器拒绝了密码,请再试一次". 解决办法:网上看了修改了sshd_config文件还是没用,最终想直接把密码改了吧 命 ...
- linux忘记root密码修改root密码及免登录配置
Linux系统有7个运行级别(runlevel),分别是运行级别0---6运行级别 (1)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动.其实就是关机. (2)运行级别1:单用 ...
- kali linux修改root密码
稍微有别于其他linux系统,kali linux修改root密码有以下几步: 首先,启动kali linux,grub引导到如下界面时,选择Advanced options for kaliGNU/ ...
最新文章
- CI/CD — Overview
- GDCM:对dicom文件的简单Scanner的测试程序
- 解决win7下netbeans安装的错误问题
- matlab将struct和cell转换成matrices
- 口红会染唇是什么意思_会涂口红和不会涂口红的女生,区别这么大?!
- windows 2003系列之搭建域环境
- 什么是信贷风险控制?
- PAKDD2020:阿里巴巴算法大赛中的得与失
- 解决GTX1050Ti显卡下安装Deepin15.7完成后重启卡logo问题
- pc端和移动端两套样式在vue中的切换
- 北航计算机学院学硕分数,考研|北航各学院复试分数线陆续公布,原来这个专业分数最高!...
- Leetcode中级算法-动态规划01
- HTML网页设计文件的组成
- 搞砸一个产品的功能安全
- 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)
- 如何在excel2019指定的单元格中插入图片
- 关于做产品与做项目的区别
- win7更新,360手机安装谷歌框架
- 习题 6.12 有一行电文,已按下面规律译成密码:...即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
- ISME Comm | 机器学习和深度学习在微生物组研究中的应用
热门文章
- nginx同域名代理tomcat不同目录下的文件
- css内边距与外边距的区别
- mssql,mysql,oracle中查询数据库表的比较
- sys和system的区别
- 5G NR — 基于 GPS 的时间同步
- 5G NGC — 云原生的 5G 核心网架构演进
- Openstack-L 路由注入方式
- 开源示波器Scopefun介绍、原理图学习
- array,vector对象 数组越界检测
- Linux环境下进入MySQL环境报权限问题:Access denied for user 'root@localhost' (using password:YSE)...