原虚拟机名称为:OLD_VMNAME
需要修改成:NEW_VMNAME

vmware创建虚拟机时,会以虚拟机名称存储对应的磁盘和配置文件。如果只在vcenter界面上修改虚拟机名称存储端名称是不会修改的(只会修改.vmx文件中的displayName),这样对以后的运维留下隐患。可通过以下方式将存储端修改成对应的名称。

一、虚拟机关机,并从清单移除

二、修改虚拟机目录名称
ssh 登录宿主机,进入虚拟机所在的存储目录
mv OLD_VMNAME/ NEW_VMNAME
cd NEW_VMNAME

三、修改文件夹下的所有虚拟机相关的文件名称
mv OLD_VMNAME.vmx NEW_VMNAME.vmx
mv OLD_VMNAME.vmdk NEW_VMNAME.vmdk
mv OLD_VMNAME-flat.vmdk NEW_VMNAME-flat.vmdk
...

四、修改虚拟机配置文件(xxx.vmx)
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmx

五、修改磁盘配置文件
磁盘相关的文件是以.vmdk结尾,大致有以下几类

5.1 修改系统盘配置文件
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmdk

#如果有快照则同样需要修改快照的配置(名称一般为VM_NAME-00000N.vmdk)
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000002.vmdk
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000003.vmdk
...
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-00000N.vmdk

5.2 修改数据盘配置文件(如果无数据盘,此步骤可忽略)
sed -i 's#OLD_VMNAME_N#NEW_VMNAME_N#g' NEW_VMNAME_M.vmdk

#如果数据盘有快照则同样需要修改快照的配置(名称一般为VM_NAME_M-00000N.vmdk)
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000002.vmdk
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000003.vmdk
...
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-00000N.vmdk

六、修改快照配置文件
VMNAME.vmsd为所有快照的概要信息,记录了快照的目录结构,如下:

VMNAME-SnapshotN.vmsn为每个快照详细信息(N代表第几个快照)。

6.1 修改vmsd配置文件
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmsd

6.2 修改.vmsn配置文件
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-Snapshot1.vmsn
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-Snapshot3.vmsn
...
sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-SnapshotN.vmsn

注:对于有快照的虚拟机以上步骤在VSPHERE6.5的环境操后,在切换快照时任务里提示“无法访问文件 snapshot”,查看日志(/storage/log/vmware/vpxd/vpxd.log)报如下错误:
-----------------------------------------------------------------------------------------------------------------------------------------------------
VpxLRO] -- ERROR task-10169 -- vm-439 -- vim.VirtualMachine.revertToCurrentSnapshot: vim.fault.CannotAccessFile:
--> Result:
--> (vim.fault.CannotAccessFile) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = (vmodl.LocalizableMessage) [
--> (vmodl.LocalizableMessage) {
--> key = "msg.snapshot.vigor.revert.error",
--> arg = (vmodl.KeyAnyValue) [
--> (vmodl.KeyAnyValue) {
--> key = "1",
--> value = "msg.snapshot.error-DUMPER"
--> }
--> ],
--> message = "An error occurred while reverting to a snapshot: Unable to open the snapshot file."
--> }
--> ],
--> file = "snapshot"
--> msg = "Unable to access file snapshot"
-------------------------------------------------------------------------------------------------------------------------------------------------------

由于xxx-SnapshotX.vmsn文件中有部分是乱码,不清楚具体是什么内容,推测和乱码内容有关。

解决方法:
1. 创建新的快照;
2. 利用新快照文件(.vmsn)替换原有的快照文件(cp new.vmsn old.vmsn);(替换去需要记录scsi0:0.fileName信息)
3. 替换完成后,修改快照点的parent磁盘;
scsi0:0.fileName = "VMNAME-00000X.vmdk"

顺便说下快照恢复的过程:
1. 当恢复某个快照时,vmware首先会读取该快照配置文件(VMNAME-SnapshotN.vmsn)中scsi0:0.fileName(disk1)
2. vmware会修改虚拟机配置文件(VMNAME.vmx),生成新的磁盘disk2,磁盘名称为VMNAME-00000N.vmdk,并修改相应的配置(scsi0:0.fileName = "VMNAME-00000N.vmdk")

disk2的parent磁盘为disk1(通过disk2磁盘描述文件可以查看),新的数据会落在disk2上。

vmware修改虚拟机名称的更多相关文章

  1. vmware修改虚拟机网卡mac地址

    选中"虚拟机" 右键 "设置",然后选中"网络适配器",然后点击"高级",设置"MAC地址"

  2. vmware克隆虚拟机后网卡名称及网络地址xiuf

    使用vmware克隆虚拟机后,若原主机网卡名称为eth0,那么克隆后的主机使用ifconfig查看仅能看到一个名称为eth1的网卡 并且在/etc/sysconfig/network-scripts/ ...

  3. virtualbox下正确虚拟机修改设备名称

    在学习大数据管理过程中,想要修改虚拟机的设备名称(因为名称太长),所以就直接在右上角的设置中找到详细设置,直接修改设备名称,结果启动Hadoop失败!!!! 后来参考网上问题解决弄好了,现在给出修改设 ...

  4. 修改虚拟机linux硬盘的大小

    一.概述 Ubuntu用了一段时间,系统已从原来的4G增长到8G,导致虚拟磁盘不够用,需要修改虚拟硬盘的大小. 但是,修改虚拟机硬盘的大小不像修改内存那么简单,操作一个滑动条就轻松搞定.要知道虚拟硬盘 ...

  5. Redis学习之一VMWare Pro虚拟机安装和Linux系统的安装

    一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇关于设计模式的总结的文章了,写完这篇总结性的文章,设计模式的文章就暂时要告一 ...

  6. Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装(转载)(1)

    Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装 一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇 ...

  7. Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装

    一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇关于设计模式的总结的文章了,写完这篇总结性的文章,设计模式的文章就暂时要告一 ...

  8. VMware创建虚拟机教程详解及问题解决

    关于VMware Workstation Pro虚拟机创建教程,本教程主要详细描述使用软件VMware Workstation Pro建虚拟系统过程中步骤详解,以及个人安装时所出现部分问题的解决方案. ...

  9. VMware workstation 虚拟机安装帮助文档(以windows server 2003为例)

    本次安装以Windows server 2003为例: 1.在桌面上双击VMware快捷方式打开,并点击文件>新建虚拟机 2.这里选择默认的“典型”,点击下一步 3.选择浏览,找到windows ...

随机推荐

  1. vue项目在(windowServer)nginx上的部署

    (一) 本地部署. 1.下载phpStudy (http://phpstudy.php.cn/) 2.安装到自己指定盘根目录的文件夹目录,安装完后会用到. 3.运行phpStusy可能报错,需要下载安 ...

  2. jackson对Exception类型对象的序列化与反序列化

    发现问题 今天在调试系统错误通知的时候遇到了一个问题.我们在系统异常时候要通过队列系统发送各种通知到团队内部成员. 因此我写了一个通用接口.接口中有传递Exception对象到队列中,再由队列消费者解 ...

  3. vue中父组件调用子组件的方法

    原文地址 文章目录 什么是组件? 使用组件 组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自 ...

  4. 20190925 - 使 macOS 的 rm 命令删除到回收站的不完美办法

    今天使用 macOS 时,使用 rm 删除了一个不重要文件,为保证以后不删除重要文件,找到一个让 rm 命令更安全的办法. 使用 MacPorts 安装 rmtrash 命令. sudo port i ...

  5. 综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列

    来源:http://t.cn/RVDWcfe 一.资料文档 Kafka:中.有kafka作者自己写的书,网上资料也有一些.rabbitmq:多.有一些不错的书,网上资料多.zeromq:少.没有专门写 ...

  6. 华三F100系列防火墙 、华为USG6300系列防火 GRE 隧道配置

    GRE概述: 通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPV4网络中传输 ...

  7. vscode setting.json (@vue/eslint-config-prettier)

    {     "workbench.colorTheme": "Default Light+", // 主题     "terminal.integra ...

  8. Stream系列(十五)File方法使用

    文件读写 视频讲解:https://www.bilibili.com/video/av78612785/ EmployeeTestCase.java package com.example.demo; ...

  9. PYTHON 100days学习笔记005:总结和练习

    目录 day005:总结和练习 1.寻找水仙花数 2.寻找"完美数" 3."百鸡百钱"问题 4.生成"斐波那契数列" 5.Craps赌博游戏 ...

  10. Linux 网络 I/O 模型简介(图文)(转载)

    Linux 网络 I/O 模型简介(图文)(转载) 转载:http://blog.csdn.net/anxpp/article/details/51503329 1.介绍 Linux 的内核将所有外部 ...