Spdk/scripts/vagrant/create_nvme_img.sh
Michal Berger 5e244e25f0 scripts/vagrant: Replace lsb_release with os-release check
lsb_release is not shipped under latest fedora distros, hence failing
this check. Use /etc/os-release instead.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Id74095ff5dd5d43f7a97e4c5d026ac13da26d815
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15107
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com>
2023-05-09 17:58:11 +08:00

72 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2017 Intel Corporation
# All rights reserved.
#
SYSTEM=$(uname -s)
size="1024M"
nvme_disk="/var/lib/libvirt/images/nvme_disk.img"
preallocation="falloc"
function usage() {
echo "Usage: ${0##*/} [-s <disk_size>] [-n <backing file name>]"
echo "-s <disk_size> with postfix e.g. 2G default: 1024M"
echo " for OCSSD default: 9G"
echo "-n <backing file name> backing file path with name"
echo " default: /var/lib/libvirt/images/nvme_disk.img"
echo "-p <mode> allowed values:[off, falloc, full]"
echo " default: falloc"
}
while getopts "s:n:p:t:h-:" opt; do
case "${opt}" in
-)
echo " Invalid argument: $OPTARG"
usage
exit 1
;;
s)
size=$OPTARG
;;
n)
nvme_disk=$OPTARG
;;
p)
preallocation=$OPTARG
;;
h)
usage
exit 0
;;
*)
echo " Invalid argument: $OPTARG"
usage
exit 1
;;
esac
done
if [ "${SYSTEM}" != "Linux" ]; then
echo "This script supports only Linux OS" >&2
exit 2
fi
source /etc/os-release
qemu-img create -f raw "$nvme_disk" -o preallocation="$preallocation" $size
# That's just a wild guess for now
# TODO: needs improvement for other distros
qemu_user_group="libvirt-qemu:kvm"
case "$ID" in
"fedora")
qemu_user_group="qemu:qemu"
# Change SE Policy
sudo chcon -t svirt_image_t "$nvme_disk"
;;
esac
chmod 777 "$nvme_disk"
chown $qemu_user_group "$nvme_disk"