Oct. 1st, 2023

isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

I recently expanded my triple-boot PC to boot four operating systems off the same drive: DOS, Windows XP, Windows 7, and Debian.

Generally, in the old BIOS world, you'd handle this by having GRUB (controlled and configured by the Linux installation) as the main bootloader, and let it boot Windows and DOS from there. But I like to take a more unconventional method (detailed here) where I have the newest installed version of Windows control the main bootloader, and let Linux boot from DOS.

There were three big changes I made this time.

First, I kept Windows XP and Windows 7 both installed to separate extended partitions. I believe they both install their bootloaders to the DOS partition - I know Windows 7, by default, won't map it to a drive letter because it assumes it's just a system partition (you can change this from Disk Management).

To limit the number of consecutive menus, after installing Windows 7, I removed FreeDOS from the boot.ini used by Windows XP's bootloader (ntldr) and added it to Windows 7's (bootmgr). The bootsect.dos (extracted and created by Windows XP's installer) can be loaded through bootmgr by adding a new entry:

bcdedit /create /d "FreeDOS 1.3" /application bootsector
bcdedit /set {new-guid} device partition=e:
bcdedit /set {new-guid} path \bootsect.dos
bcdedit /displayorder {new-guid} /addlast

Options like /displayorder or /default can be used to customize its spot in the menu.

But most importantly, I still wanted Debian to boot from DOS so it wouldn't touch the MBR (making it easy to delete or replace from within DOS/Windows without breaking anything). But instead of installing grub-legacy in Debian to generate the menu.lst and using GRUB4DOS to boot it (which I'm sure would have worked fine), I wanted to use a method of booting Debian that would rely only on the partition GUID, and not on the drive number.

A snail character between IDE and SATA cables with a thought bubble reading "(hd0,5)" Read more... )

Snail#

A programming blog where the gimmick is that I pretend to be a snail.

Expand Cut Tags

No cut tags

Style Credit

Page generated Jun. 12th, 2025 08:43 pm
Powered by Dreamwidth Studios