added support for different filesystems in qcow2 imaging strapdir

This commit is contained in:
Jaromil 2017-07-19 16:58:32 +02:00
parent 0e3297bb7e
commit 18f4c0b072
1 changed files with 13 additions and 3 deletions

16
zlibs/imaging Normal file → Executable file
View File

@ -19,7 +19,8 @@
## imagine images
vars+=(image_name bootpart rootpart loopdevice)
vars+=(image_name bootpart rootpart loopdevice filesystem)
arrs+=(fsargs)
image_prepare_raw() {
fn image_prepare_raw
@ -194,7 +195,10 @@ image_qcow2_as_strapdir() {
pushd "$workdir"
notice "creating qcow2 image of $size MB"
# default filesystem fallback to ext4
filesystem=${filesystem:-ext4}
notice "creating qcow2 image of $size MB formatted with $filesystem"
rm -f base.qcow2
qemu-img create -f qcow2 base.qcow2 ${size}M || zerr
sudo modprobe nbd max_part=8 || zerr
@ -202,10 +206,16 @@ image_qcow2_as_strapdir() {
[ -n "$loopdevice" ] || zerr
act "$loopdevice"
sudo qemu-nbd --connect=${loopdevice} base.qcow2 || zerr
notice "partitioning"
sudo parted ${loopdevice} mktable msdos || zerr
sudo parted ${loopdevice} mkpart primary '0%' '100%' || zerr
sudo mkfs.ext4 ${loopdevice}p1 || zerr
notice "formatting with $filesystem"
command -v mkfs.${filesystem} >/dev/null || {
error "filesystem tools not found in path: mkfs.${filesystem}"
zerr }
sudo mkfs.${filesystem} ${=fsargs} ${loopdevice}p1 || zerr
notice "mounting qcow2 image to strapdir"
sudo mount ${loopdevice}p1 $strapdir || zerr