Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

Install Vista from USB


  • Please log in to reply
14 replies to this topic

#1
HJW

HJW

    MultiBoot Freak

  • Member
  • PipPip
  • 177 posts
Hi,

First of all I am glad this subject has its own section. Though I think we should include Vista from usb here too.
Currently I am using an 3rd party program to format my usbdevice as vistaboot disk and I just replace boot.wim and add install.wim: done. Ofcourse there is some other way to do it manually with some smaller tool or cmd, I dont know of yet.

Therefore I started this topic to discuss how to set up your usb device for vista-installation.

HJW

Posted Image



How to remove advertisement from MSFN

#2
ilko_t

ilko_t

    MSFN Addict

  • Super Moderator
  • 1,705 posts
  • OS:none specified
  • Country: Country Flag
Hi,

Vista's bootmgr can be invoked from ntldr, only need to invoke a modified bootsector, which starts bootmgr. Jaclaz's makeBS.cmd does the job just fine, on NTFS partitions too, only bootmgr must be renamed to something with 5 letters, this is for the record.
It would be easy to add Vista support, I had this idea a while ago, but seems we forgot about it :)
I suppose if is not Vlited, stick must be 4GB or bigger? Don't have Vista DVD with me to check.

As far as I remember what has to be added is only:
1. Copy all files and folders from Vista source to USB stick root
2. makeBS.cmd U:\bootmgr /A "Start Vista Setup"

Edited by ilko_t, 25 January 2008 - 01:23 PM.

Install Windows from USB, boot Linux, multiboot and a lot more with WinSetupFromUSB


#3
wimb

wimb

    Senior Member

  • Developer
  • 677 posts
Hi HJW and ilko_t,

Thanks for your Support and for starting this subject on Install of Vista from USB.

In fact when we use USB_MultiBoot2.cmd for making a MultiBoot USB-Drive,
the possibility to Install Vista from USB is already build in. :)
As ilko_t indicated we need to make a BootSector File which refers to BOOTMGR
and that is exactly what occurs with USB_MultiBoot2.cmd Program.

In my Guide for MultiBoot USB-stick with boot.ini Menu I indicated in Section B-6
the possibility to Boot from Windows PE 2.0 and than launch Vista Setup.
For this purpose I used an USB-Harddisk with 2 partitions,
where the first partition is 1900 MB and is SET Active and has FAT Format (using PeToUSB)

Add Windows PE 2.0 files to the U_CONTENT Source Folder and
Run USB_MultiBoot2.cmd to make the MultiBoot USB-Drive.
On the second partition we have enough room to place our Vista Setup Installation Files,
whereas an USB-stick will in general be too small.

Boot with Windows PE 2.0 from USB-Drive and in the cmd Window
Run Vista Setup from the second partition of the USB-Drive.
It is important to take care that at the Restart after Expanding Files,
Booting occurs from the Harddisk on which we Install Vista. ;)

In a modern BIOS having a BIOS Bootmenu via Press F8 or Esc,
we can select to Boot only once from USB-Drive and default from Harddisk.
So than everything is easy.

For older BIOS it is needed to unplug the USB-Drive just at the Restart of Vista Install.
Earlier unplugging gives Install Error (cannot be solved).
To late unplugging USB-Drive gives Boot Failure, which is solved by
Restart of the computer enabling to Continue Vista Setup.
So in this case everything runs also fine for Install Vista from USB. :)

Booting with Windows PE 2.0 does not take extra time,
since it is otherwise included in Vista Setup.

Regards,

wimb

EDIT: I have tried also to Boot from BartPE and than Run Vista Setup,
however this FAILED. Vista says: Incompatible PE Version !!

Edited by wimb, 26 January 2008 - 03:59 PM.


#4
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,019 posts
  • OS:none specified
  • Country: Country Flag
Having just recently increased the length (for the record from 5' to 7 1/2' ;)) of the stick with which I won't touch Vista :whistle:, I have no idea how a VISTA-made NTFS bootsector invokes bootmgr.

If anyone is kind enough to post or however send me a complete NTFS bootsector (8.192 bytes) made natively under VISTA, I will gladly try and find the differences as compared to a normal 2K/XP-made one and hopefully find a way to avoid the renaming of bootmgr.

jaclaz

#5
wimb

wimb

    Senior Member

  • Developer
  • 677 posts
Hi jaclaz,

Here is the NTFS BootSector invoking BOOTMGR made by Vista Format.

Hope you can find something interesting .....

Cheers,

wimb

Attached Files


Edited by wimb, 27 January 2008 - 04:43 PM.


#6
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,019 posts
  • OS:none specified
  • Country: Country Flag

Hi jaclaz,

Here is the NTFS BootSector invoking BOOTMGR made by Vista Format.

Hope you can find something interesting .....

Cheers,

wimb


At first sight, it seems NOT like a "good" done-from-scratch VISTA format, as the string "GRLDR" is present at offset 604. :whistle:

On the other hand, it seems like the string "BOOTMGR" is at offset 514 (where in the "old" bootsector NTLDR was). :)

So, it seems that the previous:
000000512   05 00 4E 00 54 00 4C 00  44 00 52 00 04 00 24 00   ..N.T.L.D.R...$.
000000528   49 00 33 00 30 00 00 E0  00 00 00 30 00 00 00 00   I.3.0..à...0....
has become:
Offset	  0  1  2  3  4  5  6  7   8  9 10 11 12 13 14 15

00000512   07 00 42 00 4F 00 4F 00  54 00 4D 00 47 00 52 00   ..B.O.O.T.M.G.R.
00000528   04 00 24 00 49 00 33 00  30 00 00 E0 00 00 00 30   ..$.I.3.0..à...0

i.e. it seems like the bootloader name is "terminated" by a
04 00 24 00 49 00 33 00 30 00 00 E0 00 00 00 30
sequence.

If this is confirmed, this would open the possibility of overcoming the current "5 letter length" limit for the name of the loader in the MakeBS batch. :thumbup

The leading "05" in my example above comes from a NTFS sector done under Windows 2000, the new "07" is Vista, would it be possible that a XP NTFS bootsector has "06"?

Iìll need to do some tests... :wacko:

jaclaz

Edited by jaclaz, 27 January 2008 - 02:02 PM.


#7
wimb

wimb

    Senior Member

  • Developer
  • 677 posts
Has Uploaded a better Vista NTFS Bootsector.

In my XP NTFS Bootsector I have also a leading "05" as in your example for Windows 2000.
Also the "terminated" sequence is the same in XP NTFS Bootsector.

It seems you are right in that the current "5 letter length" limit for the name of the loader
in the MakeBS batch can be overcome.

However, Comparing the Bootcode itself of XP NTFS and Vista NTFS BootSectors,
reveals that the code is completely different, so that simply replacing NTLDR by BOOTMGR will not work.

wimb

Edited by wimb, 28 January 2008 - 04:45 AM.


#8
HJW

HJW

    MultiBoot Freak

  • Member
  • PipPip
  • 177 posts
I would be interested in both XP and Vista running from one USBflashdrive.
Since I am going to buy a fast 8GB flashdrive soon I was hoping to put my DVDrw in trash and look forward to fast installations :P

Posted Image


#9
andy_le2k

andy_le2k

    Newbie

  • Member
  • 25 posts

I would be interested in both XP and Vista running from one USBflashdrive.
Since I am going to buy a fast 8GB flashdrive soon I was hoping to put my DVDrw in trash and look forward to fast installations :P



If you want to only have 1 source of Vista on your USB the easiest way is to use the usb_multiboot.cmd program then copy over the [BOOT] [SOURCES] folders and BOOTMGR to the root of the USB.

Then edit the grub4dos menu.lst with:

title Setup Windows Vista
find --set-root /grldr
chainloader /BOOTMGR

this will work if you only need one version of Vista to be on the usb but more than one will not work.

So what if you needed more than one version, say x86 and x64 (well there's a guide out there to combine them into one install.wim) or what if you had one integrated with SP1 and one original?

Honestly I have tried many methods - adding new entry to BCD, hex editing, renaming install.wim (works but messy), renaming folders (works but also messy).

The best way that I have found so far is to create a Windows PE 2, boot into that with your usb and launch the setup program directly. This actually works very well because when Vista installs it requires to load Windows PE 2 anyways so you already crossed that bridge. What's best is the ability to have the source files in any folder you want just as long as you have install.wim in the same folder as setup.exe. Also WinPE2 can run both x86 and x64 files so u can launch both setups from one PE.

I hope this helps.

Edited by andy_le2k, 04 April 2008 - 06:13 AM.


#10
wimb

wimb

    Senior Member

  • Developer
  • 677 posts
Your solutions for Install of Vista from USB were already described here

http://www.msfn.org/...14092.html&st=6
http://www.msfn.org/...14092.html&st=7
http://www.msfn.org/...S...6.html&st=2

and GRUB4DOS menu.lst of USB_MultiBoot_8.zip provides already entries for Install of Vista from USB
using chainload of BOOTMGR

Edited by wimb, 07 April 2008 - 02:39 AM.


#11
wimb

wimb

    Senior Member

  • Developer
  • 677 posts

i.e. it seems like the bootloader name is "terminated" by a
04 00 24 00 49 00 33 00 30 00 00 E0 00 00 00 30
sequence.

I tried to use SETUPLDRBIN and SETUPLDR.BIN instead of NTLDR in NTFS BootSector File using the same
byte sequence for terminating the bootloader name, but booting did not occur.

So it seems to me that we have to live with the 5-letter limit of bootloader name in NTFS BootSector File.
Actually renaming SETUPLDR.BIN as XPSTP is OK and is used now for all FileSystems by USB_MultiBoot_8.cmd
in order to avoid confusion.

wimb

#12
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Super Moderator
  • 5,779 posts
  • OS:98SE
  • Country: Country Flag

Donator

So, it seems that the previous:
000000512   05 00 4E 00 54 00 4C 00  44 00 52 00 04 00 24 00   ..N.T.L.D.R...$.
000000528   49 00 33 00 30 00 00 E0  00 00 00 30 00 00 00 00   I.3.0..à...0....
has become:
Offset	  0  1  2  3  4  5  6  7   8  9 10 11 12 13 14 15

00000512   07 00 42 00 4F 00 4F 00  54 00 4D 00 47 00 52 00   ..B.O.O.T.M.G.R.
00000528   04 00 24 00 49 00 33 00  30 00 00 E0 00 00 00 30   ..$.I.3.0..à...0
i.e. it seems like the bootloader name is "terminated" by a
04 00 24 00 49 00 33 00 30 00 00 E0 00 00 00 30
sequence.

 

dubbio.gif   If I may hazzard a guess, it's a PASCAL-like Unicode string, initiated by a little-endian word counter "07 00" (meaning) 0x07, with no terminator...  so we have 0x07 BOOTMGR, instead of 0x05 NTLDR !!!  :hello:


  • wimb likes this

#13
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,019 posts
  • OS:none specified
  • Country: Country Flag

 

dubbio.gif   If I may hazzard a guess, it's a PASCAL-like Unicode string, initiated by a little-endian word counter "07 00" (meaning) 0x07, with no terminator...  so we have 0x07 BOOTMGR, instead of 0x05 NTLDR !!!  :hello:

 

Nice guess. :)

 

According to the Starman:

http://thestarman.pc...m/mbr/NTLDR.htm

the other "qualifying" part should be the EB 12 90 90 (in the NT 5.x bootsector) and - logically - the EB 22 90 90 in the NT 6.x bootsector, that should remain "unmoved" @ offset 0x0256.

 

jaclaz



#14
dencorso

dencorso

    Adiuvat plus qui nihil obstat

  • Super Moderator
  • 5,779 posts
  • OS:98SE
  • Country: Country Flag

Donator

Sure. But, now that you've mentioned it, I think I should remark that 0xEB is an interesting animal: it's a short jump (the intimates call it "JMPS") and it transfers execution unconditionally to a position denoted by it's argument, which is a signed byte, and which is counted starting immediately after it (and, thus, the 1st 0x90 is position "0")... so that on XP and before, that's 18 bytes starting from the 1st 0x90 and, on Vista, :puke: that becomes 34 bytes (which is actually true). Hence, it's interesting to note that the "never executed instruction" remains vallid! I cannot help but wonder:   isn't there really really any way the execution can ever get there? If so, why carefully correct it to keep it valid?   dubbio.gif



#15
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,019 posts
  • OS:none specified
  • Country: Country Flag
At first sight (and without having even tried to disassemble anything) it is clear that in the "NT52" bootsector the EB12 is a "unconditional jump" over some (reserved) bytes, not entirely unlike (please read as "exactly like" the "leading" EB5290 of the whole bootsector.
In the NT52 bootsector these bytes are all 00's, but in the NT60 the (larger number of) bytes do contain "05 00 4E 00 54 00 4C 00 44 00 52", i.e. again the NTLDR string with the 05 "length" of the string.
 
It is entirely possible that it represents a "failsafe" kind of provision to attempt booting the "old" NTLDR instead of the BOOTMGR, and knowing from experience how the good MS guys like to keep old code, I wouldn't be surprised if it was a provision to have, some form of dual booting with the "previous" NT version, or if it is still *somehow* used by the current BOOTMGR when booting NT 5.x's. :unsure:
Just for the record (and OT) for some time the BOOTMGR was capable of booting NT 5.x's fine:
http://reboot.pro/to...inloadexe-nt5x/
http://www.betaarchi...opic.php?t=9602
 
And we have to remember how BOOTMGR still parses BOOT.INI "directly" for all "non NT 4.x and NT 5.x entries" anyway:
http://reboot.pro/to...ddisk/?p=170654
and this is pretty much undocumented/was found out by "pure chance" (and relatively recently), so I wouldn't as well be surprised that there are still some cards hidden in BOOTMGR's (or the bootsector's) sleeves. :w00t:
 
jaclaz




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN