1) About the "map --unmap=0:0xff && map --unhook && map --rehook" - (...) - Should be relatively safe to delete those lines.
In fact I've managed to work around the problem, with a solution which I find suitable (but others might see problems that I haven't seen), and which doesn't require deleting these lines.
Initially I carry out the procedure described above, i.e. create a virtual disk, and run WinSetupFromUSB , using the advanced options and the "display drives on all interfaces, not only USB" checkbox.
The next step is fairly simple: everything that does does not need to be in the virtual disk is deleted from there and moved to the physical USB stick (as it would be in the normal WinSetupFromUSB procedure).
This includes the DPMS and the WinSetup/OEM folders (if present), and everything at the root of the virtual drive except shifthd.bat and usbdrive.tag
Therefore, all the initial boot procedure is entirely happening on the physical disk, and the unmap & unhook do not interfere.
Now, to complete the changes, all is needed is to modify the winmenu.lst, to map the virtual disk, at the right time. Just before:
ls /shifthd.bat > nul || find --set-root --devices=hf /shifthd.bat
I now add the following:
map /WinSetup.img (hd2)
(twice, in the two main winmenu.lst entries). I'm hardcoding (hd2) but that may have to be changed depending on your hardware config,
By the way- how do you make the virtual disk visible for Windows Setup? Do you integrate a custom driver- firadisk, winvblock..., how?
Yep, i'm using WinVBlock.
Yesterday I carried out a simple experiment, just using the WinSetupFromUSB feature where you can specify a F6 floppy (use the WinVBLock.ima included in Wim'b latest XP_IMG package
). That worked ok, and install was successful (TXT-mode at least, didn't go further).
However last night I tried something slightly more refined, where no floppy is needed, but where the WinVBlock is integrated into the XP source directly (with other mass-storage drivers)
. I think this is a great option, as it kills two birds with one stone, and allows installing XP from
a virtual disk, but also to
a virtual disk.
Initially I tried to use MSSTMake
but there seem to be an incompatibility with WinVBlock and it just doesn't like it
. I could be just an INF file problem, but this is way beyond anything I can resolve myself... but if anyone is up for the challenge ....
So I moved to a different tool: IntegrateDrv
which I discovered here: http://reboot.pro/81...400#entry148258
This one can integrate WinVBlock properly, but it has been designed to operate on the temporary Windows Installation directories ('$WIN_NT$.~BT' and '$WINT_NT$.~LS). I tried using it directly on the plain XP source (I386 directory) and it did complete without moaning.... But now when I try to install XP, at the very end of TXT-mode setup when "Windows Starts", I get a BSOD 7E. In QEMU because setup is pretty slow, I can clearly see the WinVBlock driver being loaded, but somehow something seems to be not working.... Anyone cares to try and reproduce ?
In case of a virtual disk I am not quite sure that migrate.inf would work reliably, it may depends how the virtual disk is mounted during Setup
Yep, I appreciate that things might be a little more tricky than I thought. However if the disk is mounted properly, migrate.inf should do the job, I can't see any reason why the virtual disk signature wouldn't be recognised ok.
By the way, when shifting drives to make the USB disk last.... is it really the virtual disk that should be made last, or the physical one
? Can you quickly explain why ?