• Linux (redhat)封装虚拟机镜像


    Linux (redhat)封装虚拟机镜像


    一、修改主机名

    • 虚拟机
    [root@localhost ~]# hostnamectl set-hostname server1
    [root@localhost ~]# vi /etc/selinux/config
    "SELINUX=enforcing  ->  SELINUX=disabled"
    [root@localhost ~]#
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、配置网络

    • 虚拟机
    [root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=none
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.250
    [root@server1 ~]# vi /etc/resolv.conf
    [root@server1 ~]# cat /etc/resolv.conf
    nameserver 114.114.114.114
    [root@server1 ~]# echo "server1 192.168.0.1" >> /etc/hosts
    [root@server1 ~]# systemctl disable --now firewalld
    [root@server1 ~]# systemctl restart network
    [root@server1 ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    三、配置 yum 源

    • 真实主机
    [root@localhost ~]# yum install -y httpd
    [root@localhost ~]# systemctl start httpd
    [root@localhost ~]# mkdir /var/www/html/repo-local/
    [root@localhost ~]# mount /iso/rhel-7.6.iso /var/www/html/repo-local/
    [root@localhost ~]# echo "/iso/rhel-7.6.iso	/var/www/html/repo-local	iso9660		defaults	0	0" >> /etc/fstab
    [root@localhost ~]# firewall-cmd --permanent --add-masquerade
    [root@localhost ~]# firewall-cmd --permanent --add-service=http
    [root@localhost ~]# firewall-cmd --reload
    [root@localhost ~]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 虚拟机
    [root@server1 ~]# vi test.repo
    [root@server1 ~]# cat test.repo
    [Linux-repo-local]
    name=local-repo
    baseurl=http://192.168.0.250/repo-local/
    gpgcheck=0
    enabled=1
    [root@server1 ~]# yum repolist
    [root@server1 ~]# yum makecache
    [root@server1 ~]# yum install -y bash-* vim
    [root@server1 ~]# poweroff
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    四、制作成镜像

    • 清理虚拟机临时及缓存文件:virt-sysprep -d 虚拟机名

    • 压缩输出文件:virt-sparsify --compress rhel7.6.qcow2 rhel7.6-base.qcow2

    • virt-sparsify:回收 Empty 磁盘空间。
      virt-sparsify 命令行工具可用于生成虚拟机磁盘(或任何磁盘镜像)稀疏。这也被称为精简配置。磁盘镜像上的可用磁盘空间转换为主机上可用空间。
      virt-sparsify 命令可以处理大多数文件系统,如 ext2、ext3、ext4、btrfs、NTFS。它还可用于 LVM 物理卷。virt-sparsify 可以针对任何磁盘镜像操作,而不只是虚拟机磁盘镜像。
      [注]:–compress’ 压缩输出文件。这只有在 输出格式是 ‘qcow2’ 时有效。这个选项不能与 ‘–in-place’ 选项一起使用。

    • virt-sysprep:重置虚拟机设置。
      virt-sysprep 命令行工具可用于重置或取消配置客户机虚拟机,以便从中克隆。这个过程涉及删除 SSH 主机密钥、删除持久网络 MAC 配置和删除用户帐户。virt-sysprep 还可以通过添加 SSH 密钥、用户或徽标来自定义虚拟机。根据需要,可以启用或禁用每个步骤。

    • 真实主机操作:

    [root@localhost ~]# yum install -y libguestfs-tools
    [root@localhost ~]# cd /var/lib/libvirt/images/
    [root@localhost ~]# virt-sysprep -d rhel7.6
    [root@localhost ~]# virt-sparsify --compress rhel7.6.qcow2 rhel7.6-base.qcow2
    [root@localhost ~]# ls
    rhel7.6.qcow2 rhel7.6-base.qcow2
    [root@localhost ~]# qemu-img create -f qcow2 -b rhel7.6-base.qcow2 test.qcow2
    [root@localhost ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    参考文献 :https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/virt-sparsify




  • 相关阅读:
    java继承性
    C# 实现 Linux 视频聊天、远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS)
    MTK Logo 逆向解析之 rawx 全解压
    C#单元测试入门举例
    C# 入坑JAVA 潜规则 大小写敏感文件名和类名 枚举等 入门系列2
    Typora偏好设置中图床的配置文件点击打开没有反应
    【vue+element ui】大屏自适应中el-select下拉内容在低分辨率下显示不全问题解决
    将list中的对象转换为另一个类型的对象
    【Linux】【网络编程】
    入职后快速配置mac方便快速上手业务for研测向
  • 原文地址:https://blog.csdn.net/qq_47714288/article/details/126559924