Let's get some theory of normal boot process
Code:Select all
TFTP: /image (FileID: 125, Size: 42097) TFTP: /ldlinux.c32 (FileID: 142, Size: 115516) TFTP: /pxelinux.cfg/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (FileID: 126, Size: 88) TFTP: /linux (FileID: 120, Size: 1094208) TFTP: /initrd.rgz (FileID: 121, Size: 163616) UDP Multicast: disk-drivers.npk (FileID: 150, Size: 1287084)
Lets try to boot our VM using netinstall.exe (6.48.3) .
Woohoo: NBP is too big...
Ok lets capture network packet by wireshark and looks is it really big .
It report size 2138 (x 512 blocks) i.e. 1094656 bytes
Hm... looks like this size not of NBP which is/image(Size: 42097) but size of/linux(Size: 1094208)
hmm lets look inside the code of netinstall.exe, functionsub_40954E .
Ahh we see typical typo, must be 125 but exist 120
Ok lets go deeper in assembly .
How to fix?
Easy, just replace 78 on 7D
After that we can boot our VM .
But now we face: no hard drive found
Why this happen, easy - because of BUG indisk-drivers.npk(FileID: 150, Size: 1287084) .
Simply forgot to put signature in corresponding block
Tomorrow i plan to release full fixed netinstall to public
And by the way dear MikroTik are you have BUG bounty program, did i win? =)