On Wed 08 Jan 2020 08:46:11 PM CET, Nir Soffer wrote: >> However when an image is opened the virtual size is rounded down, >> which means that trying to access the last few advertised bytes will >> result in an error. As seen above QEMU cannot create such images and >> there's no good use case that would require us to try to handle them >> so let's just treat them as unsupported. > > Making error impossible is best. > > Can we require multiple of 4k to avoid unaligned read/write at the end > of an image aligned to 512 bytes on storage with 4k sector size?
I wouldn't force that on the user. The only reason why I'm not allowing the non-sector-aligned case is because it's currently broken, but I wouldn't have a problem with it if it was working fine. >> +echo >> +echo "== Image size not a multiple of the sector size ==" >> +_make_test_img 64k > > Logging the change here would make the test and the output more clear: > > echo "modifying virtual size to 65535" Ok >> +== Image size not a multiple of the sector size == >> +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65536 >> +qemu-io: can't open device TEST_DIR/t.qcow2: Virtual size is not a multiple >> of 512 > > The output is confusing, looks like we created image with aligned > size, and on the next line it complains about the size. Ok, I can also replace the "qemu-io write" with a "qemu-img info" or something like that to make it a bit less confusing (i.e. the error happens already when you open the image, not when you write to it). Berto