由於工作得需求,客戶提供redhat 7.4 與redhat 7.6 版本得iso 鏡像,讓定制鏡像上傳到雲平台。 這個制作鏡像得方式適用於多種iso 鏡像。
此文記錄一下雲平台的鏡像制作流程。以供參考
先描述一下我之前做鏡像得方法比較笨: 我是將iso 鏡像通過vmware 創建出一台虛機,對虛機做一些基礎配置。在虛機上安裝kvm 虛擬化得工具, 將iso 鏡像在導入虛機種通過kvm創建一下虛機, 虛機創建出來后會進入安裝得界面無法自己引導安裝, 所以我們通過圖形化界面virt-manager 或者console 方法進入引導得界面,將虛機生產出來,此時得虛機是允許在qcow2 里,然后我對這個鏡像做定制得配置或者按照。------這個辦法比較繁瑣
今天介紹一下簡單的創建qcow2 虛機得方法。
1. 通過vmware 創建新的虛機
2. 創建自定義虛機選擇鏡像
其他選擇默認即可
3. 指定磁盤容量 指定將虛擬磁盤存儲為單個文件
創建起來后是這個信息
4. 選擇使用得鏡像文件 保存開啟虛機
5. 進入虛機部署界面
6. 根據自身需求選擇語言
7. 根據需求自己選擇要安裝得信息
我這里選擇配置時區為上海, 安裝圖形化操作系統
8. 設置手動分區
這里分了兩區,這里分區如果報錯不要用lvm 區分區,選擇done ,保存配置。
9. 選擇安裝
自定義可以生產root 密碼與創建普通用戶
10. 創建完成后重啟虛機,登錄虛機里。
11. 配置ssh 可以登錄。
到此鏡像就准備差不多了,如果需要下載安裝報自己做一個網絡源安裝所需要得軟件包
12. 指定網卡名為eth0 (根據需求來做,需要就做,不需要跳過就好)
修改網卡配置文件
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@localhost network-scripts]# sed -i 's/ens33/eth0/g' ifcfg-eth0
[root@localhost network-scripts]# cat ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=59748da2-300f-41c4-9711-1052e2525cd8
DEVICE=eth0
ONBOOT=no
修改/etc/sysconfig/grub ,給GRUB_CMDLINE_LINUX參數中增加net.ifnames=0 biosdevname=0
[root@localhost ~]# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"
添加udev網卡規則
[root@localhost ~]# vim /etc/udev/rules.d/70-persistent-ipoib.rules
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="32", ATTR{address}=="自己本地得mac地址", NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="32", ATTR{address}=="00:0c:29:ef:1d:b8", NAME="eth0"
生成系統引導文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5ac3927ec296497d93cca4c4ef73aedc
Found initrd image: /boot/initramfs-0-rescue-5ac3927ec296497d93cca4c4ef73aedc.img
done
[root@localhost ~]#
重啟虛機,可以觀察到網卡已經被更正為eth0 端口就
13. 新建網絡源
[root@localhost ~]# cat /etc/yum.repos.d/redhat-aliyun.repo
[aliyun]
name=aliyun
baseurl= https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0
14. 添加多余得硬盤
lsblk 可以查看到新添加得硬盤
創建主分區,fdisk /dev/sdb 、 n 新建分區, p 選擇主分區 ,默認分配所有空間 w 是保存配置。
格式化分區制作文件系統 我們這是ext4 格式得
[root@localhost ~]# mkfs.ext4 /dev/sdb1
創建目錄,掛載分區
[root@localhost ~]# mkdir /mnt/image
[root@localhost ~]# mount /dev/sdb1 /mnt/image
15. 安裝生產鏡像軟件包
[root@localhost ~]# yum install qemu-img -y
將系統盤生成為qcow2鏡像
[root@localhost ~]# qemu-img c onvert -f raw -O qcow2 /dev/sda /mnt/image/redhat7.4.qcow2
[root@localhost ~]# ls /mnt/image/redhat7.4.qcow2
/mnt/image/redhat7.4.qcow2
[root@localhost ~]# qemu-img info /mnt/image/redhat7.4.qcow2
image: /mnt/image/redhat7.4.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 3.7G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
16. 將/mnt/image/redhat7.4.qcow2 拉取下來上傳雲平台即可。 若是需要安裝其他得軟件自行安裝,安裝完在將系統盤生成為qcow2鏡像即可。