1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
qemu-img permission denied on vmdk creation on CIFS share
- on a CIFS mount qemu-img claims not to have permissions to write into a file.
- VMDK sparse file creation succeeds
- VMDK Flat file creation create the flat-file, but fails to write the description-file
- VMDK flat file creation succeeds on native linux mount such as ~/tmp or /tmp
- same effect as root or non-root
- same effect with selinux setenforce 0
a) I would have expected that the monolithic flat would have created only one large file just like sparse, but it seems to create a description file, in addition to the storing file.
b) I am aware that qemu-img may have problem opening very large files on CIFS, however, this file is not very large
Windows-10 latest updated 2004 19041.388
Linux VM, Fedora-32 in Virtualbox 6.1.12
# rpm -qa | grep qemu-img
qemu-img-4.2.0-7.fc32.x86_64
mount options:
mount -t cifs //10.x,x,x/$shname /mnt/hshare -o defaults,username=gana,rw,uid=1000,gid=1000,vers=3.0
[root@fedora ~]# cd /mnt/hshare/some/folder/createvmdk/
[root@fedora createvmdk]# qemu-img create -f vmdk test1.vmdk 100M -o subformat=monolithicFlat
Formatting 'test1.vmdk', fmt=vmdk size=104857600 compat6=off hwversion=undefined subformat=monolithicFlat
qemu-img: test1.vmdk: Could not write description: Permission denied
[root@fedora createvmdk]# ls -l test1*.*
-rwxr-xr-x. 1 gana gana 104857600 Jul 26 23:02 test1-flat.vmdk
-rwxr-xr-x. 1 gana gana 0 Jul 26 23:02 test1.vmdk
[root@fedora createvmdk]# du -k test1*.*
0 test1-flat.vmdk
0 test1.vmdk
# (doesn't seem to be really flat)
creation in /tmp works
# cd /tmp
[root@fedora tmp]# qemu-img create -f vmdk test1.vmdk 100M -o subformat=monolithicFlat
Formatting 'test1.vmdk', fmt=vmdk size=104857600 compat6=off hwversion=undefined subformat=monolithicFlat
[root@fedora tmp]# ls -l /tmp/test1*.*
-rw-r--r--. 1 root root 104857600 Jul 26 22:43 /tmp/test1-flat.vmdk
-rw-r--r--. 1 root root 313 Jul 26 22:43 /tmp/test1.vmdk
[root@fedora createvmdk]# du -k /tmp/test1*.*
4 /tmp/test1-flat.vmdk
4 /tmp/test1.vmdk
[root@fedora createvmdk]# cat /tmp/test1.vmdk
# Disk DescriptorFile
version=1
CID=5f13c13d
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 204800 FLAT "test1-flat.vmdk" 0
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "203"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
On the other-hand creating a sparse file works
cd /mnt/hshare/some/folder/createvmdk/
[root@fedora createvmdk]# qemu-img create -f vmdk test2.vmdk 100M -o subformat=monolithicSparse
Formatting 'test2.vmdk', fmt=vmdk size=104857600 compat6=off hwversion=undefined subformat=monolithicSparse
[root@fedora createvmdk]# ls l test2*.*
-rwxr-xr-x. 1 gana gana 65536 Jul 26 22:52 test2.vmdk
[root@fedora createvmdk]# du -k /tmp/test2*.*
12 /tmp/test2.vmdk
test2.vmdk is a binary file
inside it, located among garbled ascii characters is an embedded VMDK description
````
# Disk DescriptorFile
version=1
CID=cf302a20
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 204800 SPARSE "test2.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "203"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
```
|