![](https://seccdn.libravatar.org/avatar/eb9f93fa252f97a3d17d437ff9aa9f35.jpg?s=120&d=mm&r=g)
On Sat, Apr 17, 2021 at 03:25:44PM -0700, L A Walsh wrote:
On 2021/04/15 02:33, Michal Suchánek wrote:
I.e. linux needs a ram disk about as much as it needs a floppy to boot.
It's the same for Windows.
Linux has drivers for large number of devices, and you need to preload some to be able to boot the system with a generic distribution kernel.
Just like windows has support for a large number of drivers built in. It
But the key is that the correct storage driver is preloaded on boot.
is able to access the entire driver data base shipped
Once booted.
with windows. The key ingredient here is that Windows doesn't support all the file systems that linux does for boot. Their hidden system partition that is before the OS partition needs to be in NTFS. That partition is installed when you first install Windows onto the machine.
Are you talking about the recovery partition? That's not used at all during normal boot. Also Windows does support FAT, and somebody wrote a btrfs driver for it, too. All of these work perfectly fine so long as Widows knows to preload the correct driver.
It is generally 'fixed' to the HW on that machine as configured by the computer-provider (or OEM).
Only until you change the machine. And even a single vendor like Dell ships large number of different machine models. It's completely beside the point, anyway.
That prealod is done by packing essential drivers into the ramdisk. It works very well both for booting ...
Here's the 1st part you are missing. The ramdisk and the kernel that boots from that ramdisk have to be loaded from "somewhere".
Guess what. That "somewhere" is near the same in both cases. Linux has a boot partition it loads kernel+drivers from (drivers being in the form of a ramdisk). Windows has a system-partition it loads the NT-bootloader and drivers from. They are both loading a single-format disk image they they continue to boot from.
So you finally came to the conclusion that it's about the same after trying to grief about how Linux is clumsy with it's boot process compared to Windows, great ...
Similarily in the Windows case you can and will have large number of drivers installed, and a few drivers need to be preloaded on boot so that the kernel can access the boot disk once loaded and executed by the bootloader. The exact mechanism is secret MS sauce...
---- See "Windows Internals, 6th Edition". (Parts I+II). It covers up through Win7+Server2008. The exact mechanism is detailed in Chapter 13 (in part 2) under Startup & Shutdown.
That's not freely avalable book. Anyway, it has been pointed out how this works exactly in this thread already.
It details parts you missed w/linux -- like the BIOS detecting the boot method (basic BIOS or EFI), reading in the initial boot loader
BIOS does not detect the boot method, BIOS implements the boot method.
for the given method. That may provide a menu of bootable images -- on linux and on Windows. That can then load those bootable "blobs" into memory and continue.
you have to tell Windows to preload the driver on boot, otherwise you get the infamous INACESSIBLE_BOOT_DEVICE error.
Not very famous or infamous unless you construct your own PC's. The BIOS provided by the vendor usually has complete ability to read the initial HW that it will boot from.
It's not about the BIOS being able to access the boot disk but about windows preloading the correct driver to be able to read from the disk once the NT kernel starts. And it can easily happen when you change your storage configuration - such as when you replace your storage controller - either discreate or the one built into your mainboard. And here the usability of Linux is much better than Windows, actually. On Linux similar drivers are unified while on Widows every hardware vendor ships their own driver so it is more likely that the same storage driver will continue to work after you replace your storage controller or mainboard, and by default most storage drivers are included in the ramdisk so that you can boot from any kind of storage supported by Linux. Best regards Michal