186 lines
6.2 KiB
Markdown
186 lines
6.2 KiB
Markdown
# Dual Boot Omarchy
|
|
|
|
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.
|