Jump to content











Photo
* * * * - 1 votes

Create universal flash boot disk with fbinst


  • Please log in to reply
107 replies to this topic

#76 TruePurple

TruePurple

    Newbie

  • Members
  • 20 posts
  •  
    United States

Posted 16 December 2009 - 04:43 PM

WTH?! A full page worth of posts seem to have vanished!


Anyway, does anyone know how to get this to work under win98? When I try a dos shell pops up for just a brief moment, then nothing. Or another program like this I can use under win98 so that my cmos which only has a boot option of USB FDD, will use my flash drive?

Can this program be run on winXP nonwindowed "dos mode"?

#77 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7100 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 16 December 2009 - 07:59 PM

WTH?! A full page worth of posts seem to have vanished!


Anyway, does anyone know how to get this to work under win98? When I try a dos shell pops up for just a brief moment, then nothing. Or another program like this I can use under win98 so that my cmos which only has a boot option of USB FDD, will use my flash drive?

Can this program be run on winXP nonwindowed "dos mode"?


I split the topic here:
http://www.boot-land...?showtopic=9997

(and replied to you too)

Please let us continue on the split thread. :rolleyes:

jaclaz

#78 xpt

xpt

    Frequent Member

  • Advanced user
  • 135 posts
  •  
    Canada

Posted 28 June 2010 - 08:12 PM

grldr from here (it was specially tweaked for fbinst)

http://bbs.znpc.net/...nt.php?aid=3616


which will give me:

SYSOFT时空论坛 提示信息

对不起,请不要从外部链接下载本论坛的附件。

which mean, please don't link downloads directly from outside.

I searched for grldr AND fbinst in bbs.znpc.net but got nothing.

Which bbs message that contains the grldr download url please?

Further, the grldr is for fbinst v1.5, not v.12 right? Ref:

yeah u'r right lancelot :fine: , i guess im extra excited about this tool . it is first of its kind actually .

bean is a very sharp coder really , i have seen him releasing debug versions at a blazing speed ./ specially his moded grldr version which he releases for v 1.2 i guess . which was for those systems that were loading grd slow .
but now i guess it is not compatable with v1.3...


thanks

#79 xpt

xpt

    Frequent Member

  • Advanced user
  • 135 posts
  •  
    Canada

Posted 28 June 2010 - 08:17 PM

I searched for grldr AND fbinst in bbs.znpc.net but got nothing. . . ., the grldr is for fbinst v1.5, not v.12 right?


Find the fbinst v1.5 corresponding post in bbs.znpc.net, at
http://bbs.znpc.net/...ad.php?tid=5669

there is a grldr download there, but it is only for the fbinst released on 2009-6-11 23:27.

So again, what grldr should I get for fbinst v1.5?

thanks

#80 maanu

maanu

    Gold Member

  • Advanced user
  • 1134 posts
  •  
    Pakistan

Posted 28 June 2010 - 08:27 PM

Find the fbinst v1.5 corresponding post in bbs.znpc.net, at
http://bbs.znpc.net/...ad.php?tid=5669

there is a grldr download there, but it is only for the fbinst released on 2009-6-11 23:27.

So again, what grldr should I get for fbinst v1.5?

thanks


any grldr.

p.s the following might will interest you, :fine:

http://www.boot-land...showtopic=11463

#81 xpt

xpt

    Frequent Member

  • Advanced user
  • 135 posts
  •  
    Canada

Posted 28 June 2010 - 08:49 PM

the following might interest you, :fine:

http://www.boot-land...showtopic=11463


yep, just found it. will try it right away. please reply to my question there.

thanks

#82 RescueThePinguins

RescueThePinguins
  • Members
  • 3 posts
  •  
    Switzerland

Posted 08 October 2010 - 01:22 PM

¨Hi everybody,

The system:
Hardware System: Different
Internal HD: Western Digital 80 – 160GB (NTFS) with Windows XP
External HD: Western Digital 500GB (NTFS) for backups

Here is my problem.
I have ~100 PC with the problem that they want boot with the external HD and not with the internal, because the BIOS settings are wrong. By that many PCs I can’t go to everyone and change the BIOS settings by hand and there also not all on the same place, so I must make this with a remote control.
My idea is to install a bootmanager on the external HD which would boot the internal HD with the OS (Windows XP). But of the external HDs are backups, so I can’t format them.

Try 1:
First I’ve installed grub4dos with the grubinst tool and have copied the grub kernel “grldr” and the “menu.lst” on the root directonary on the external HD. But when I’ve tried to boot from the external HD I get the error: “Try (hd0,0) NTFS5p:”


Try 2:
Next I’ve found this page and installed the “grldr” file with fbinst into the MBR. The “grldr” file was modified with the menu.lst which I’ve copied into the grldr file with the grubmenu tool.
Then I became the error: “No file”.
After that I’ve tried to use the fbinst without the modified “grldr” file and used a normal “grldr” file but it came the same error: “No file”.

The commandos I’ve used:

grubmenu import grldr menu.lst

fbinst (hd1) add grldr c:\grldr

#83 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 08 October 2010 - 06:56 PM

The simplest solution (as you said) is to make the host OS the default in your boot menu.


My idea is to install a bootmanager on the external HD which would boot the internal HD with the OS (Windows XP). But of the external HDs are backups, so I can’t format them.

You need to add the boot menu (files) without re-formatting, this may or may not be an issue depending on how the drives are setup. If NTLDR and boot.ini present, you simply need to add the following line to end of boot.ini:

C:\grldr="Rescue Boot Options"

and make the internal drive default, so something like this:

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="Rescue Boot Options"

and of course add the grldr and menu.lst with your other boot options which will only be invoked if chosen from initial startup menu.

--
Thinking about it, I realize this solution won't work because you would need to set this up on each of the (100) machines; sorry, wasn't thinking. It's actually possible to automate this with a batch but potentially damaging to existing setups so not advised. I see your problem clearer but it raises a question; why would you be booting from an external drive if you want to boot from internal one? If you want to boot to internal drive, simply unplug the external (or setup the internal as described above). I still feel like I'm missing something <_<

#84 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 08 October 2010 - 10:18 PM

Hey peeps :cheers:, IMHO you are making it more difficult than needed.

The problem RescueThePinguins has can be summed up as:
  • the BIOS is wrongly set with booting from External hard disk BEFORE internal one

The solution sketched by RescueThePinguins is theoretically "right", but incomplete.

The solution suggested by amalux is as well theoretically "right", but incomplete/based on assumptions <_<.

Some info is missing:
  • HOW are the external hard disks partitioned/formatted? (amalux assumed that there is at least one Primary partition on it, that this partition is Active, and that this Primary Active partition was formatted under 2K/XP or 2003 - and thus has a PBR or bootsector invoking NTLDR )

If ALL the assumptions by amalux are correct:
  • if there is NO NTLDR in the Active Primary NTFS partition on External HD, formatted under 2K,XP or 2003, then add a copy of NTLDR to it
  • add also a BOOT.INI file with these contents:

    &#91;boot loader&#93;
    
    timeout=5
    
    default=C&#58;\grldr
    
    &#91;operating systems&#93;
    
    C&#58;\grldr=&#34;Grub4Dos&#34;
  • add also grldr from the grub4dos package
  • add also a menu.lst file with these contents:
    color black/cyan yellow/cyan
    
    timeout 5
    
    
    
    title Restore drive order and boot from internal HD
    
    map &#40;hd0&#41; &#40;hd1&#41;
    
    map &#40;hd1&#41; &#40;hd0&#41;
    
    map --hook
    
    chainloader &#40;hd0&#41; +1

Problem (rewritten):

Drive order in BIOS is wrong.


Solution:

Boot from the "wrong" hard disk, restore correct drive order, then boot from "right " HD.


This also assumes :cheers: that on each of the ÷100 PC's there is ONLY a single internal hard disk (or anyway that there is NO other device that is seen by the BIOS or by the OS as a hard disk drive).
If the above is not true, you need a more complex solution, that can be derived from this documented method:
http://www.boot-land...?...c=12449&hl=

:mellow:
Wonko

#85 RescueThePinguins

RescueThePinguins
  • Members
  • 3 posts
  •  
    Switzerland

Posted 11 October 2010 - 01:08 PM

First of all thank you two for the answers.

For the correctness:

Internal HD:
1 Partition with Windows XP 32Bit and NTFS formatted.

External HD:
1 Partition with Data for Backup and also NTFS formatted, without a NTLDR.

Hope now is it clear. Otherwise please ask.

@amalux
Yes you have something misunderstand :D but thx anyway for the answer.

@Wonko
Grazie mille. :cheers:
I have tried to make it like you said but I’ve a problem.
On my external HD was no NTLDR or Boot.ini, so I have copied theses Files from my internal HD. Then I have rewritten the Boot.ini.
Then I have copied the grldr from the newest grub4dos and also the menu.lst which I have also rewritten with your code.
The problem is, every time I boot form the external HD the computer says:
“A disk read error occurred”
“Press ctrl + alt + del to restart”

Try:
I have made the same things with a USB-Stick which has only 4GB memory, because I’ve heard that the BIOS only can handle ~137GB but it gave the same error.

#86 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 11 October 2010 - 02:09 PM

The problem is, every time I boot form the external HD the computer says:
“A disk read error occurred”
“Press ctrl + alt + del to restart”

Try:
I have made the same things with a USB-Stick which has only 4GB memory, because I’ve heard that the BIOS only can handle ~137GB but it gave the same error.


The strings:

“A disk read error occurred”
“Press ctrl + alt + del to restart”

do not come from the "standard" MBR or bootsector/PBR:
http://www.msfn.org/...o...21391&st=25

It is very probable they come from the BIOS.

That should mean that any of the following is true:
  • the PC BIOS sees ANY Mass Storage USB device as "superfloppy" (i.e. doesn't have a provision for USB HDD booting)
  • the device has not bootable MBR code
  • the device partition table has NOT any active primary partition
  • the device partition table has set as active an Extended partition (which EMBR has no bootable code)
  • the device partition table has NOT any active partition (no matter if primary or logical inside extended, if one of this latter type is active you should have a different error, coming from wrong data in the EPBR)

First thing you should try doing is (assuming that DATA on the USB stick is "expendable") to partition/format it using RMPREPUSB, at the moment one of the most reliable/universal available ways:
http://www.boot-land...?showtopic=7739

You want to use the settings:
  • Xp/BartPE bootable (NTLDR)
  • FAT32 or NTFS - your choice
  • Boot as HDD (C: 2PTNS)

Once formatted, you copy to the stick:

and try booting from the stick.

You should be able to see the two available choices ("Microsoft Windows XP Professional" and "Grub4Dos").

If this works as expected, you add to it grldr and the posted menu.lst.

If the above doesn't work, get HDhacker:
http://dimio.altervista.org/eng/

and save the MBR of the external HD and that of the USB stick (you want to save the first sector of the corresponding PhysicalDrive).
Compress the two 512 bytes long resulting files into a .zip archive, post it on any free hosting site and post in your next reply a link to them, I'll have a look at them and may be able to help you.

:D
Wonko

#87 RescueThePinguins

RescueThePinguins
  • Members
  • 3 posts
  •  
    Switzerland

Posted 11 October 2010 - 03:41 PM

Hi,

Thx a lot again for the fast answer.
I have until yet not the time to try out what you have written but I will try it as fast as I can.

I hope you have not already gave a answer to this question in the post before.
Because I’ve read that the BIOS only can handle up to 137GB I’ve tried the same with a smaller HD (80GB) and it works!
I’ve made the exactly same with the bigger HD but there it doesn’t work. Now my question is it possible to read upper 137GB?

Wish everyone a nice evening
RescueThePinguins

#88 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 12 October 2010 - 05:29 PM

Well, you reported that BOTH your >137 Gb AND your 4 Gb stick failed to boot. :cheers:

My previous post was aimed to check if there was a problem with the 4 Gb stick.

Now that you have a working 80 Gb HD, the problem may really be the 137 Gb limit (but you should suceed with the stick too), but AFAIK, there is NO problem whatsoever on BIOS that do have a 137 Gb limit, in booting a USB hard disk (bigger than 137 Gb) as long as it's first, active, Primary partition is smaller than 137 Gb.

In other words, you should partition your "big" USB hard disk with Disk Management in more than one partitions, of which the first one should be primary and active and smaller than 137 Gb in size.

:)
Wonko

#89 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 17 January 2011 - 07:33 AM

First, I want to start by thanking all the developers and contributors that are making the tools that make our lives so much better. A million thanks. :smiling9:

A little bit of background: I have been reading non stop for the past 3 weeks because I feel like a cave man being catapulted into the 23rd century. I had discounted booting from usb as a useless novelty. But thanks to a number of hardworking gurus out there, we are in a different age. Again, thank you all.

I am not a developer. I am a small windows network administrator.
I have been reading on the subject from the different forums and clicking on ALL the links to make sure I understand enough to make educated decisions. I have read entire forum topics (some 5/24/40/60+ pages long) and some of the information I read is outdated. Seeing that I knew very little on the subject when I started this quest 3 weeks ago, I am currently a bit overwhelmed, overloaded, confused and tired. And still reading/rereading...
Some of the concepts are not easy to grasp by lack of background, even when google is my friend (a good friend). I am still trying to grasp things and I am starting here because the first thing to do is to properly partition and format the drive.

I have red of many utilities, and I like ubusb because of the ability to create a kicker cd. I am now looking into fbinst because members of different forums claim it is the most compatible. I have done the best research I could to know about it, including reading the translation of the chinese forum, and this one.

Since so much of what I read is old (caveman catching up), I need to know if this is still the best solution for preparing a drive as far as compatibility is concerned.

I do not understand all the various usb boot methods, but so far, I gather floppy emulation and hard drive emulation. Is there a CD emulation? Are there any other?
How do I achieve an "emulation compatibility" to make sure I can boot from the different BIOS'?
I have learned to use gub4dos and I think I can manage with it. I think I understand it well enough to use it and its --map feature.

What should I do to have a UFD that I am fairly confident would boot in all (most) machines, including the older ones?
What file system should I use? Is fat16 still the safest for compatibility? If so, should I have a small partition just for the sake of booting and use fat32/ntfs for the rest of the drive? Some have said that it is unnecessary, but some BIOSes will only boot fat16 from what I understand. Again, that maybe old thinking from the trial and errors that was going on at the beginning.

Please share your views with me and give me some guidelines/training wheels to work with.

Again, thank you all for your contributions.

#90 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 17 January 2011 - 11:03 AM

Please share your views with me and give me some guidelines/training wheels to work with.

Again, thank you all for your contributions.


Let's see if I can sum up the situation for you.
Booting is made of TWO parts:
  • booting (real mode) involving BIOS+MBR(+hidden sectors) and possibly PBR/bootsector, then filesystem and initial OS loader/system file
    and
  • booting :thumbsup: (protected mode or however actual OS booting) involving actual OS loader, OS files, drivers, etc.

First part is "dominated" by BIOS.
Second part is "dominated" by actual OS and drivers.

About "best" method:
  • fbinst uses NON-standard and "multiple" ways, thus it can be "more compatible" (in the sense of being compatible with more BIOSes) BUT there is a risk of an incompatibility with the actual OS (or with some "specific" programs you may want to run from within the OS).
  • RMPREPUSB uses "standard" way, thus it can be "more compatible" (in the sense of being compatible with more BIOSes) with BIOSes that have been tested with "standard" devices AND there is NO risk of an incompatibility with the actual OS (or with some "specific" programs you may want to run from within the OS).

There is a "tree" of type of devices that may be supported by BIOSes :
  • CD/DVD <- this includes actual CD/DVD devices AND USB (usually flash) drives that provide CD emulation devices
  • non-partitioned devices <- this includes floppies, superfloppies, non-partitioned USB stick and one type of ZIP disks and the LS-120, which is partitioned, but is generally mapped as superfloppy
  • partitioned devices <- this includes hard disks, partitioned USB sticks and another type of ZIP disks

Mind you that a given BIOS may support:
  • ALL the branches of the above tree
  • ONLY some (or even only ONE) of the main branches of the above tree
  • ONLY some (or even only ONE) of the further branches of the tree

Additionally, BIOSes may add Size barriers, typical ones observed have been the same as old HD size barriers:
  • around 512 Mb
  • around 1 Gb
  • around 2 Gb
  • around 8 Gb
  • Around 128 Gb

I will try to make a diagram of the above and post it.

:smiling9:
Wonko

#91 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 18 January 2011 - 04:44 AM

Thanks jaclaz/wonko/was_.../...
How did I know you were going to jump on this?
Thanks a million.

Back to topic, it's now clear as mud. It cleared my doubts. The diagram would be helpful because I am not the only one reading and it might be useful to someone else in the future. Besides, it will give you something else to link to :)
But you made it clear for me. Thank you.

Back to more probing: what is the incompatibility due to in the OS?
Does it have to do with some disk management programs? If so, would it really matter if you are not trying to manage the UFD?

booting ;) (protected mode or however actual OS booting) involving actual OS loader, OS files, drivers, etc.

I have realized that grub4dos was a must to learn for anyone serious about booting with flexibility. I think that covers this item, right? (I mean besides the OS stuff)

About "best" method:

the multiplicity of ways in fbinst would make it the most compatible if we are not playing with "certain" applications. Does it not also use the "standard" way RMPREPUSB uses? If it is, what do I need to watch out for should I go that route?


The "tree" explanation simplifies and clarifies things. From your BIOS support matrix, I finally understand that regardless of my best efforts, I "may not" be able to boot certain BIOSes regardless of what method I use. I will just have to pick the one that I think will meet the most machines I work with. I have still not decided because I do support all the members of my congregation. I have no way of narrowing down to a list so I am still looking at it from the angle of it booting the most various types of machines.
Just a thought: can't I solve the OS problem with grub4dos? What would the problem be once the OS takes over?
I was under the impression that the multiplicity of ways that fbinst offers would solve the compatibility issue once I am able to use grub4dos to juggle things around and make them look the way they should to the OS. Am I missing something?

Again. thank you all for your help. I do not take it for granted and really appreciate it.
Thank you.

Edited by LeMOGO, 18 January 2011 - 04:49 AM.


#92 xpt

xpt

    Frequent Member

  • Advanced user
  • 135 posts
  •  
    Canada

Posted 18 January 2011 - 05:29 AM

I will try to make a diagram of the above and post it.


Yes please, but please do continue even if you give up drawing the diagram.

BTW, how can we "thanks" to posts that we used to be able to?

thx

#93 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 19 January 2011 - 02:54 PM

Find attached a "tentative" diagram.
Excel format.

As always ideas, suggestions, corrections are welcome. :)

I see that this part is not yet clear:

Booting is made of TWO parts:

  • booting (real mode) involving BIOS+MBR(+hidden sectors) and possibly PBR/bootsector, then filesystem and initial OS loader/system file
    and
  • booting ;) (protected mode or however actual OS booting) involving actual OS loader, OS files, drivers, etc.


I'll try to explain in layman's terms the issue. :dubbio:

You have to make a mental distinction between what a loader is (OS loader) and what a bootmanager is.
And also you have to understand the difference between "Real Mode" and "Protected" mode.

An OS loader is something that boots the OS kernel.
A bootmanager is something that gives you options among different booting possibilities.

Most Operating Systems in use nowadays run in "protected mode", the only common exceptions are DOSes (MS-DOS, FreeDOS, etc.) that are "real mode" only ones.

The PC hardware (BIOS) boots in "real mode", and ONLY after some code is run in "real mode", it can be "switched" to "protected mode".
At a certain point during the booting process a "Switch" is performed from "Real Mode" to "Protected Mode".
This "Switch" - if any - may be performed in different stages of the booting on different OS.

  • In MS-DOS, versions >=7.x the file IO.SYS is the kernel (it is itself a loader or - if you prefer - it needs NO loader, the loader is normally the Volume bootsector itself)
  • In FreeDOS, the file kernel.sys ;) is the kernel (and, as above, it is itself a loader or - if you prefer - needs NO loader, the loader is normally the Volume bootsector itself)
  • NTLDR is PRIMARILY an OS loader (for NT based systems up to version 5) together with NTDETECT.COM AND SECONDARILY a bootmanager for different installs of the same family of systems AND for bootsectors/bootcode ONLY.
  • BOOTMGR is PRIMARILY an OS loader (for NT based systems > version 5) AND SECONDARILY a bootmanager for different installs of the same family of systems (and for versions < 5) AND for bootsectors/bootcode ONLY.
  • LILO is ONLY an OS loader (capable of loading the Linux kernel ONLY)
grub4dos (like syslinux/isolinux, etc.) can be defined:

  • PRIMARILY a bootmanager, as it can load directly (chainload):
    • NTLDR
    • BOOTMGR
    • Volume bootsectors
    • Hard disk MBR's
    • CD bootsectors
  • SECONDARILY an OS loader, as it can load directly (chainload):

    • Linux kernel
    • DOS IO.SYS
    • FreeDOS kernel.sys

In other words, in "plain", single boot installs:
BIOS->MBR->PBR->IO.SYS->Other files->OS booted
BIOS->MBR->PBR->Kernel.sys->Other files->OS booted
BIOS->MBR->PBR->Lilo->Linux kernel->"Switch"->Other files->OS booted
BIOS->MBR->PBR->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other files->OS booted
BIOS->MBR->PBR->BOOTMGR->(BCD)->"Switch"->Other files->OS booted

In a NT <6 + DOS:
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->NTDETECT.COM->"Switch"->NT <6 OS booted
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->Copy of bootsector->IO.SYS->Other files->DOS OS booted

In a NT >=6 + NT <6:
BIOS->MBR->PBR->BOOTMGR->BCD->Choice->"Switch"->Other files->OS booted
BIOS->MBR->PBR->BOOTMGR->BCD->Choice->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other files->NT <6 OS booted

In grub4dos based NT <6 + DOS (as an example) you have more possibilities:
BIOS->MBR->PBR->grldr->menu.lst->Choice->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other files->NT <6 OS booted
BIOS->MBR->grldr->menu.lst->Choice->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other files->NT <6 OS booted
BIOS->MBR->PBR->grldr->menu.lst->Choice->Copy of bootsector->IO.SYS->Other files->DOS OS booted
BIOS->MBR->PBR->grldr->menu.lst->Choice->IO.SYS->Other files->DOS OS booted
BIOS->MBR->grldr->menu.lst->Choice->Copy of bootsector->IO.SYS->Other files->DOS OS booted
BIOS->MBR->grldr->menu.lst->Choice->IO.SYS->Other files->DOS OS booted
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->grldr->menu.lst->Choice->Copy of bootsector->IO.SYS->Other files->DOS OS booted
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->grldr->menu.lst->Choice->IO.SYS->Other files->DOS OS booted
BIOS->MBR->PBR->IO.SYS->Other files->DOS OS booted->grub.exe->menu.lst->Choice->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other files->NT <6 OS booted

You can also "loop" (de gustibus...) :whistling: :
BIOS->MBR->PBR->grldr->menu.lst->Choice->NTLDR->BOOT.INI->Choice->grldr ....
BIOS->MBR->grldr->menu.lst->Choice->NTLDR->BOOT.INI->Choice->grldr ....
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->grldr->menu.lst->Choice->NTLDR ...
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->grldr->menu.lst->Choice->MBR ...
BIOS->MBR->PBR->NTLDR->BOOT.INI->Choice->grldr->menu.lst->Choice->PBR ...

The idea is that anything to the LEFT of any "Switch" is "first part of booting" and Choice are the only places where you can stop the booting process (and see what is happening up to there).
Anything on the RIGHT of "Switch" is second part of booting, and the two things are VERY SEPARATED by the "Switch".
Conversely this is why when troubleshooting anything it is suggested that in configuration files like BOOT.INI and BCD there must be AT LEAST two entries AND an adequate timeout, this is a way to make sure that first part of booting has been performed OK.


@xpt
You cannot - which as I see it is a good thing :thumbsup: - due to the meaningless metrics it represented, in the sense of a sign of popularity as opposed to quality :blink: , and that in the past created "queer" fanboysm effects :dubbio:.

:cheers:
Wonko

Attached Files



#94 ambralivio

ambralivio

    Frequent Member

  • Advanced user
  • 194 posts
  •  
    Italy

Posted 19 January 2011 - 09:05 PM

@ Wonko the Sane,

:dubbio: Excellent !!!!! :dubbio:

A very good summary : well made, very clear and simple (and, therefore, obtaining the best effects/targets), as always from you.

As a suggestion, referring to the statement :

Most Operating Systems in use nowadays run in "protected mode", the only common exceptions are DOSes (MS-DOS, FreeDOS, etc.) that are "real mode" only ones.


since DOSes systems represent, in some way (and with the due distinctions/classifications), just the boundary between real & protected modes, I'd explain a bit more in details their behaviour with reference to the booting process.

For example, it is not clear what happen for DOSes (MS-DOS)versions < 7.x.......

Besides, are all the DOSes effectively in "real" mode ?

Thanks,

ambralivio

#95 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 20 January 2011 - 01:19 AM

@wonko

I have been reading non stop about 18-22 hours a day for the past 3 weeks (no joke). THIS is the clearest explanation I've come across.

the file IO.SYS is the kernel (... normally the Volume bootsector itself)

From what I read, it needs to be the first one copied over so it be the first file on the disk. Does it actually reside on the partition or the Vol bootsector?

I have one request:
Please edit amend your post to unify the steps that can be unified (between arrows):

BIOS->MBR->PBR->IO.SYS->Other files->OS booted

BIOS->MBR->PBR (IO.SYS)->Other files->OS booted
... if of course that is correct, meaning the io.sys file resides on the (PB)Partition Boot sector. I just need to see it like that for the sake of clarity.

There is a typo in the excel file:

"Floppy-like
Unpartiioned"

missing a "t"

Please specify in the top row what was on your mind. For example, I can figure out that the second column is "type of medium", is the 3rd "type of emulation", ...? I can see that it is a classification of some kind, but I can't make out how it is classified.
When I get that, I will make a mind map of it. That illustrates this kind of concept in less space and is more readable. As soon as you're finished of course.

For those reading who are trying to learn and may not know:
"Real Mode" and "Protected" mode refer to processor operation modes. In "Real Mode", only a certain number of pins are turned on between the processor and the memory, essentially limiting the number of possible combination, thus the number of addresses that can be created by those combination. When the OS loads, it switches the processor's other pins ON and therefore makes the number of combination larger, enabling the processor to create more memory location address combination. At that point, more memory is accessible, so more of the parts that make the operating system can be loaded in memory.
Because the processor starts with the default number of pins that matches the old processor that only had that number of pins, everything that gets done before the other pins are activated must be done in that small amount of memory that is accessible. That's the reason why only a limited set of small size programs can be run in real mode. So, when the OS loads, it "opens" the rest of the memory available: it turns the processor in protected mode. It is called protected mode because once something is written in a memory location, the OS protects it from other programs overwriting what's there. that would create chaos and break what the program is doing.

Hope this helps.

Thank you wonko!


@ambralivio

since DOSes systems represent, in some way (and with the due distinctions/classifications), just the boundary between real & protected modes, I'd explain a bit more in details their behaviour with reference to the booting process.

The DOS generation of OS was developed well before computers were able to use so much more memory. They are not "aware" that processors have more legs that can be turned on. As a result, they function "blind" by design.
To be able to accommodate the DOS generation of OS, processors are designed to power on looking like their ancestors for which those programs were written: that's what compatibility mode is about. They all start in "286 compatible" mode. The 286 itself was designed in compatibility with its predecessors. There is a number of layers in there, including the BIOS itself, which is not really necessary these days, that's why some OS just flush the whole thing as they load, and we get things like the famous 7b error.
Computers start like they did years ago: just like the 286. All the other pins are turned off.


For example, it is not clear what happen for DOSes (MS-DOS)versions < 7.x.......
Besides, are all the DOSes effectively in "real" mode ?

They don't know any better, the processor stays in real mode until something "switches" it in protected mode. There is no protected mode in DOS because it simply did not exist yet in those days.

BIOS->MBR->PBR->Lilo->Linux kernel->"Switch"->Other files->OS booted

in "Switch", read "Power ON".
Until that point, you have a processor half asleep, and that has nothing to do with what OS is being loaded. It is a physical "Switch", things actually get "Switched ON"
The new generation of OS is simply able to do more with the processors that are capable of more. So, the difference lies in the fact that while booting, the newer OS can do what the old does not know anything about. Up to the "Switch", they are behave the same. The new ones "Switch" and move on to loading more of themselves, so they can be bigger. But before the rest gets loaded, a small "DOS like" part has to turn the memory on (processor legs connected to the memory) so the OS can move the other parts to that "more" memory old DOS OS don't know is there.

Hope this helps.

Edited by LeMOGO, 20 January 2011 - 02:02 AM.


#96 xpt

xpt

    Frequent Member

  • Advanced user
  • 135 posts
  •  
    Canada

Posted 20 January 2011 - 03:18 AM

I have one request:
Please edit amend your post to unify the steps that can be unified (between arrows):

BIOS->MBR->PBR (IO.SYS)->Other files->OS booted


LeMOGO, this is actually incorrect. io.sys file *does not* reside on the (PB)Partition Boot sector, which is only 512 bytes in size.

in "Switch", read "Power ON".
Until that point, you have a processor half asleep, and that has nothing to do with what OS is being loaded. It is a physical "Switch", things actually get "Switched ON"


Again, not quite right. The best description is still wonko's original.

The PC hardware (BIOS) boots in "real mode", and ONLY after some code is run in "real mode", it can be "switched" to "protected mode".
At a certain point during the booting process a "Switch" is performed from "Real Mode" to "Protected Mode".
This "Switch" - if any - may be performed in different stages of the booting on different OS.


Edited by xpt, 20 January 2011 - 03:19 AM.


#97 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 20 January 2011 - 05:30 AM

@xpt
My friend, you are misreading.
My request is aimed at using the arrows as a step delimiter so that things that go together such as ntldr+boot.ini+choice reside between "->" so I can compare the different lines. Kind of a grouping.

The io.sys file needs to be copied first for a reason. Even if it's not in the pbr which is the first sector, there has to be a reason. Even if it resides in the data portion, you can not just add it there at any time. I believe that's why we use the sys command to place it at the right location.
So for all practical purposes, that can be seen as one contiguous block, kind of an extension of the pbr, which essentially comes back to the same: a reserved region at the beginning of the partition that holds needed boot time things.
So the way I understand it:

BIOS -> MBR -> partition reserved area (pbr+io.sys) -> boot files (ntldr+boot.ini:choice - ntdetect.com) -> rest of the OS (protected mode?)

This is just an example, of course, where various lines are mixed up, but it gives me a grouping to make sense out of things. Again, just a bad illustration to show an example of what I am asking. I want to create some mental boxes to place these elements in. Just a different categorization, that's all.

So far, he grouped things in 2 sections: real and protected mode.

Booting is made of TWO parts:

* booting (real mode) involving BIOS+MBR(+hidden sectors) and possibly PBR/bootsector, then filesystem and initial OS loader/system file
and
* booting :yawn: (protected mode or however actual OS booting) involving actual OS loader, OS files, drivers, etc.

from his diagram above, I see that ntdetect works on the hardware and turns the processor pins on. Until it is loaded, we are in real mode.
That is clearly delimited in green.
However,

An OS loader is something that boots the OS kernel.
A bootmanager is something that gives you options among different booting possibilities.

grouping not in the diagram, and

BIOS->MBR->PBR

is a HARDWARE based grouping, and

grldr->menu.lst->Choice->NTLDR->(BOOT.INI)->NTDETECT.COM->"Switch"->Other

is a software group. Both on the same line.
It could be
post -> bootstrap loader -> kernel

The kernel's job is to manage disk and memory, (processes also, but I'm only concerned with booting here - what he calls part 1).

Oh, and by the way, real mode has a 1MB memory boundary, hence the "memory map" we see in dos through the "mem" command. It's been a while, but I remember looking at it many times to see what was running and why programs would not load. We did not have task managers back then. :confused1: :confused1:

Edited by LeMOGO, 20 January 2011 - 05:35 AM.


#98 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 20 January 2011 - 06:51 AM

@wonko

Could you please create a table in which hardware locations would be on one line, and the various software components on a few others? As I can see, a line for the boot stage, maybe one for processor mode .... and whatever else you know is part of booting these modern OSes.

Maybe along the lines of:

                                file system

                                     |

                                     |

                          stage1----1.5---stage2 

location    bios          drive

                          mbr(CHS001)     pbr(0xAA55)      data

           [post,         [bootloader,    [os loader,      [os loader,   kernel

      bootstrap loader,    bootstrap     /bootmanager]    /bootmanager]

            EFI]         (bootmanager)]

                          512 bytes =

                          64PT+448loader

dos                                       M$ boot code     io.sys         io.sys     command.com

                                                         config.sys    config.sys    autoexec.bat



NT5-                                      M$ boot code     ntldr,       ntdetect.com?

                                                           boot.ini,

                                                                        bootsect.dos 

                                                              

NT6+

Linux?    


All of this is part of "part 1" of your explanation.
In this table, every column turns on more hardware. By following along, we can determine where the error lies. Of course, we will have to plug in the error messages, but, the above example is what I would like to achieve.

Thank you.

Edited by LeMOGO, 20 January 2011 - 07:08 AM.


#99 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 20 January 2011 - 07:33 AM

Just for clarification, xpt, io.sys should start in the data section, just contiguous to the pbr.

LeMOGO, this is actually incorrect. io.sys file *does not* reside on the (PB)Partition Boot sector, which is only 512 bytes in size.

I never claimed it was, but rather requested a correct grouping with the right components between arrows. But my question still needs an answer, or rather, an explanation of this statement:

the file IO.SYS is the kernel (... normally the Volume bootsector itself)

has it ever been written to the pbr? I don't know, so I'm asking. Its size does not stop it from starting there.
Any utility that does that?


Again, not quite right. The best description is still wonko's original.

This is not a competition, and you are certainly entitled to your opinion, but it's not universal gospel. Please let others learn.
ambralivio asked

... explain a bit more in details their behaviour with reference to the booting process.

to which my explanation was trying to answer, and if you actually READ, the gist of the difference between the 16bits real mode OSes and 32bits protected mode OSes is that the 32bits ones TURN ON the other 16 bits at some point of time in the boot process. That's what he needed to know.
If you have anything productive to contribute, please do so. If not, well, I'll be polite and hint that WE are trying to learn here :confused1:

Thank you.

Edited by LeMOGO, 20 January 2011 - 08:23 AM.


#100 LeMOGO

LeMOGO

    Frequent Member

  • Advanced user
  • 240 posts
  •  
    United States

Posted 20 January 2011 - 08:46 AM

Has it ever been written to the pbr?
Any utility that does that?

In MS-DOS, versions >=7.x the file IO.SYS is the kernel (it is itself a loader or - if you prefer - it needs NO loader, the loader is normally the Volume bootsector itself)

Could mean: "the loader, which is normally located on the Volume bootsector, loads io.sys
or: "io.sys is the loader itself, and as such is on the Volume bootsector"
or: "there is no loder for io.sys, the Volume bootsector loads io.sys"

I'm trying to read it right. What do you mean? Am I missing something? I'm just out of my cave, so I very well may be.


Thank you.

Edited by LeMOGO, 20 January 2011 - 08:49 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users