環境: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