MSFN Forum: How to boot/install from USB key ? - MSFN Forum

Jump to content


  • 25 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last »
  • You cannot start a new topic
  • This topic is locked

How to boot/install from USB key ? - the historical thread - how it all began

#21 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 10 November 2006 - 05:08 AM

porear said:

Start->Run and type E:\I386\winnt32.exe /noreboot


You should try using the syntax posted here:

http://www.msfn.org/...topic=77526&hl=

using the /makelocalsource should be the "missing" step.

jaclaz


#22 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 10 November 2006 - 12:13 PM

View Postjaclaz, on Nov 10 2006, 05:08 AM, said:

using the /makelocalsource should be the "missing" step.

jaclaz


Wow that looks very promising. I'm off from work today, I'll give it a shot. Thanks very much for the tip.

Also have read some things that lead me to believe that copying SETUPLR.BIN to NTLDR may provide the appropriate NTLDR needed without doing the whole PEToUSB copy.

Will post results... fingers crossed.

#23 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 10 November 2006 - 09:24 PM

Well, its working, but I don't think its correct. I'll post what I did and then my concern. I was using a Windows install CD in my drive E:.

1. Run a setup by E:\I386\winnt32.exe /noreboot /makelocalsource
2. Format USB drive with PeToUSB (but did not copy any build files - format only)
3. Copy directories C:\$WIN_NT$.~BT and C:\$WIN_NT$.~LS to the USB drive (takes a while)
4. Copy the following from C:\$WIN_NT$.~BT to the USB root \

TXTSETUP.SIF
NTDETECT.COM
SETUPLDR.BIN

5. Rename SETUPLDR.BIN on the USB root to NTLDR
6. Delete WINNT.SIF from \$WIN_NT$.~BT on the US drive

This last step is not necessary but otherwise the product ID and other info you provide in step 1 will always be used.

Very simple. The problem: does not work if you delete \$WIN_NT$.~BT\migrate.inf, and instead prompts for the install CD, even if the WIN51.IP tag files are placed on the USB drive.

migrate.inf is created in step 1 and seems to contain an enumeration of the mounted devices that setup sees when it is ran. My concern is that this then ties the installation to a specific hardware configuration and will not work on other machines. It works fine for re-installing from USB upon the machine for which migrate.inf was created.

How can this dependency be removed such that migrate.inf is either not needed, or is generic for all situations (not likely)? Thanks for the help!

I think I'll try simply formatting, copying the CD to the stick and perform steps 4 and 5. This takes out creation of and need for the migrate file.

#24 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 11 November 2006 - 03:52 AM

You might be interested in these:
http://support.micro...kb/234048/en-us
http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true

It seems like a directive

Quote

"oempreinstall=yes"
in the answer file will avoid the creation of migrate.inf, but actually, as I see it, a form of "migrate.inf" might be necessary to provide for "correct" drive lettering on the installed system.

Using the method above, were you able to install on C: drive?

Which drive letter was given to the USB stick?

Just to keep things as clear as possible, with reference to my post here:
http://www.msfn.org/board/index.php?showto...mp;#entry563654

Until now you were exploring the possibilities of method #4, if you

Quote

I think I'll try simply formatting, copying the CD to the stick and perform steps 4 and 5. This takes out creation of and need for the migrate file.

you would "fall" in method #3, won't you?

If I am correct, some info in here might be of help:
http://www.911cd.net/forums//index.php?sho...c=17425&hl=

jaclaz

#25 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 11 November 2006 - 04:14 PM

Think we may be on to something but I'm in the middle of a long file copy so I will catch things up here while waiting.

Quote


Excellent references. Currently all new info to me and over my head, but I plan to go back and look at these in more detail.

Quote

It seems like a directive "oempreinstall=yes" in the answer file will avoid the creation of migrate.inf, but actually, as I see it, a form of "migrate.inf" might be necessary to provide for "correct" drive lettering on the installed system.
You may be right about the migrate.inf. It seems that to boot the CD installation, you must either use the original NTLDR or SETUPLDR.BIN renamed to NTLDR, since the boot sector is looking for NTLDR.

The problem with the original NTLDR is that it wants an associated boot.ini that points to where the boot should continue. When booting to an NTFS file system, the ARC naming convention must be used, e.g. multi(0)disk(0)rdisk(0)partition(1). When booting to a DOS boot sector, the drive letter can be used, e.g. C:\BOOTSECT.DOS="Win98". I do not know how to reference a USB stick for either of these scenarios or if it is possible, since you won't know what drive letter the target machine will assign to the USB stick at boot time (I am sure this can be controlled somehow).

This leaves the SETUPLDR solution, which seems to assume that you have already performed stage 1 of a setup, and have created an info store (migrate.inf) that will tell the setup how to continue.

The oempreinstall switch seems to be for unattended operations, and goes in a file called unattend.txt which I don't have since I'm not doing an unattended install. However, in my case I do seem to be utilizing the winnt.sif file, which looks like it is analogous to unattend.txt for my situation. I do not know if oempreinstall is a valid switch for winnt.sif but I will certainly be investigating this angle.

Quote

Using the method above, were you able to install on C: drive?
Which drive letter was given to the USB stick?

Yes, I was able to install to C:, and the USB was assigned drive F: (my CD ROM is E:, and my HD0 is partitioned C: and D: )

Quote

Just to keep things as clear as possible, with reference to my post here:
http://www.msfn.org/...mp;#entry563654

Until now you were exploring the possibilities of method #4, if you

Quote

I think I'll try simply formatting, copying the CD to the stick and perform steps 4 and 5. This takes out creation of and need for the migrate file.

you would "fall" in method #3, won't you?

I believe the method so far has been a bit of a combo of 3 and 4 since I was trying the FlyAKite usage of the stage 1 setup along with SETUPLDR.BIN. You're right though, if I could get this simple CD copy to work it would be much more in the #3 category. However, I've given it a shot, and ran right back into the problem that without migrate.inf, the installation will not continue and prompts for the setup CD, even if all the WIN51.IP tag files are in place on the USB.

Thanks for hanging with me on this one. It really does seem like what we are missing is only a simple switch somewhere. I believe the stick setup boot process is obtaining data per this flow:

Boot sector - NTLDR (copy of SETUPLDR.BIN) - TXTSETUP.SIF - WINNT.SIF and migrate.inf

I'll be back when there's more to tell after the file copy.

#26 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 11 November 2006 - 06:27 PM

Getting close. First, some info.

The format and info for winnt.sif is indeed the same as for unattend.txt.

Oempreinstall is not really valid for what we are trying to do. It is used during unattended install to setup other vendor and install-specific programs and drivers during install. These are placed in a setup $oem$ folder. From the deployment tools help file,

Quote

Syntax OemPreinstall = Yes | No
Yes
Setup copies the subfolders and files contained in the \platform\$oem$ folder.

No
Setup does not copy these files.

I followed the steps again from the previous post, only this time I removed migrate.inf, but not winnt.sif

1. Run a setup by E:\I386\winnt32.exe /noreboot /makelocalsource
2. Format USB drive with PeToUSB (but did not copy any build files - format only)
3. Copy directories C:\$WIN_NT$.~BT and C:\$WIN_NT$.~LS to the USB drive (takes a while)
4. Copy the following from C:\$WIN_NT$.~BT to the USB root \

TXTSETUP.SIF
NTDETECT.COM
SETUPLDR.BIN

5. Rename SETUPLDR.BIN on the USB root to NTLDR
6. Delete migrate.inf from \$WIN_NT$.~BT on the USB drive

Things work fine. The problem now is, that during install, as the extra files created in step 1 by the /makelocalsource switch are copied to the hard drive, they are deleted from the USB stick.

I am sure there is a switch to prevent this, but for now I've got to run out to dinner. It looks like the solution will lie in the TXTSETUP.SIF file.

This post has been edited by porear: 11 November 2006 - 08:11 PM


#27 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 12 November 2006 - 06:48 AM

To avoid the problem of steps 4 and 5 above, you can try using Grub4DOS to chainload SETUPLDR.BIN directly.

This would give you also more options when booting, say, access to a DOS or Linux boot, etc.

All you need to do is copying to the root of the stick grldr (from the grub4dos package), rename it to NTLDR and add a menu.lst with this entry:

Quote

# This loads SETUPLDR.BIN in /$WIN_NT$.~BT
# from the current root (the device you booted from)
chainloader /$WIN_NT$.~BT/SETUPLDR.BIN
Get grub4dos here:
http://grub4dos.jot.com/WikiHome

Search posts by me on 911cd forum with text "grub4dos" for some examples and tips.

Quote

Things work fine. The problem now is, that during install, as the extra files created in step 1 by the /makelocalsource switch are copied to the hard drive, they are deleted from the USB stick.

GOOD! :)
I'll have a look too if I can find a way to avoid deletion of that....

jaclaz

#28 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 12 November 2006 - 07:42 AM

Quote

To avoid the problem of steps 4 and 5 above, you can try using Grub4DOS to chainload SETUPLDR.BIN directly.

Thanks I might give Grub4DOS a shot. I've used BootitNG for multibooting USB before and was expecting to try it. I was trying to establish a working standalone project before adding the other boot loader, but maybe I should go ahead and add that piece now.

Thanks! :)

#29 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 12 November 2006 - 01:01 PM

Ugh. I am trying my best to only vary one thing at a time but somehow another detail slipped through, and I'm not sure how I got past it before. When setup copies the files from the USB to the HD, it sets up the next boot from the HD for the GUI portion of setup to continue. This is done in boot.ini on the HD.

When installing from the USB stick, it thinks the USB is HD0, and that the HD being installed to is HD1. So, the new boot.ini entry is

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional"

when removing the USB stick to reboot for Windows GUI setup, your HD becomes HD0, so the boot.ini entry needs to be

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"

for it to work. Another minor detail. I would think this could either be fixed by

1. config setting during setup to explicitly state what the boot.ini entry should be, or
2. at the end of text setup run a simple batch or command file that edits boot.ini, or
3. use a USB drive boot manager to make sure the HD on which Windows will be installed is always seen as HD0 by the USB drive, which can then be assigned HD1 (or HDx)

I don't know which of these are possible or which would be simplest. I truly believe this issue and the USB setup file deletion at copy are the last two hurdles (but I could be wrong?) :unsure:

#30 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 12 November 2006 - 01:56 PM

porear said:

When installing from the USB stick, it thinks the USB is HD0, and that the HD being installed to is HD1.

Yep, that is what made me ask before which letter was assigned to the HD, booting from the stick automatically makes it first drive.

porear said:

2. at the end of text setup run a simple batch or command file that edits boot.ini,

If the drive lettering ( C: ) of the hard drive is correct, thus should be the easiest solution.

Please find here a small batch and some useful info to that effect:
http://www.msfn.org/...topic=66101&hl=


porear said:

3. use a USB drive boot manager to make sure the HD on which Windows will be installed is always seen as HD0 by the USB drive, which can then be assigned HD1 (or HDx)


You can try using Grub4DOS to map the stick as another HD or even FD, something along the lines of:
map --read-only (hd0,0)+1 (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
boot

maybe mapping it as read-only will prevent deletion of the files.

jaclaz

This post has been edited by jaclaz: 13 November 2006 - 06:10 AM


#31 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 12 November 2006 - 02:17 PM

Quote

Yep, that is what made me ask before which letter was assigned to the HD, booting from the stick automatically makes it first drive.

You're right. I apologize, I'm trying to be as correct as possible in working this out but I keep making errors. :( The best I can guess is that maybe I left migrate.inf in place and it somehow took care of the drive mapping, but not sure.

At least this seems to be a problem that won't be too hard to overcome. Thanks very much for the help and the tips, I'll give the batch file and the Grub4DOS ideas a look. I've been trying to read up on TXTSETUP.INF to see if somewhere in all the ,,,,s in the syntax of the [SourceDiskFiles] section there is a setting that would prevent file deletion after copying, but have not found such yet. The read-only mapping might be the thing to do. This stick doesn't have a hardware write lock switch on it.

Thanks again, I'm still on the job...

#32 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 13 November 2006 - 08:31 AM

Still stuck with the same two issues.

I'm using GRUB4DOS now (great tool!) but when I tried the boot entry you suggested, I still got a boot.ini that pointed to the wrong disk, and the files were still being deleted from the USB stick. I think the --read-only switch only applies to grub-install, but the loader didn't complain about it being there.

I have also tried various permutations of mapping

map (hd0) (hd1)
map (hd1) (hd0)

with no success.

Although GRUB will recognize this re-mapping for booting, won't the Windows setup still always assume that it is being run from HD0 regardless?

I have not yet experimented with the batch files for re-writing boot.ini. Thanks!

#33 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 13 November 2006 - 10:10 AM

porear, sorry, I modified my previous post, the Grub4Dos entry I posted was wrong, can you try with the new one?

Also, cdob appears to have joined in the "game", I am crosslinking to the other thread:
http://www.msfn.org/...topic=81788&hl=

jaclaz

#34 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 13 November 2006 - 03:16 PM

Hello, cdob, welcome.

Well, I tried the revised boot entry, but got this:

Quote

Booting 'Boot WinXP Setup from USB'

map --read-only (hd0,0)+1 (fd0)
FAT16 BPB found with the starting 0xEB (jmp) confirmation.
probed C/H/S = 246/255/63, probed total sectors = 3963841
chainloader (fd0)+1

Error 26: Disk read error
I also tried mapping (hd0) to (fd0) without specifying the partition as in (hd0,0) but still got Error 26.

I tried

map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1)
chainloader (hd1)+1

but that did a double swap (or maybe no swap at all? same result) and I ended up booting my hard drive instead of the USB.

However, when I tried (this is where it gets interesting)

title Boot WinXP Setup from USB
map --read-only (hd0) (hd1)
rootnoverify (hd1)
chainloader (hd1)+1
boot

it made it. I booted successfully from the USB setup, files were copied, the machine rebooted, and the GUI part of setup began. Unfortunately it stopped soon after, and a dialog box popped up looking for files

Quote

Files needed

The file 'asms' on Windows XP Professional Service pack 2 CD is needed.

Type the path where the file is located and then click OK.

Copy files from

and the list box was pre-populated with

Quote

GLOBALROOT\DEVICE\HARDDISK1\PARTITION1\$WIN_NT$.~LS\I386

the only other choice in the list box was A: So, I could not continue at this point.

Next interesting thing: The boot.ini contains

[boot loader]
timeout=1
default=signature(76c076b)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
signature(76c076b)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

Lastly, the files are still being deleted from the USB stick as they are copied.

This post has been edited by porear: 13 November 2006 - 04:41 PM


#35 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 13 November 2006 - 04:56 PM

In case it helps here is the setuplog.txt that was created.

Attached File(s)


This post has been edited by porear: 15 November 2006 - 07:09 PM


#36 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 14 November 2006 - 06:57 AM

Hmmm, I think that you are getting really close :).

The fact that in boot.ini the "signature" syntax is used should mean that the drive is recognized as a "peculiar" one, but this, as I see it, is a good thing.

You can check the Disk (and stick) signature with MBRFIX or MBRWIZARD:
http://www.sysint.no...ting/MbrFix.htm
http://www.sysint.no...ting/MbrFix.zip
http://home.graffiti...z:graffiti.net/
http://home.graffiti.net/jaclaz:graffiti.n...X/mbrfix0.2.zip

The
title Boot WinXP Setup from USB
map --read-only (hd0) (hd1)
rootnoverify (hd1)
chainloader (hd1)+1
boot


should work as follows:

You map the stick (booted from, and thus first drive, or hd0) to second drive hd1, then you boot from it.

The question is how is "mapped" the internal hard disk drive and how is this seen by windows setup?

The reference to

Quote

d:\xpsprtm\base\ntsetup\syssetup\
should mean that (if I get it correctly the \xpsprtm directory is on the stick) the mapping is correct, i.e. the stick gets letter "d:".

On the other hand, the fact that the reference to

Quote

GLOBALROOT\DEVICE\HARDDISK1\PARTITION1\$WIN_NT$.~LS\I386

gives the missing file error, should mean that by this part of the setup the stick is NOT seen as second drive (HARDDISK1) but probably as first one (HARDDISK0)

One thing you could try is the following:

Quote

title Boot WinXP Setup from USB
map --read-only (hd0) (hd2)
map (hd1) (hd0)
rootnoverify (hd2)
chainloader (hd2)+1
boot
most probably you will have the same behaviour, but the box list could be "populated" by

Quote

GLOBALROOT\DEVICE\HARDDISK2\PARTITION1\$WIN_NT$.~LS\I386

instead.

Also, can you post (attaching it) the migrate.inf file you get when you prepare the stick with WINNT32.EXE?

I still have the "feeling" that the solution could be there.... :huh:


jaclaz

#37 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 14 November 2006 - 07:52 AM

migrate.inf is attached.

Not sure but thought maybe winnt.sif or sysprep.inf could play a part...

Thanks!

Attached File(s)


This post has been edited by porear: 14 November 2006 - 10:02 AM


#38 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 14 November 2006 - 10:01 AM

This does not seem to be a true hard disk drive letter mapping. I've not been able to find the \xpsprtm directory during setup, so I am assuming this is some "virtual" location that may be created on-the-fly. When searching the 'net, I only find instances of this sequence logged as mapped to d:\ ??

Quote

should mean that (if I get it correctly the \xpsprtm directory is on the stick) the mapping is correct, i.e. the stick gets letter "d:".
At this point the stick isn't even plugged in. The stick was pulled out of the machine when rebooting into the GUI setup, because otherwise we would be booting to the stick and starting text setup over again.

We could create another entry in GRUB to get around this and selectively boot to the hard drive, but then we would have to add specifics about the installation to the boot entry, such as which hard drive and directory the text setup installs to. This limits desired flexibility in the install to say that you must always install windows on x drive in y directory so that the GRUB entry will be correct.

Our problems stem from trying to jump start an install in the middle of the usual process. Once the GUI setup begins, it assumes that the text setup has created $WIN_NT$.~LS on the hard drive and that any files it needs will reside there.

Instead, our $WIN_NT$.~LS is on the stick, but the GUI part of setup running from C:\WINDOWS doesn't know it. I don't know if the GUI setup initially loads USB drivers such that it would see the stick anyway.

Does this enumeration scheme begin at 0 or 1?

Quote

GLOBALROOT\DEVICE\HARDDISK1\PARTITION1\$WIN_NT$.~LS\I386

because if it needs to be HARDDISK0 it might also need to be PARTITION0.

So I think the tasks at hand are:

Find a way for the GUI setup to see the stick
Point the GUI setup to the stick for the $WIN_NT$.~LS\I386 directory
Find a way to stop deletion of files from the the as they are copied in text mode setup

The other question would be whether the stick could be inserted and recognized after GUI setup start, or if we would have to boot around it in the BIOS sequence with GRUB on the stick.

Also as an FYI, found this about the signature syntax in boot.ini
http://support.micro...com/kb/q227704/

Thanks again for all the time and help! :)

This post has been edited by porear: 14 November 2006 - 10:14 AM


#39 User is offline   jaclaz 

  • The Finder
  • Group: Developers
  • Posts: 11,433
  • Joined: 23-July 04
  • OS:none specified
  • Country: Country Flag

Posted 14 November 2006 - 11:48 AM

hmmm, more research to do....

About:

Quote

At this point the stick isn't even plugged in.
I am clearly missing something:
where is the $WIN_NT$.~LS directory, if not on the stick? :unsure:


I assumed that the syntax of

Quote

GLOBALROOT\DEVICE\HARDDISK1\PARTITION1\$WIN_NT$.~LS\I386


would be similar to the BOOT.INI one, where first disk is 0, but first partition is 1, byt I may be wrong.

To better analyze the contents of your migrate.inf, can you do the following ?:
1) Download on the computer you used WINNT32.EXE the DSFOK here:
http://members.ozema...eezip/freeware/
2) unzip it, open a command prompt in the directory and run the VLM tool like VLM > VLM.TXT
3) from the same command prompt run mountvol >> VLM.TXT
4) post (attach) the VLM.TXT

There might be a relationship between the drive signature and the entries in migrate.inf aka entries in the Registry or however another way to "couple" migrate.inf drive letter assignments to the fixed hard disk.

I'll post what I can find or if some other idea comes out.

jaclaz

#40 User is offline   porear 

  • Newbie
  • Group: Members
  • Posts: 49
  • Joined: 10-August 04

Posted 14 November 2006 - 03:52 PM

Quote

I am clearly missing something:
where is the $WIN_NT$.~LS directory, if not on the stick?

Sorry if I wasn't clear. The $WIN_NT$.~LS directory is on the stick, but the stick is removed between text setup and reboot for GUI setup.

The sequence is

Boot USB stick into text mode setup on USB stick via GRUB4DOS
Run text mode setup from USB stick which copies some setup files to C:\WINDOWS on hard disk
Remove USB stick
Reboot, booting from C: into GUI mode setup from C:\WINDOWS
Replace USB stick
Failure when $WIN_NT$.~LS\I386 isn't found for more files needed by GUI setup.

May have missed the right combination, but was not able to then find the stick by changing the numbers in HARDDISKx\PARTITIONy

So either $WIN_NT$.~LS\I386 needs to be copied to the hard drive that Windows is being installed onto at the end of the text mode setup (inefficient and time consuming), or somehow the GUI mode setup needs to be able to acccess the USB stick, which I have yet to achieve. I am not certain if at initialization the GUI setup loads USB drivers or not.

My VLM.TXT is attached. Thanks!

Attached File(s)

  • Attached File  VLM.TXT (1.69K)
    Number of downloads: 24

This post has been edited by porear: 15 November 2006 - 08:41 PM


Share this topic:


  • 25 Pages +
  • 1
  • 2
  • 3
  • 4
  • Last »
  • You cannot start a new topic
  • This topic is locked

56 User(s) are reading this topic
0 members, 56 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2013 msfn.org
Privacy Policy