VMware跨电脑移动Linux虚拟机
环境:VMware-Workstation-12-Pro,Windows-10,CentOS-6.9-x86_64,Xshell5
概况
vmware自带的快照,克隆功能,都可以实现备份虚拟机的功能,以备日后出故障后恢复。但现在
我们希望实现这样一种需求:全新安装CentOS6.9系统,并做好各种优化,然后把该系统压缩成一
压缩包,以后任何时刻虚拟机有故障时,只需解压此压缩包,双击里面的.vmx
文件,即可打开
我们曾经备份好的虚拟机,当然此压缩包也可以放到U盘,移动到其它电脑中使用。
总体来说非常简单,只要进入到虚拟机的安装目录,把所有文件打包压缩一下即可,只是后续使用
时,有些网络上的配置,需要重新设置一下。
全新安装Linux虚拟机常用优化
在vmware中安装虚拟机基本就两个地方需要着重设置,分区和网络。
分区配置
分区采用如下方案即可
swap 768M
/boot 200M
/ 剩余所有
网络配置
网络设置部分是重中之重,设置有误,很容易出现,移植后的虚拟机,无法访问互联网,无法连
接Xshell等故障,那么移植也就失败了,这里我们选择静态IP地址+NAT的上网方案。
vmware虚拟网络编辑器中的设置如下
NAT设置里的内容如下
简单解释下上述设置什么意思。我们可以这样想象,假如我们现在刚组好一套房子,墙壁上提供
一个网口,大致分为如下几个步骤:
- 交钱给房东,把墙上的网口激活。
- 买2根网线,1个路由器,用一根网线把路由器和墙壁上的网口相连。
- 用另一根网线,把笔记本和路由器相连。
- 开始访问互联网。
以上步骤有所简化,不用细究。
现在如果我们打开windows命令行输入ipconfig
就可以看到我们的网络参数,其中比较重要
的几项内容如下:
- 默认网关,这就是我们路由器的IP地址,别人和我们通信时,先找到我们的路由器,然后再
进一步找到,我们的计算机。 - IP地址,就是我们自己机器的本地编号。
- 子网掩码,这是用来识别哪些机器与我们时同一个局域网,在家庭网络情况中,就是插在同
一个路由器上的机器,比如子网掩码是255.255.255.0
,就代表只要是前3段地址和我们
的IP一样,就是一个局域网内的。
由以上分析可见,物理机要想上网,需要一台物理路由器,那么虚拟机需要上网,也需要一台虚
拟路由器,没错NAT就是这个虚拟路由器,在虚拟网络编辑器中,我们为这个虚拟路由器配置了
如下参数:
子网IP: 10.0.0.0
子网掩码: 255.255.255.0
网关: 10.0.0.254
这三个参数表示什么含义呢,首先网关就是路由器的IP地址,为什么是254呢,这是一个习惯用
法,网关不能是10.0.0.255
也不能是10.0.0.0
,这两个地址都有特殊用途,因此1~254
之间的任意一个地址都可以用来作为网关,通常为了方便管理会选择254,子网和子网掩码配合
告诉我们Linux虚拟机里的IP地址只能配置成10.0.0.1~10.0.0.253
,为什么是这样,把子
网掩码转成二进制,前面是24个1,后面是8个0,因此表示子网前24位不能动,作为网络地址,
在去掉两个特殊地址和一个用作路由器的地址。
详细内容需可进一步了解,子网,子网掩码,网关,网络号,主机号,广播地址,网络地址
分析了这么多,主要就是为了告诉读者,上述配置不是一成不变,切勿当成定律一样照搬照抄,
比如网关还可以配置成192.168.1.254
,子网掩码255.255.255.0
,这样我们虚拟机里
静态IP地址就可以配置成192.168.1.1~192.168.1.253
如果反复高频率改动虚拟网络编辑器里的设置,可能会出现确实配置正确但就是无法访问互联网
的情况,此时可以使用虚拟网络编辑器>>还原默认设置,重置网络配置。
在安装CentOS6.9系统时,建议在如下界面就配置好相应网络参数
注意IP地址不要和其它虚拟机重复了,否则就会出现如下错误
最后配置以下DNS,然后/etc/init.d/network restart
重启网卡,ping测试下网络是否连通,
参考配置如下
配置标准yum源和epel
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.backup
wget http://mirrors.aliyun.com/repo/Centos-6.repo
wget http://mirrors.aliyun.com/repo/epel-6.repo
阿里云镜像 https://opsx.alibaba.com/mirror
添加一个普通用户oldboy
useradd oldboy
echo '123456' | passwd --stdin oldboy
关闭SELinux
setenforce 0
sed -i '/^SELINUX=/ s#enforcing#disabled#g' /etc/selinux/config
关闭iptables
/etc/init.d/iptables stop
chkconfig iptables off
安装常用软件
lrzsz - 这个软件可以实现虚拟机与主机互相交换文件。
tree - 树形显示文件
yum install lrzsz tree -y
关闭不需要的开启自启项
只保留crond,sshd,network,rsyslog,sysstat其余服务都关闭
for name in `chkconfig | awk '{print $1}' | \
egrep -v 'crond|sshd|network|rsyslog|sysstat'`; \
do chkconfig $name off; done
配置常用的环境变量
[root@oldboy-50 ~]# tail /etc/profile
# export PS1='[\u@\h \W]\$ '
export PS1='\e[32m[\u@\h \W]\$ \e[0m'
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias mydate='date +%F\ %T'
alias ntp-aliyun='ntpdate ntp1.aliyun.com'
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboy-50 ~]# source /etc/profile
历史命令记录改为1万条
sed -i '/^HISTSIZE=1000$/ s#1000#10000#g' /etc/profile
配置主机名和解析
# hostname as4k
# vim /etc/sysconfig/network
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=as4k
# vim /etc/hosts
# tail -1 /etc/hosts
10.0.0.66 as4k
可以断开Xshell重连,ping as4k
测试。
添加vim配置文件
[root@as4k ~]# cat ~/.vimrc
set tabstop=4
set shiftwidth=4
set expandtab " 使用空格替换TAB
set nocompatible " 关闭兼容模式(无需兼容vi)
set showcmd " 输入的命令显示出来,看的清楚些
hi MatchParen ctermbg=Black guibg=lightblue
" Must Exists
把虚拟机文件打包压缩
全部按照自己的想法优化完毕之后,建议重启确下是否一切OK,然后关机,打开虚拟机配置文件
,
夹,开始压缩。
配置文件路径
上面是我的配置,实际安装路径按照自己的来,确认虚拟机关机后,压缩整个std
目录。
使用压缩好的虚拟机包
在使用时解压,并使用vmware软件打开std.vmx
文件,vmware软件版本最好对应进入虚拟机
之后还需要再配置一下网络参数,否则很容易出现网卡无法重启的故障,自然Xshell更无法连
接了。
打开虚拟机时出下如下界面,点击我已复制该虚拟机。
第1次进入虚拟机会发现,找不到eth0
网卡,不要慌,往下看。
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
,把下图中白线的部分删除,即UUID
和HWADDR,这两个都和硬件地址相关,删除后重启机器系统会自动建立,这里也可把IP地址顺手
修改成自己想要的。
接下来清空/etc/udev/rules.d/70-persistent-net.rules
这个文件,这里面的内容也是和
硬件地址相关的,重启及机器后也会自动重新创建。
> /etc/udev/rules.d/70-persistent-net.rules
重启机器shutdown -r now
,移植操作到此完毕,此后即可正常使用。
有时可能需要删除
\rm /etc/udev/rules.d/70-persistent-net.rules