First post, by Rikintosh
- Rank
- Member
Many years ago there were some (few) guys who were able to do a ridiculously compact (and portable) installation of windows 9x, the best known example being Win98 on the Hirens Boot CD, which loads an installation of about 20MB into the ramdrive . I wanted to learn a little more about this, and I spent the last whole week dedicating all my time to it, and I ended up discovering that the overwhelming majority of tutorials and software that existed for this purpose no longer exist, everything was very difficult to find , so as I managed to create one, I will dedicate this post to teach how I did it.
Unfortunately, by the rules of the forum, I can't make my files available, as they are modified windows files, and these files are the intellectual property of microsoft. Instead, you'll have to get ResHacker and Exescope to modify your own files.
A note: The 7MB installation is practically useless, there are no drivers, there is no support for anything in msdos, there is no notepad at all, just windows explorer and what is needed to load the GUI. I did this more as an enthusiastic test, to see how far I could reduce the size.
A "usable" install would have a minimum size of 14MB, but for games (which is what we all want) only an install of around 60MB will satisfy this purpose.
I could spend time here explaining how to extract each necessary file from the cabs, but the names of the cabs vary from version to version, so the most direct step is to install normally Windows 98 on your virtual machine.
Once installed, get rid of all files that are not on this list:
[Windows] explorer.exe himem.sys IFSHLP.SYS rundll.exe rundll32.exe ShellIconCache SYSTEM.DAT system.ini ttfCache USER.DAT win.c […]
[Windows]
explorer.exe
himem.sys
IFSHLP.SYS
rundll.exe
rundll32.exe
ShellIconCache
SYSTEM.DAT
system.ini
ttfCache
USER.DAT
win.com
win.ini
WIN386.SWP
[Windows\fonts] marlett.ttf sserife.fon vgafix.fon vgaoem.fon vgasys.fon […]
[Windows\fonts]
marlett.ttf
sserife.fon
vgafix.fon
vgaoem.fon
vgasys.fon
[System] advapi32.dll comctl32.dll comdlg32.dll comm.drv commctrl.dll commdlg.dll cp_1252.nls cp_437.nls ddeml.dll GDI.EXE gdi32 […]
[System]
advapi32.dll
comctl32.dll
comdlg32.dll
comm.drv
commctrl.dll
commdlg.dll
cp_1252.nls
cp_437.nls
ddeml.dll
GDI.EXE
gdi32.dll
kernel32.dll
keyboard.drv
krnl386.exe
locale.nls
mmsound.drv
mouse.drv
mpr.dll
mprexe.exe
mprserv.dll
msgsrv32.exe
msmouse.vxd
mspwl32.dll
shell.dll
shell32.dll
system.drv
unicode.nls
user.exe
user32.dll
vga.drv
vgafull.3gr
vmm32.vxd
[system\iosubsys]
bigmem.drv
RMM.PDR
[vmm32\iosubsys]
ios.vxd
ifsmgr.vxd
The installation can be reduced even more by removing some com ctrl, rundll and fonts, it can reach 3.4mb but the system would be very ugly and even more useless. And no, unfortunately it's not possible to put on a single 1.44mb floppy, I tried everything, using uharc the best I could was 3 floppies (with some free space on the last one).
After that, you have to get your hands on a Windows 95 installation, and get the explorer.exe files, and some with ctl/dlg (for the latter, compare sizes, and get the smallest ones).
Use the resource editors to delete bitmaps and foreign languages present in some files, if you are using the english united states version of windows, you will notice that 1033 corresponds to the english language ressource, and the others can be excluded.
Shell32 has a built-in midi file, AVI animations can also be deleted. As for the icons, if you delete them everything will go crazy, with icons appearing randomly in place of each other, this is because the shell32 ressources are enumerated, it means that if you delete icon 28, the icon at position 29 will change to be 28. So I recommend creating an empty 16x16 icon to replace unnecessary icons like network, dialup, internet explorer, etc...
use UPX executable packer to pack your system's exe and dll files. win95 explorer can be compressed to 90kb
reshacker is not able to edit 16bit exes and dlls, so you will have to use exescope for that. Editing these 16bit ones is inefficient if you don't intend to compress your entire windows installation later. That's because exescope just hexadecimally replaces some values, (changing ones to zeros), it keeps the file size, but if you use a compressor, it will cut the zeros and compress a little better. It's your decision!
VMM32.vxd, is a file built during windows installation, it is like a zip file that contains other vxds inside itself. Depending on the machine you were working on, it may not be possible to start windows properly, if you have problems, put some additional vxds in the vmm32 folder and use wininit to embed them in vmm32.vxd
make sure your config.sys has the command to install the Himem.sys and IFSHLP.SYS driver. The first is the memory manager, as we all know, and the second is a file system driver. If you don't load ifshlp.sys, you will get a blue screen indicating file system error.
And lastly, your win.ini and system.ini files. Win.ini is not very important, but system.ini should be dry as shown below
[…]
[boot]
oemfonts.fon=vgaoem.fon
system.drv=system.drv
drivers=mmsystem.dll
shell=Explorer.exe
user.exe=user.exe
gdi.exe=gdi.exe
dibeng.drv=dibeng.dll
comm.drv=comm.drv
mouse.drv=mouse.drv
keyboard.drv=keyboard.drv
*DisplayFallback=0
fonts.fon=vgasys.fon
fixedfon.fon=vgafix.fon
386Grabber=vgafull.3gr
display.drv=pnpdrvr.drv
[keyboard]
keyboard.dll=
oemansi.bin=
subtype=
type=4
[boot.description]
system.drv=Standard PC
keyboard.typ=Standard 101/102-Key or Microsoft Natural Keyboard
mouse.drv=Standard mouse
aspect=100,96,96
display.drv=S3 Trio32/64 PCI (732/764)
[386Enh]
mouse=*vmouse, msmouse.vxd
MaxPhysPage=20000
[NonWindowsApp]
TTInitialSizes=4 5 6 7 8 9 10 11 12 13 14 15 16 18 20 22
[power.drv]
[drivers]
[iccvid.drv]
[mciseq.drv]
[mci]
[vcache]
MaxFileCache=262144
[MSNP32]
[TTFontDimenCache]
0 4=8 12
0 5=8 12
0 6=8 12
0 7=8 12
0 8=8 12
0 9=8 12
0 10=8 12
0 11=8 12
0 12=8 12
0 13=8 12
0 14=8 12
0 15=8 12
0 16=8 12
0 18=8 12
0 20=8 12
0 22=16 24
About the windows registry, I recommend you to download my file. (editing it is tiring)
Take a look at my blog: http://rikintosh.blogspot.com
My Youtube channel: https://www.youtube.com/channel/UCfRUbxkBmEihBEkIK32Hilg