# virt-filesystems -l -h -a Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 Name Type VFS Label Size Parent /dev/sda1 filesystem vfat - 100M - /dev/sda2 filesystem xfs boot 994M - /dev/sda4 filesystem xfs - 8.9G - |
# virt-filesystems -l -h --all -a Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 Name Type VFS Label MBR Size Parent /dev/sda1 filesystem vfat - - 100M - /dev/sda2 filesystem xfs boot - 994M - /dev/sda3 filesystem unknown - - 1.0M - /dev/sda4 filesystem xfs - - 8.9G - /dev/sda1 partition - - - 100M /dev/sda /dev/sda2 partition - - - 1000M /dev/sda /dev/sda3 partition - - - 1.0M /dev/sda /dev/sda4 partition - - - 8.9G /dev/sda /dev/sda device - - - 10G - |
# qemu-img create -f raw disk.raw 50G Formatting 'disk.raw', fmt=raw size=53687091200 # qemu-img convert -f raw -O qcow2 disk.raw disk.qcow2 # qemu-img info disk.qcow2 image: disk.qcow2 file format: qcow2 virtual size: 50 GiB (53687091200 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false |
# qemu-img resize disk.qcow2 +10G Image resized. # qemu-img resize disk.qcow2 -10G qemu-img: Use the --shrink option to perform a shrink operation. # qemu-img resize --shrink disk.qcow2 -10G Image resized. # qemu-img resize disk.qcow2 100G Image resized. |
sparse thin-provisioned disk (reduce the size)
# virt-sparsify indisk outdisk |
# qemu-img convert -f qcow2 -O qcow2 indisk.qcow2 outdisk.qcow2 |
virt-customize -a Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 \ --hostname vdtn01 \ --root-password file:password.txt \ --ssh-inject root:file:mgr.pub \ \ --timezone Asia/Seoul \ \ --install vim,wget,unzip,tar,gzip,tmux,tree,git,zsh,sqlite,net-tools,ipmitool,lshw,inxi,htop,hwloc-gui \ \ --copy-in /oh-my-zsh:/ \ --copy /oh-my-zsh/templates/zshrc.zsh-template:/root/.zshrc \ --copy /oh-my-zsh/templates/zshrc.zsh-template:/etc/skel/.zshrc \ --run-command "sed -e 's#bash#zsh#g' -i /etc/passwd; echo" \ --run-command "sed -e 's#bash#zsh#g' -i /etc/default/useradd; echo" \ \ --copy-in sysctl/97-net-tune-over-10g.conf.disabled:/etc/sysctl.d/ \ --copy-in sysctl/97-net-tune-over-1g.conf.disabled:/etc/sysctl.d/ \ --copy-in sysctl/97-net-tune-over-40g.conf.disabled:/etc/sysctl.d/ \ --copy-in sysctl/98-ipv6-disable.conf.disabled:/etc/sysctl.d/ \ \ --run-command "[ ! -f /etc/ssh/sshd_config.bak ] && cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak; echo" \ --upload sshd_config:/etc/ssh/sshd_config \ \ --selinux-relabel |
sysprep : system preparation
virt-sysprep - reset, unconfigure or customize a virtual machine so clones can be made
# virt-sysprep -a vdtn01.qcow2 |
default operation exclude ssh-userdir
# virt-sysprep -a vdtn01.qcow2 --operations defaults,-ssh-userdir |
# virt-ls -a vdtn01.qcow2 /etc/sysconfig/network-scripts ifcfg-eth0 # virt-cat -a vdtn01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 ... # virt-edit -a vdtn01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 |