Jump to content











Photo
- - - - -

SVBus Virtual SCSI Host Adapter for GRUB4DOS

svbus virtual scsi host adapter grub4dos

  • Please log in to reply
8 replies to this topic

#1 schtrom

schtrom

    Newbie

  • Members
  • 11 posts
  •  
    Germany

Posted 10 June 2018 - 01:30 PM

Download-Link: https://sourceforge....projects/svbus/

 

 

SVBus Virtual SCSI Host Adapter for GRUB4DOS

Today we present a new virtual SCSI driver for use with GRUB4DOS named SVBus. The
driver is used like WinVBlock and FiraDisk to access GRUB4DOS mapped drives from
Windows. At the moment VHD file disk and RAM boot are supported. The supported OS
platforms are Windows 2000 up to the newest Windows 10 on x86 and x64 architectures.
For interested developers the source code is included and licensed under the GPL.

Many thanks and much respect go out to the authors of WinAoE, WinVBlock (Shao Miller),
FiraDisk (Panot Joonkhiaw), DSEFix and of course to the reboot community, which made
the VHD RAM and disk boots in Windows possible!

Greets
Kai Schtrom


  • blackbalfur and alacran like this

#2 blackbalfur

blackbalfur

    Member

  • Members
  • 38 posts
  •  
    Netherlands

Posted 10 June 2018 - 01:41 PM

Thanks i will test this one for sure!!!



#3 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 14261 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 10 June 2018 - 03:09 PM

Interesting. :)

 

Care to list which differences/features it has (as compared to Firadisk and/or Winvblock)? :unsure:

 

:duff:

Wonko



#4 erwan.l

erwan.l

    Gold Member

  • Developer
  • 2286 posts
  • Location:Nantes - France
  •  
    France

Posted 12 June 2018 - 04:51 PM

Very interesting to see some testings and more details around how it compares with winvblock/firadisk.



#5 Vortex

Vortex

    Frequent Member

  • Advanced user
  • 239 posts

Posted 13 June 2018 - 12:39 PM

Hi schtrom,

 

Thanks for your SVBus Virtual SCSI Host Adapter for Grub4dos. Here is my report.

 

Booting off  from Win7PE 32-bit :

title Windows 7

chainloader /bootmgr7

title Win7PE 32-bit

map --mem (hd0,1)/Win7PESE_x86.ISO (hd32)
map --hook
chainloader (hd32)

C:\bootmgr7 is the renamed Windows 7 boot loader.  bootmgr is the grubdos loader grldr extracted from grub4dos-0.4.5c-2016-01-18.7z  : grldr is renamed to bootmgr

 

I have a Windows 7 installation on my root partition. 

 

After attaching my VHD disk in the Win7PE environment, the installation starts like the following :

C:\Win7-32bit>sources\setup.exe /noreboot

All the setup files were copied to the root partition of my drive. Since the Windows installer overwrites the C:\boot folder and the C:\bootmgr file, I backed up them to another folder.

 

The attached VHD file Win7.vhd is associated with the drive letter F

 

Adding the SVBus driver to the Windows 
 
C:\Svbus\bin>dism /add-driver /driver:svbus.inf /image:F:\


Deployment Image Servicing and Management tool
Version: 6.1.7601.17514


Image Version: 6.1.7601.23403


Found 1 driver package(s) to install.
Installing 1 of 1 - C:\Svbus\bin\svbus.inf: The driver package was successfully
installed.
The operation completed successfully.

Creating the BCD record :

C:\Svbus\bin>bcdboot F:\Windows /s F:
Boot files successfully created.

After detaching the virtual drive F, I restored the folder C:\boot  and the file C:\bootmgr file as they were modified by setup.exe

 

Booting the Windows 7 instance stored in the VHD file :

 

title Windows 7 - FILEDISK
find --set-root --ignore-floppies /win7.vhd
map /Win7.vhd (hd0)
map --hook
root (hd0,0)
chainloader /bootmgr

Everything worked fine and the installation completed successfully. schtrom, the procedure you described in the Readme file worked too.

 

Thanks again for this nice driver.



#6 Vortex

Vortex

    Frequent Member

  • Advanced user
  • 239 posts

Posted 13 June 2018 - 01:38 PM

Hello,

 

A quicker setup experiment. Again, booted off from Win7PE 32-bit. I attached the virtual disk Win7.vhd using the disk management console.

 

The index number 4 represents the Professional version of Windows 7. F indicates the virtual partition F hosted by Win7.vhd

X:\Windows\System32\Tools\imagex2>imagex.exe /apply C:\Win7-32bit\sources\install.wim 4 F:

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.
Version: 6.1.7600.16385

[ 100% ] Applying progress

Successfully applied image.

Total elapsed time: 6 min 6 sec

Creating the BCD store :

X:\Windows\System32\Tools\imagex2>bcdboot F:\Windows /s F:
Boot files successfully created.

Injecting the SVBus driver :

X:\Windows\System32\Tools\imagex2>reg LOAD Hklm\sys F:\Windows\System32\config\SYSTEM
The operation completed successfully.

X:\Windows\System32\Tools\imagex2>reg IMPORT D:\SvBus.reg
The operation completed successfully.

X:\Windows\System32\Tools\imagex2>reg unload HKLM\sys
The operation completed successfully.

C:\Svbus\bin>copy svbus.inf F:\Windows\inf
        1 file(s) copied.

C:\Svbus\bin>copy svbusx86.sys F:\Windows\System32\drivers
        1 file(s) copied.
SvBus.reg :
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\CriticalDeviceDatabase\DETECTED#svbusx86]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"DriverPackageId"="svbus.inf_x86_neutral_b29b9ca0ca57a291"
"Service"="svbusx86"

[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\CriticalDeviceDatabase\ROOT#svbusx86]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"DriverPackageId"="svbus.inf_x86_neutral_b29b9ca0ca57a291"
"Service"="svbusx86"

[HKEY_LOCAL_MACHINE\sys\ControlSet001\services\svbusx86]
"DriverPackageId"="svbus.inf_x86_neutral_b29b9ca0ca57a291"
"ErrorControl"=dword:00000001
"Group"="SCSI Miniport"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,73,00,76,00,62,00,75,00,73,00,78,\
  00,38,00,36,00,2e,00,73,00,79,00,73,00,00,00
"Start"=dword:00000000
"Type"=dword:00000001

Two registry shots before and after the driver installation with the dism command were enough to produce the .reg file above.

<First registry capture>
dism /add-driver /driver:svbus.inf /image:F:\
<Second registry capture>

Edit : Using this second method, the remark unknow device can appear in the device manager. Reinstalling the driver is solving this issue.



#7 schtrom

schtrom

    Newbie

  • Members
  • 11 posts
  •  
    Germany

Posted 07 July 2018 - 07:15 AM

Hi guys,

sorry I had been busy lately.

@Wonko:

I did code another virtual GRUB4DOS HDD driver, because I had some problems with WinVBlock version 0.0.1.8 and the file disk stuff. On huge virtual HDDs I get BSODs and can't even boot. This seems to be related to WinVBlock and the location of the VHD file on the disk and maybe also the size of the VHD. I normally boot Windows 10 VHD with a size of at least 20 GB to RAM. This is very good for surfing the internet. You simply reboot and all changes and potential viruses are gone. WinVBlock has also some problems on Windows 10. If you watch what is going on in the kernel debugger, you see that there are write errors on the physical HDD where the virtual disk file is stored. This is related to Microsoft which block write operations to volumes and disks in newer operating systems. SVBus uses the flag SL_FORCE_DIRECT_WRITE, which bypasses the check in file system and storage drivers. Therefore we have no write errors anymore in Windows 10. SVBus is also the first virtual driver that shows the floppy disk symbol in Windows Explorer correctly. This was done by supporting MODE PAGE FLEXIBLE DISK command. In addition I ran a lot of professional code analysis stuff like warning level W4, PreFast, PC-Lint and VS2017 code analysis. This should make the driver even more stable and reliable. I can not even rethink all of the optimizations I did to the driver in the past.

In the end I simply wanted to create my own code which should be as stable and clean as possible. I think it is always better to have more alternatives for a virtual HDD driver in case one of the drivers does not work for some users, they could simply try the other. I did a lot of tests with SVBus and worked on it for nearly a year until release. I tested every possible OS I got from Windows 2000 to Windows 10. I learned a lot during development. Because I was so amazed by the work Firadisk, WinVBlock, WinAoE and their authors did, I thought I should give back something to the community. Because of this I shared the code on sourceforge, so everyone can learn and improve it.

@Vortex:

I would like to thank you for all the testing of SVBus. Much appreciated!

 

I also did some preformance tests lately on the driver. In Windows 2003 Server this looks like the OS is on speed!

https://imgur.com/a/SuPiSt9

 

Keep up this good community!

Kai Schtrom



#8 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 14261 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 07 July 2018 - 09:45 AM

Thanks schtrom :) ,

now it is clear.

 

In a nutshell, older drivers had some issues with Windows 10 while this new one is OK with Windows 10 (while I presume being still compatible, besides 8 and 7 also with Vista, 2003, XP and even 2000, very good ).

 

And your note about SL_FORCE_DIRECT_WRITE is very interesting, as I have seen - here and there - reports of this or that old tool causing "random" write errors on 10, that could be explained by this ... :unsure:

 

 

:duff:

Wonko



#9 SoItIs

SoItIs
  • Members
  • 9 posts
  •  
    United States

Posted 02 August 2018 - 08:41 PM

since I was updating a w7 x86 ultimate ram image, I decided to try SVBus and it booted up with no problems here.

 

menu.lst I used:

 

title RAM W7

find --set-root /w7.img

map --mem /w7.img (hd0)

map --hook

find --set-root /bootmgr

chainloader /bootmgr

 

thanks schtrom for another great Grub4Dos tool!


Edited by SoItIs, 02 August 2018 - 08:43 PM.






Also tagged with one or more of these keywords: svbus, virtual scsi host adapter, grub4dos

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users