Capstone — Building a Real Triple-Boot Test Environment
GRUB & Multibooting
Chapter 10 · Capstone — Building a Real Triple-Boot Test Environment
The final chapter. One virtual machine, one virtual disk, three real operating systems — built in the correct order, configured properly, deliberately broken, and repaired using exactly the procedure grub1-9 taught. A disposable VM is exactly the right place to intentionally break something you already know how to fix.
The Environment — Three OSes, One Shared Disk
A single VM (VirtualBox or QEMU, tool-agnostic), UEFI firmware enabled in its settings, one virtual disk — this is how real triple-boot actually works: one machine, one disk, three operating systems sharing it, not three separate machines.
Step 1 — Partition Planning
GPT, matching grub1-5's own recommended UEFI pairing. Layout: one shared EFI System Partition (grub1-6's own material), a Windows NTFS partition, a Fedora root partition, and Debian's own root partition plus a dedicated /boot partition — grub1-8's own advanced-partitioning recommendation, applied for real this time rather than just described.
Step 2 — Install Order
Windows first, Fedora second, Debian last — grub1-8's own generalized rule applied directly: every uncooperative OS first, Linux/GRUB last, leaving Debian as the final, authoritative installation.
Step 3 — Confirming the Menu
Booting after Debian's install should show exactly this shape: native Debian kernel entries generated by 10_linux, a Fedora entry chainloading directly to its own kernel and initramfs (grub1-7), and a Windows entry chainloading to its own bootloader (grub1-6) — all produced automatically by Debian's own os-prober, none hand-written.
Step 4 — Applying Chapters 3 and 4's Own Configuration
grub1-3's own workflow, applied deliberately: a real triple-boot menu needs a genuinely usable timeout, not the single-OS GRUB_TIMEOUT=0 default. Run update-grub to apply it. Then, as a direct test of grub1-4's own live-edit workflow, press e on the Fedora entry, confirm it's genuinely editable exactly as it was for a single-OS menu, and back out with Esc — confirming the live-edit workflow still behaves correctly in this more complex environment.
Step 5 — Deliberately Breaking It
Boot into Windows and simulate grub1-6's own gotcha directly — reset the UEFI boot order, or use Windows's own boot-repair tooling, so Windows becomes the sole boot target. Reboot: the three-way menu is gone, the system boots straight into Windows. Exactly grub1-6's own scenario, now reproduced on purpose, in an environment safe to break.
Step 6 — The Rescue, Applied for Real
- Boot the Debian live USB image (the same media from Step 2's own install)
- Mount Debian's root partition and its EFI System Partition
- Bind-mount
/dev,/proc,/sys;chrootin grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUBupdate-grub- Exit, unmount, reboot, remove the media
grub1-9's own five-step procedure, applied end to end for real — and the full three-way menu, Debian/Fedora/Windows entries and all, is back.
| Piece | Chapter |
|---|---|
| GPT + UEFI, shared EFI System Partition | grub1-5, grub1-6 |
| Dedicated /boot partition | grub1-8 |
| Install order (uncooperative OSes first) | grub1-6, grub1-8 |
| 10_linux / os-prober-generated menu | grub1-2, grub1-6, grub1-7 |
| Permanent GRUB_TIMEOUT/GRUB_DEFAULT config | grub1-3 |
| Live edit verification via 'e' | grub1-4 |
| The deliberate break (simulated Windows overwrite) | grub1-6 |
| The full chroot + grub-install rescue | grub1-9 |
grub1-8 to the site's own still-outstanding "Linux filesystems" topic, not covered here either. Secure Boot enrollment is likewise not tested end to end here — grub1-5's own light-touch preview stands as this course's full coverage of it. And this is a genuinely manual, hands-on lab exercise, not an automated, idempotent build — deliberately not what ansible1's own capstone did, since GRUB's own configuration isn't really automatable the same way service configuration is; a full VM rebuild means repeating these steps by hand, not re-running a playbook. Finally, this is VM-only — a real, stated limitation distinct from testing against actual physical hardware, where firmware quirks can behave differently than a hypervisor's own UEFI implementation.
Hands-On Exercises
Explain why the partition layout in Step 1 gives Debian and Fedora each their own root partition, but only one shared EFI System Partition between all three operating systems.
📄 View solutionExplain what would likely have gone wrong in Step 3's own confirmation step if the install order in Step 2 had instead been Debian, then Fedora, then Windows.
📄 View solutionA reader asks why this capstone doesn't just write an Ansible playbook (per the site's own ansible1 course) to automate the whole triple-boot build. Give an honest answer using this chapter's own scope note.
📄 View solutionChapter 10 Quick Reference — GRUB & Multibooting Complete
- One VM, one disk, GPT + UEFI, a shared EFI System Partition, a dedicated Debian /boot — the real-world shape of triple-boot
- Install order: Windows → Fedora → Debian, leaving Debian's own GRUB authoritative
- The resulting menu combines native entries, a chainload-to-kernel entry, and a chainload-to-bootloader entry — all auto-generated
- grub1-3's permanent config and grub1-4's live-edit workflow both verified working in the more complex environment
- The deliberate break (simulating grub1-6's own Windows-overwrite gotcha) and its repair (grub1-9's own five-step chroot rescue) close the loop for real
- Honest scope note: no LVM, no Secure Boot enrollment tested end to end, a manual (not automated) build, VM-only
- The full GRUB & Multibooting course — 10 chapters — is now complete.