mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 05:35:20 +00:00
scripts: Add a script to automate the custom image construction
Only for x86-64 right now but does include support for custom VFIO image. Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
This commit is contained in:
parent
92e48f7cf6
commit
c162494867
63
scripts/build-custom-image.sh
Normal file
63
scripts/build-custom-image.sh
Normal file
@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=SC2046,SC2086,SC2155
|
||||
|
||||
set -ex
|
||||
|
||||
#VFIO_CUSTOM_IMAGE="-vfio"
|
||||
|
||||
mkdir -p custom-image
|
||||
pushd custom-image || exit
|
||||
wget -N https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
|
||||
export IMAGE_NAME_BASE=jammy-server-cloudimg-amd64
|
||||
qemu-img convert -p -f qcow2 -O raw $IMAGE_NAME_BASE.img $IMAGE_NAME_BASE.raw
|
||||
if [ -n "$VFIO_CUSTOM_IMAGE" ]; then
|
||||
qemu-img resize -f raw "$IMAGE_NAME_BASE.raw" 5G
|
||||
sudo sgdisk -e "$IMAGE_NAME_BASE.raw"
|
||||
sudo parted "$IMAGE_NAME_BASE.raw" resizepart 1 5369MB
|
||||
fi
|
||||
mkdir -p mnt
|
||||
export ROOTFS=/dev/mapper/$(sudo kpartx -v -a $IMAGE_NAME_BASE.raw | grep "p1 " | cut -f 3 -d " ")
|
||||
if [ -n "$VFIO_CUSTOM_IMAGE" ]; then
|
||||
sudo e2fsck -f "$ROOTFS"
|
||||
sudo resize2fs "$ROOTFS"
|
||||
fi
|
||||
sudo mount $ROOTFS mnt
|
||||
sudo mv mnt/etc/resolv.conf mnt/etc/resolv.conf.backup
|
||||
|
||||
touch extra_commands
|
||||
|
||||
if [ -n "$VFIO_CUSTOM_IMAGE" ]; then
|
||||
cat >extra_commands <<EOF
|
||||
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
|
||||
sudo dpkg -i cuda-keyring_1.1-1_all.deb
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install cuda-drivers
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat >script <<EOF
|
||||
#!/bin/bash
|
||||
set -xe
|
||||
mount -t proc proc /proc
|
||||
mount -t devpts devpts /dev/pts
|
||||
echo "nameserver 1.1.1.1" > /etc/resolv.conf
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt update
|
||||
apt install -y fio iperf iperf3 socat stress cpuid tpm2-tools kexec-tools
|
||||
apt remove -y --purge snapd pollinate
|
||||
source extra_commands
|
||||
umount /dev/pts
|
||||
umount /proc
|
||||
history -c
|
||||
exit
|
||||
EOF
|
||||
|
||||
sudo cp script extra_commands mnt
|
||||
sudo chmod +x mnt/script
|
||||
sudo chroot mnt ./script
|
||||
sudo mv mnt/etc/resolv.conf.backup mnt/etc/resolv.conf
|
||||
sudo umount mnt
|
||||
sudo kpartx -d $IMAGE_NAME_BASE.raw
|
||||
cp $IMAGE_NAME_BASE.raw $IMAGE_NAME_BASE-custom$VFIO_CUSTOM_IMAGE-$(date "+%Y%m%d")-0.raw
|
||||
qemu-img convert -p -f raw -O qcow2 $IMAGE_NAME_BASE-custom$VFIO_CUSTOM_IMAGE-$(date "+%Y%m%d")-0.raw $IMAGE_NAME_BASE-custom$VFIO_CUSTOM_IMAGE-$(date "+%Y%m%d")-0.qcow2
|
||||
popd || exit
|
Loading…
Reference in New Issue
Block a user