I have many ideas. But the only way to flash with linux is to ask massively jar dev to compile it for linux.
At the moment, I 've also done a script for linux, it's a quite fun but we can't flash without the jar because actual jar file use MS usb drviers we can't use under linux.
Virtual box is not a so good idea. Surely it works, but there not enough time between the moment when you plug the phone into usb and the time you need to put it into boot process.
The only way is to flash under MS.
I have personally mount virtual raw disk of MS installation, taht way you can use as real machine or as virtual.
After that u can try my script, it's not perfect but it is pretty useful.
There some user data to fill in and it need to be root for some command. If you need help to use it (if you want to), fell free to ask.