Dual-Boot-Omarchy/README.md
28allday d6a61387c0 Add video guide to README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 12:48:43 +00:00

194 lines
6.4 KiB
Markdown

# Dual Boot Omarchy
## Video Guide
<p align="center">
<a href="https://youtu.be/ZxHXKE8r1jI">
<img src="https://img.youtube.com/vi/ZxHXKE8r1jI/0.jpg" width="700">
</a>
</p>
Patch the [Omarchy](https://omarchy.com) ISO to install alongside Windows. Creates a modified ISO with a dual-boot installer that preserves your Windows installation while adding Omarchy with LUKS encryption and btrfs snapshots.
## Requirements
- **OS**: Arch Linux or Omarchy (to run the patcher)
- **Omarchy ISO**: Download from [omarchy.com](https://omarchy.com)
- **UEFI**: Required for dual-boot (no legacy BIOS support)
- **Free disk space**: 20GB+ unallocated space on the target drive
- **USB drive**: For booting the patched ISO (Ventoy recommended)
## Quick Start
```bash
git clone https://github.com/28allday/Dual-Boot-Omarchy.git
cd Dual-Boot-Omarchy
# Place your Omarchy ISO in this directory, then:
sudo ./patch-omarchy-dualboot.sh
# Or specify the ISO path directly:
sudo ./patch-omarchy-dualboot.sh /path/to/omarchy-3.x.x.iso
```
This creates `omarchy-dualboot-YYYY.MM.DD.iso` — copy it to a Ventoy USB and boot from it.
## How It Works
### The Patcher (run on your existing system)
The patcher modifies the Omarchy ISO by:
1. **Extracting** the ISO and its squashfs root filesystem
2. **Injecting** a dual-boot setup script into the live environment
3. **Replacing** the boot sequence to run the dual-boot installer on tty1
4. **Repacking** the squashfs and creating a new bootable ISO
### The Installer (runs when you boot the patched ISO)
When you boot the patched ISO, you get a menu:
| Option | Action |
|--------|--------|
| **1** | Install Omarchy alongside Windows (dual-boot) |
| **2** | Clean up a failed installation |
| **3** | Standard install (original Omarchy installer, wipes disk) |
| **4** | Exit to shell |
#### Option 1: Dual-Boot Install
1. **Drive selection** — shows available drives, detects Windows partitions
2. **Free space check** — verifies 20GB+ unallocated space exists
3. **Encryption password** — sets up LUKS2 encryption for the Linux partition
4. **Partitioning** — creates two partitions in free space:
- 1GB EFI partition (labelled "LINUXEFI") for the Linux bootloader
- Remaining space: LUKS2 encrypted partition for Linux root
5. **Filesystem setup** — creates btrfs with subvolumes:
- `@` — root filesystem
- `@home` — user home directories
- `@log` — system logs
- `@pkg` — pacman package cache
6. **Omarchy configurator** — collects your username and preferences
7. **archinstall** — installs the base Arch system
8. **Limine bootloader** — installed and configured with:
- LUKS encryption support
- Windows auto-detection
- Bootable btrfs snapshots via snapper
- Plymouth splash screen (Omarchy theme)
9. **Omarchy packages** — installs the full Omarchy desktop
10. **UEFI boot entry** — creates "Omarchy" entry in your firmware
**Windows partitions are never touched.**
#### Option 2: Cleanup Failed Installation
If a previous dual-boot install failed partway through:
- Detects and removes Linux partitions (LINUXEFI, LUKS)
- Cleans up UEFI boot entries
- Leaves Windows completely untouched
## What Gets Created on the Target Drive
```
Drive (e.g. nvme0n1):
├── Windows partitions (UNTOUCHED)
│ ├── EFI System Partition (Windows Boot Manager)
│ ├── Microsoft Reserved
│ ├── Windows (C:)
│ └── Recovery
├── LINUXEFI (1GB, FAT32) ← NEW: Linux bootloader
│ ├── EFI/BOOT/BOOTX64.EFI (Limine)
│ ├── vmlinuz-linux (kernel)
│ ├── initramfs-linux.img (initramfs with encrypt hook)
│ └── limine.conf (boot menu with Windows + snapshots)
└── Linux Root (LUKS2 encrypted) ← NEW: Omarchy system
└── btrfs
├── @ (/)
├── @home (/home)
├── @log (/var/log)
└── @pkg (/var/cache/pacman/pkg)
```
## Booting After Installation
1. Reboot your computer
2. Press **F12/F8/DEL** at startup for the boot menu
3. Select **"Omarchy"** for Linux or **"Windows Boot Manager"** for Windows
The Limine boot menu also shows:
- Omarchy (default)
- Omarchy (fallback)
- Snapshots (bootable btrfs snapshots)
- Windows Boot Manager
## Features
- **LUKS2 encryption** — full disk encryption for the Linux partition
- **Btrfs subvolumes** — proper layout for snapshots and rollbacks
- **Snapper integration** — automatic timeline snapshots with bootable rollback via Limine
- **Offline installation** — uses packages from the ISO, no internet required during install
- **Plymouth splash** — Omarchy-themed boot animation
- **SDDM auto-login** — boots straight into Hyprland
## Dependencies
The patcher automatically installs these if missing:
| Package | Purpose |
|---------|---------|
| `xorriso` | ISO creation and manipulation |
| `squashfs-tools` | Extracting and repacking the squashfs filesystem |
| `cdrtools` | Reading ISO metadata (`isoinfo`) |
## Troubleshooting
### Can't boot into Omarchy after install
- Use F12/F8 boot menu to select "Omarchy" manually
- If no entry exists: boot the ISO again, choose option 4 (shell), and run:
```bash
efibootmgr --create --disk /dev/nvme0n1 --part N --loader '\\EFI\\BOOT\\BOOTX64.EFI' --label 'Omarchy'
```
### LUKS password prompt doesn't appear
- Verify initramfs has the encrypt hook:
```bash
lsinitcpio /boot/initramfs-linux.img | grep encrypt
```
- Rebuild if missing:
```bash
sudo mkinitcpio -P
```
### Windows disappeared from boot menu
- Boot into Omarchy, then:
```bash
sudo limine-update
```
This rescans for other bootloaders including Windows.
### Failed install left orphan partitions
Boot the patched ISO again and choose **option 2** (Clean up failed installation).
## Uninstalling Omarchy (keeping Windows)
Boot from the patched ISO, choose **option 2**, and it will:
- Remove the Linux EFI and LUKS partitions
- Clean up UEFI boot entries
- Leave Windows untouched
Then use Windows Disk Management to reclaim the free space.
## Credits
- [Omarchy](https://omarchy.com) - The Arch Linux distribution
- [archinstall](https://github.com/archlinux/archinstall) - Arch Linux installer framework
- [Limine](https://limine-bootloader.org/) - Bootloader
- [Snapper](http://snapper.io/) - Btrfs snapshot management
## License
This project is provided as-is for the Omarchy community.