1#!/usr/bin/env bash 2# SPDX-License-Identifier: BSD-3-Clause 3# Copyright (C) 2017 Intel Corporation 4# All rights reserved. 5# 6SYSTEM=$(uname -s) 7size="1024M" 8nvme_disk="/var/lib/libvirt/images/nvme_disk.img" 9preallocation="falloc" 10 11function usage() { 12 echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]" 13 echo "-s <disk_size> with postfix e.g. 2G default: 1024M" 14 echo " for OCSSD default: 9G" 15 echo "-n <backing file name> backing file path with name" 16 echo " default: /var/lib/libvirt/images/nvme_disk.img" 17 echo "-p <mode> allowed values:[off, falloc, full]" 18 echo " default: falloc" 19} 20 21while getopts "s:n:p:t:h-:" opt; do 22 case "${opt}" in 23 -) 24 echo " Invalid argument: $OPTARG" 25 usage 26 exit 1 27 ;; 28 s) 29 size=$OPTARG 30 ;; 31 n) 32 nvme_disk=$OPTARG 33 ;; 34 p) 35 preallocation=$OPTARG 36 ;; 37 h) 38 usage 39 exit 0 40 ;; 41 *) 42 echo " Invalid argument: $OPTARG" 43 usage 44 exit 1 45 ;; 46 esac 47done 48 49if [ "${SYSTEM}" != "Linux" ]; then 50 echo "This script supports only Linux OS" >&2 51 exit 2 52fi 53 54source /etc/os-release 55qemu-img create -f raw "$nvme_disk" -o preallocation="$preallocation" $size 56 57# That's just a wild guess for now 58# TODO: needs improvement for other distros 59qemu_user_group="libvirt-qemu:kvm" 60 61case "$ID" in 62 "fedora") 63 qemu_user_group="qemu:qemu" 64 65 # Change SE Policy 66 sudo chcon -t svirt_image_t "$nvme_disk" 67 ;; 68esac 69 70chmod 777 "$nvme_disk" 71chown $qemu_user_group "$nvme_disk" 72