Jump to content











Photo

Install Windows 7 from ISO on USB hard disk to SATA hard disk


  • Please log in to reply
24 replies to this topic

#1 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 March 2011 - 06:06 PM

Install Windows 7 from ISO on USB drive to SATA hard disk
by using Grub4Dos + FiraDisk + DevCon

There are 2 drives involved : setup drive (USB or IDE or SATA or eSATA drive), target drive (IDE or SATA or eSATA drive).

Requirements
  • Windows 7 setup ISO file in setup drive
  • GRUB4DOS installed in setup drive
  • FiraDisk 0.0.1.30 driver package
  • DevCon : extract devcon.exe from inside the downloaded devcon.exe archive
Preparation
  • Extract FiraDisk driver package in setup drive \firadisk\ .
  • Copy devcon.exe to setup drive
  • menu.lst in root directory of setup drive.

    title Setup Windows from ISO to internal hard disk\nboot from ISO, load FiraDisk manually using command : devcon instal firadisk\firadisk.inf root\firadisk
    map --mem (md)0x800+4 (99)
    map /win7.iso (222)
    map (hd1) (hd0)
    map (hd0) (hd1)
    map --hook
    write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/win7.iso;\n\0
    # boot from ISO
    root (222)
    chainloader
    pause Press any key . . .

    title Boot from internal hard disk
    map (hd1) (hd0)
    map (hd0) (hd1)
    map --hook
    rootnoverify (hd0)
    chainloader +1
    pause Press any key . . .

Start Setup
  • Step 1 Boot from setup drive -> in GRUB4DOS menu select Setup Windows ...
    ( I have not tested installing 64-bit yet. If you use Windows 64-bit, you have to press F8 quickly and select Disable Driver Signature Enforcement because FiraDisk has no valid signature. )
    When language selection window appear, press Shift+F10 to open cmd.exe.
    Find drive that contains FiraDisk.
    dir c:
    
    dir d:
    
    dir e:
    
    ...
    
    
    Assume it is C: in this example.
    c:
    
    cd \
    
    devcon install firadisk\firadisk.inf root\firadisk
    
    
    If successful, verify that files inside ISO is visible.
    dir c:
    
    dir d:
    
    dir e:
    
    ...
    
    
    And continue setup.
  • Step 2 Boot from setup drive -> in GRUB4DOS menu select Boot from internal hard disk
    or remove setup drive and boot from target drive directly.


#2 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 March 2011 - 06:19 PM

Install Windows 7 from ISO on USB drive to SATA hard disk with modified boot.wim.

This is similar to the above.
The differences are
1. This require working Windows 7 and DISM to prepare setup drive.
2. This does not require DevCon and manually typing command to load FiraDisk during setup.

No need to rebuild ISO.
Modified boot.wim can be placed in setup drive along with bootmgr and boot\BCD. They take only 160MB more disk space.

I test with DISM from WAIK.
DISM can also be found in \sources\ directory in Windows 7 DVD. I think it should work the same way.
DISM 32-bit does not work well in Windows 64-bit. Use 64-bit DISM when you run it in Windows 64-bit.

Preparation
  • Mount win7.iso (or insert Windows 7 DVD).
  • Create temp directories \sources\ and \mnt\ in temp drive. (T:\sources and T:\mnt in this example)
  • Copy win7.iso\sources\boot.wim to temp directory (T:\sources).
  • Mount boot.wim
    dism /Mount-Wim /WimFile:T:\sources\boot.wim /Index:2 /MountDir:T:\mnt
  • Add driver package
    dism /Image:T:\mnt /Add-Driver /Driver:S:\firadisk\firadisk.inf /forceunsigned
    /forceunsigned is needed for 64-bit because FiraDisk does not have valid signature.
  • Add registry keys and values in SYSTEM hive
    firadisk_target_cs1.reg
    Windows Registry Editor Version 5.00
    
    
    
    [HKEY_LOCAL_MACHINE\target\ControlSet001\services\FiraDisk]
    
    "Type"=dword:00000001
    
    "Start"=dword:00000000
    
    "ErrorControl"=dword:00000001
    
    "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
    
      52,00,49,00,56,00,45,00,52,00,53,00,5c,00,66,00,69,00,72,00,61,00,64,00,69,\
    
      00,73,00,6b,00,2e,00,73,00,79,00,73,00,00,00
    
    "DisplayName"="FiraDisk Driver"
    
    "Group"="Boot Bus Extender"
    
    
    
    [HKEY_LOCAL_MACHINE\target\ControlSet001\services\FiraDisk\Parameters]
    
    "PnP"=dword:00000001
    
    
    
    [HKEY_LOCAL_MACHINE\target\ControlSet001\services\FiraDisk\Enum]
    
    "Count"=dword:00000001
    
    "NextInstance"=dword:00000001
    
    "0"="ROOT\\FiraDisk\\0000"
    
    
    
    [HKEY_LOCAL_MACHINE\target\ControlSet001\Enum\Root\FiraDisk\0000]
    
    "ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
    
    "Class"="SCSIAdapter"
    
    "HardwareID"=hex(7):72,00,6f,00,6f,00,74,00,5c,00,66,00,69,00,72,00,61,00,64,\
    
      00,69,00,73,00,6b,00,00,00,00,00
    
    "CompatibleIDs"=hex(7):64,00,65,00,74,00,65,00,63,00,74,00,65,00,64,00,5c,00,\
    
      66,00,69,00,72,00,61,00,64,00,69,00,73,00,6b,00,00,00,00,00
    
    "Service"="FiraDisk"
    
    "ConfigFlags"=dword:00000000
    
    "Capabilities"=dword:00000000
    
    "ContainerID"="{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
    
    
    
    
    reg load HKLM\target T:\mnt\Windows\system32\config\SYSTEM
    
    reg import firadisk_target_cs1.reg
    
    reg unload HKLM\target
  • Unmount and commit boot.wim
    dism /Unmount-Wim /MountDir:T:\mnt /Commit
  • Copy modified boot.wim (T:\sources\boot.wim) to setup drive (S:\sources\boot.wim).
  • Copy win7.iso\bootmgr and \boot\ directory to setup drive (setup drive is S: in this example)
  • Create directory \sources\ in setup drive. (S:\sources)
  • Enable testsigning in setup drive \boot\BCD (for Windows 64-bit)
    bcdedit /store S:\boot\BCD /set {default} testsigning on
  • Add entry in menu.lst in setup drive

    title Setup Windows from ISO to internal hard disk : Boot from modified boot.wim
    map --mem (md)0x800+4 (99)
    # map /win7.iso (222)
    map (hd1) (hd0)
    map (hd0) (hd1)
    map --hook
    write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/win7.iso;\n\0
    # use bootmgr on the same drive as grldr
    root (hd1,0)
    chainloader /bootmgr
    pause Press any key . . .

Setup
1. Boot from setup drive and select Setup Windows ... from GRUB4DOS menu.
2. After reboot, boot from internal hard disk.

Note : This may not be the best way of setup for advance users. But I think, once the preparation is completed, it would be easy to use for users who are familiar with normal Windows 7 setup.

Edited by karyonix, 02 March 2011 - 01:18 AM.


#3 L A M A

L A M A

    Silver Member

  • Advanced user
  • 540 posts
  •  
    United Nations

Posted 01 March 2011 - 06:30 PM

hmmm :cheers: nice...




modded ISO having firadisk inside, using map --mem can speed up installation? i guess?
its very cool to have this :cheers:


write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/win7.iso;\n\0


#4 steve6375

steve6375

    Platinum Member

  • Developer
  • 7566 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films
  •  
    United Kingdom

Posted 01 March 2011 - 07:13 PM

Start Setup

  • Step 1 Boot from setup drive -> in GRUB4DOS menu select Setup Windows ...
    ( I have not tested installing 64-bit yet. If you use Windows 64-bit, you have to press F8 quickly and select Disable Driver Signature Enforcement because FiraDisk has no valid signature. )
    When language selection window appear, press Shift+F10 to open cmd.exe.
    Find drive that contains FiraDisk.
    dir c:
    
    dir d:
    
    dir e:
    
    ...
    
    
    Assume it is C: in this example.
    c:
    
    cd \
    
    devcon install firadisk\firadisk.inf root\firadisk
    
    
    If successful, verify that files inside ISO is visible.
    dir c:
    
    dir d:
    
    dir e:
    
    ...
    
    
    And continue setup.
  • Step 2 Boot from setup drive -> in GRUB4DOS menu select Boot from internal hard disk
    or remove setup drive and boot from target drive directly.

A useful alternative!

This is similar to my tutorial 31 (see end of page) using ImDisk instead of FiraDisk (but menu.lst is simpler and ImDisk is signed - I think?).

As for your second post. It would be easier to just use imagex to apply any one of the images from install.wim straight to the hard disk. Just script diskpart and run imagex. job done!

#5 L A M A

L A M A

    Silver Member

  • Advanced user
  • 540 posts
  •  
    United Nations

Posted 01 March 2011 - 07:25 PM

.... ImDisk is signed - I think?).

As for your second post. It would be easier to just use imagex to apply any one of the images from install.wim straight to the hard disk. Just script diskpart and run imagex. job done!

I was coming to imageX but, whats with the signing of drivers? I thought someone posted solution to this??? edit: Maybe checking out original setup way step by step can solve him other problems g4d+iso+img? in future? :cheers:





A friend of mine got his driver signed too... (some times back). Hehe, I bugged him for OSX drivers :cheers: (which started this thread while my nick got changed to Oxtie)

#6 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 March 2011 - 07:57 PM

The purpose of the second post is to prepare setup source for use on multiple computers or install many times without changing appearance of setup program.

I think DISM is a good alternative to imagex to make a modified WIM because it can be found in Windows 7 DVD (or ISO) -- no need to download WAIK.
However, it cannot be used to apply image to hard disk directly.

I will get a code-signing certificate when FiraDisk is mature enough.

#7 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 01 March 2011 - 08:19 PM

I think DISM is a good alternative to imagex to make a modified WIM because it can be found in Windows 7 DVD (or ISO) -- no need to download WAIK.

Would this thingy be useful? :cheers:
http://nativeex.boot...x/WimCaptEx.htm
http://reboot.pro/9765/

However, it cannot be used to apply image to hard disk directly.

Can you expand on that? :cheers:

:cheers:
Wonko

#8 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 March 2011 - 08:56 PM

I think WimCaptEx is useful as an imagex alternative.

Can you expand on that? :cheers:

Imagex has ability to apply WIM to hard disk as used in http://reboot.pro/10126/ .
Dism does not have this ability.
WimCaptEx seems to have this ability.

#9 davlak

davlak

    Frequent Member

  • Advanced user
  • 224 posts
  •  
    Italy

Posted 01 March 2011 - 09:13 PM

@karyonix

Dism seems to not support mounting operations hosted on USB (at least not a pendrive, don't know if possible on USB-HD, I think yes)


L'unità del percorso di montaggio specificato non è supportata. Eseguire il montaggio in un volume su un'unità fissa.


translation: unit of the specified mounting path is not supported. use a volume on a fixed unit for mounting.

anyway, excellent work, I'going to test it. Thanks.

#10 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 01 March 2011 - 09:26 PM

@davlak
Thanks. I will updated the tutorial, tell readers to use internal hard disk instead.

#11 davlak

davlak

    Frequent Member

  • Advanced user
  • 224 posts
  •  
    Italy

Posted 01 March 2011 - 11:23 PM

@karyonix

no problem with x86 setup.
really nice.

with x64 the below option is needed when installing firadisk.inf with dism at the prompt:

dism /Image:T:\mnt /Add-Driver /Driver:S:\firadisk\firadisk.inf /forceunsigned

#12 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 02 March 2011 - 01:14 AM

Thanks.

#13 sambul61

sambul61

    Gold Member

  • Advanced user
  • 1568 posts
  •  
    American Samoa

Posted 02 March 2011 - 03:59 PM

karyonix

Thanks for excellent job! The only problem remaining with your 1-st method is to automate it completely at Win7 install. :questionmark: I'm sure, you're up to this task, and apparently ahead of Sha0. :(

L

Thanks for reminding about hardwareheaven.com ! I've a long standing issue someone over there might be interested to fix. Twinhan 1020a Satellite DVB-S Card is an old very popular one, unique in unencrypted DSS support features no other card has. The problem is, its 64-bit BDA driver was never updated to Win7. It works OK in Win7 when RAM is set to less then 4Gb, which is not an option for most users, and works OK with any RAM in Vista 64-bit. May be you know someone, who'll be able to update the driver, it needs a very small fix, but Twinhan company is long gone. May be some Reboot Driver Gurus can look at what's wrong with it too? :smiling9:

#14 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 03 March 2011 - 08:43 PM

I'm sure, you're up to this task, and apparently ahead of Sha0. :whistling:

You've already said you'll never use WinVBlock, so please leave me out of your discussions and your judgments about how karyonix and anyone else is doing in your imaginary contest for "ahead," whatever that means to you. Thanks.

Install Windows 7 from ISO on USB drive to SATA hard disk
by using Grub4Dos + FiraDisk + DevCon

Nice tutorial, karyonix! :smiling9: Are you thinking about a user-land utility at all at some point, perhaps to do some of what devcon does? Or since you are using the root enumerator, what about simply installing as a service (like sc.exe can do) and IoReportDetectedDevice()? I'm only asking in case it's possible to remove the devcon dependency.

#15 sambul61

sambul61

    Gold Member

  • Advanced user
  • 1568 posts
  •  
    American Samoa

Posted 03 March 2011 - 09:08 PM

You've already said you'll never use WinVBlock

I never said that. Sorry, if you understand it that way. Just needed a program to install Win7 from ISO, which WinVBlock according to you can't do. Hope, Win7VBlock will be able to at some point. Its interesting, you first tried to teach for life people who were consistently nice to you and never requested such service, interfered with others direct conversations, and then get upset on their reaction. A self-appointed mediator should be prepared for that. :whistling:

#16 karyonix

karyonix

    Frequent Member

  • Advanced user
  • 481 posts
  •  
    Thailand

Posted 04 March 2011 - 12:09 AM

@sambul61
1.steve6375 posted a way to load ImDisk automatically by using Autounattend.xml.
You may adapt his method to load FiraDisk.
I will update this tutorial after I study the method.
2.FiraDisk can do this now because of recent Sha0's work CD-ROM emulation.

@Sha0
From my test IoReportDetectedDevice in recent FiraDisk development does not work well in Windows 7 setup. I am not sure why.
I don't have enough knowledge of device setup related functions to make user mode setup application at this time. I think it will not take very long time to study.
When I have it working I will update this tutorial.

#17 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 04 March 2011 - 03:28 PM

I never said that. Sorry, if you understand it that way.


Just for the record it does seem like a possible way to understand that:
http://reboot.pro/13770/page__st__1

I don't need that personally, and more importantly don't use your driver as said earlier.

:cheers:

I was tricked as well into thinking that what you wrote meant that you weren't using the WinVblock driver. :thumbsup:


:cheers:
Wonko

#18 Mousa

Mousa
  • Members
  • 2 posts
  •  
    Syria

Posted 31 March 2011 - 12:31 PM

Thanks .....
I have Short way to great Bootable win 7 setup usb

1- make primary partition in usb

2- make this partition active

3- Copy All win 7 dvd component to usb

4- run this command c:\windows\system32> usbletter: bootsect.exe /nt60
usbletter: /mbr

5- restart windows and boot from Usb

enjoy


With my greeting...

#19 sara - pmedia

sara - pmedia

    Frequent Member

  • Lady
  • 184 posts
  • Location:tel aviv
  •  
    Israel

Posted 31 March 2011 - 01:04 PM

Thanks .....
I have Short way to great Bootable win 7 setup usb

1- make primary partition in usb

2- make this partition active

3- Copy All win 7 dvd component to usb

4- run this command c:\windows\system32> usbletter: bootsect.exe /nt60
usbletter: /mbr

5- restart windows and boot from Usb

enjoy


With my greeting...


Congratulations! :smiling9:
Thank you for sharing your discovery with us :pulpfiction: :rofl: :unsure: :w00t:

#20 steve6375

steve6375

    Platinum Member

  • Developer
  • 7566 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films
  •  
    United Kingdom

Posted 31 March 2011 - 02:34 PM

bootsect.exe is not part of XP. If you already have Win 7, then why not just...

1. Partition USB stick and format using WIndows
2. Copy DVD contents to USB stick

#21 ecnahc

ecnahc
  • Members
  • 1 posts
  •  
    United States

Posted 20 July 2011 - 03:10 AM

any idea why when i try the 2nd method i get stuck at the "windows boot manager" screen?
the error reports
File: \Boot\BCD
Status: 0xc0000225
Info: An error occurred while attempting to read the boot configuration data.

I followed the directions to the t. I'm using 64bit media and made sure to follow the instructions for 64bit install.
Aside from that this is on an external HDD.

Thanks

#22 steve6375

steve6375

    Platinum Member

  • Developer
  • 7566 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films
  •  
    United Kingdom

Posted 20 July 2011 - 06:59 AM

define 'external hard disk'? USB, eSATA, firewire ???

#23 andrewcw

andrewcw
  • Members
  • 1 posts
  •  
    Hong Kong

Posted 29 August 2011 - 03:54 PM

For Firadisk, it is OK when using it to install 32 Bit Windows Vista/7.

However, for 64 Bit Windows 7, the driver should be signed. Testsigned should be "ON" if firadisk is used.

So I suggest to use IMDISK for 64 Bit Windows 7 Installation.

The steps are quite similar too.

#24 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 29 August 2011 - 04:18 PM

For Firadisk, it is OK when using it to install 32 Bit Windows Vista/7.

However, for 64 Bit Windows 7, the driver should be signed. Testsigned should be "ON" if firadisk is used.

So I suggest to use IMDISK for 64 Bit Windows 7 Installation.

The steps are quite similar too.


Yes, they are detailed here:
http://reboot.pro/9076/
http://sites.google....iskautounattend
and this is a firadisk based one:
https://sites.google...ials/firawiniso

:cheers:
Wonko

#25 TrungNT_HUST

TrungNT_HUST

    Member

  • Members
  • 32 posts
  •  
    Vietnam

Posted 25 December 2013 - 04:14 AM

hello karyonix
 
I edited and integrated Firadisk boot.wim inside as you instruct.
 
I used a USB (FAT32) but it can not mount the virtual drive file win7.iso
 
- NTFS -> OK ---> success
 
Can you help me get it running on FAT32 format ?
 
Thank you





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users