wootc
Windows bootc installer — install bootc-based Linux images from Windows without repartitioning
File Explorer
- action.yml
- manual-test-report.yml
- ci-tests.yml
- ci.yml
- drop-bot-review-requests.yml
- e2e-gui.yml
- e2e-hosted.yml
- e2e-kvm.yml
- e2e-matrix.yml
- e2e-nightly.yml
- e2e-snapshot.yml
- pages.yml
- release.yml
- ste.yml
- winget-publish.yml
- CODEOWNERS
- runs-on.yml
- blessing.json
- brand.json
- font.woff2
- logo.svg
- theme.css
- blessing.json
- brand.json
- font.woff2
- logo.svg
- theme.css
- blessing.json
- brand.json
- font.woff2
- logo.svg
- theme.css
- blessing.json
- brand.json
- blessing.json
- brand.json
- README.md
- icon.ico
- wootc.manifest
- appicon.png
- appicon.svg
- make-ico.py
- images.json
- nunito-v16-latin-regular.woff2
- OFL.txt
- logo-universal.png
- branding.js
- e2e.js
- format.js
- render.js
- state.js
- titlebar.js
- ui.js
- control.js
- done.js
- launchpad.js
- migrate.js
- progress.js
- vmpreview.js
- app.css
- main.js
- style.css
- App.d.ts
- App.js
- package.json
- runtime.d.ts
- runtime.js
- index.html
- package-lock.json
- package.json
- wubildr-bootstrap.cfg
- wubildr.cfg
- branding.json
- bundle_info.json
- data_partition.json
- image.json
- install_config.json
- install_status.json
- lifecycle_state.json
- progress_event.json
- session_candidate.json
- session_export.json
- support_policy.json
- system_info.json
- uninstall_info.json
- uninstall_options.json
- vm_capability.json
- vm_event.json
- main.go
- main_test.go
- .gitignore
- app.go
- bitlocker_windows.go
- blessing_test.go
- branding_embed.go
- branding_policy.go
- branding_test.go
- bridge_contract_test.go
- bundle.go
- bundle_test.go
- catalog.go
- clouddrive_other.go
- clouddrive_windows.go
- deployer_url.go
- deployer_url_test.go
- deployer_windows.go
- dev_stubs_test.go
- disk_windows.go
- dto_gen_test.go
- esp_ownership.go
- esp_ownership_test.go
- event_emitter.go
- go.mod
- go.sum
- headless.go
- headless_test.go
- helpers.go
- helpers_test.go
- hostname_test.go
- installer_esp.go
- installer_other.go
- installer_windows.go
- knownfolders_windows.go
- main.go
- main_test.go
- migration.go
- migration_linux.go
- migration_linux_test.go
- migration_notlinux.go
- ocipull.go
- ocipull_test.go
- platform_assets.go
- power_state.go
- power_state_test.go
- preflight_gates_test.go
- profiles.go
- profiles_test.go
- profiles_windows.go
- programs_windows.go
- README.md
- rsrc_windows_amd64.syso
- secureboot.go
- secureboot_other.go
- secureboot_test.go
- secureboot_windows.go
- serve.go
- serve_test.go
- session.go
- session_chromium_value.go
- session_chromium_value_test.go
- session_export.go
- session_export_test.go
- session_rewrap.go
- session_rewrap_test.go
- session_windows.go
- slurp_windows.go
- state.go
- state_test.go
- status_race_test.go
- steps_test.go
- support_gate_test.go
- sysprobe_windows.go
- theme_other.go
- theme_windows.go
- vault_windows.go
- vm_other.go
- vm_windows.go
- wails.json
- winexec_windows.go
- 0001-phase1-first-architecture.md
- 0002-hardware-preflight-bootc-matching.md
- 0003-onedrive-files-on-demand-migration.md
- 0004-composefs-kernel-module-matching.md
- 01-launchpad.png
- 02-progress.png
- 03-done.png
- 04-manage.png
- 01-launchpad.png
- 02-progress.png
- 03-done.png
- 04-manage.png
- 01-launchpad.png
- 02-progress.png
- 03-done.png
- 04-manage.png
- 01-launchpad.png
- 02-progress.png
- 03-done.png
- 04-manage.png
- 01-launchpad.png
- 02-progress.png
- 03-done.png
- 04-manage.png
- 01-launchpad.png
- 02-validation.png
- 03-progress.png
- 04-done.png
- 05-control-panel.png
- 06-migration-dashboard.png
- 07-branded-bazzite.png
- 07-branded.png
- 08-bitlocker.png
- 09-vm-mode.png
- 10-luks-encryption.png
- 11-defrag-preflight.png
- 12-vm-unavailable.png
- 13-migration-chooser.png
- 14-bare-minimum-form.png
- 14-move-to-linux.png
- 15-reclaim-windows.png
- 16-bring-windows-over.png
- agent-lessons.md
- alpha-adopter-program.md
- architecture-boundary.md
- backend-contract.md
- borrowed-from-libertix.md
- branded-walkthroughs.md
- branding-and-distribution.md
- branding.md
- docs-truth-pass.md
- e2e-architecture.md
- finish-plan.md
- getting-started.md
- gui-phase1-architecture.md
- gui-walkthrough.md
- manual-testing.md
- milestones.md
- non-bootc-adoption.md
- ntfs-on-linux.md
- phase2-attach-postmortem.md
- phase2-debug-plan.md
- philosophy.md
- plan.md
- plugin-architecture.md
- prefilled-profile-testing.md
- release-notes-v0.3.0-beta.md
- RELEASING.md
- session-migration.md
- SPEC.md
- status.md
- systemd-boot.md
- upstream-blessings.md
- user-guide.md
- vhdx-exploration.md
- winui-shell.md
- installer.yaml.in
- locale.en-US.yaml.in
- version.yaml.in
- README.md
- render-brand.sh
- TunaOS.wootc.installer.yaml.in
- TunaOS.wootc.locale.en-US.yaml.in
- TunaOS.wootc.yaml.in
- brands.sh
- shim-authorities.py
- index.html
- build-builder.sh
- wootc-builder-init
- make-bundle.sh
- make-release-bundle.sh
- Containerfile
- deploy-hook.sh
- deploy.sh
- early-splash.sh
- init
- module-setup.sh
- detect
- import
- plugin.json
- detect
- plugin.json
- detect
- import
- plugin.json
- detect
- import
- plugin.json
- detect
- import
- plugin.json
- detect
- import
- plugin.json
- detect
- import
- plugin.json
- detect
- import
- plugin.json
- plugin.schema.json
- .gitkeep
- org.tunaos.wootc.policy
- wootc-apply-look
- wootc-apply-look.desktop
- wootc-convert-dir
- wootc-detect-apps
- wootc-e2e-phase3-dispatch
- wootc-e2e-phase3.path
- wootc-e2e-phase3.service
- wootc-esp-sync
- wootc-esp-sync.path
- wootc-esp-sync.service
- wootc-firstboot-evidence
- wootc-firstboot-evidence.service
- wootc-go-native
- wootc-go-native-gui
- wootc-go-native.desktop
- wootc-host-bind.service
- wootc-identity
- wootc-import
- wootc-import-browser
- wootc-import-gui
- wootc-import.desktop
- wootc-manifest
- wootc-manifest-gui
- wootc-manifest.desktop
- wootc-mount-user-dirs
- wootc-office-bridge
- wootc-passthrough.service
- wootc-selection
- wootc-shim-trust
- wootc-steam-bridge
- wootc-umount-user-dirs
- wootc-user-gui
- wootc-user.desktop
- wootc-welcome
- wootc-welcome.desktop
- wootc-wifi-bridge
- wootc-wifi-import.service
- wootc-wsl-bridge
- .gitkeep
- bootstrap.cfg
- Containerfile
- steps.tsv
- module-setup.sh
- wootc-attach-loop.sh
- wootc-attach.service
- wootc-stage-shutdown.sh
- wootc-umount-host.sh
- grub.install.cfg
- wubildr-bootstrap.cfg
- wubildr.cfg
- .gitkeep
- .gitkeep
- rollback-a-bad-release.md
- Dto.cs
- .gitkeep
- install.bat
- run-wootc-e2e.ps1
- seed-profile.ps1
- assert-phase1.ps1
- README.md
- run-phase1.sh
- deploy.png
- phase1.png
- phase2.png
- phase3.png
- userdata.png
- windows.png
- .gitignore
- autounattend.xml
- build-ssh-image.sh
- compose.yml
- fix-winrm.py
- matrix-results.tsv
- matrix.tsv
- pick-blank-disk.sh
- publish-visual.sh
- qga.py
- README.md
- record-video.sh
- run-e2e.sh
- run-matrix.sh
- screenshot.py
- seed-profile.ps1
- setup-kvm-runner.sh
- setup-registry-cache.sh
- setup-wootc.ps1
- winrm-check.py
- winrm-run.py
- dogtail-suite.py
- run-dogtail.sh
- .gitignore
- branded-walkthrough.spec.js
- capture-linux-guis.sh
- cdp.spec.js
- fixtures.js
- gui-install.spec.js
- gui.spec.js
- mock-backend.js
- package-lock.json
- package.json
- playwright.config.js
- run-cdp.sh
- test-bridge.sh
- .gitkeep
- apply-look.bats
- artifact-retention.bats
- backend-detection.bats
- bare-minimum-defaults.bats
- brand-blessings.bats
- btrfs-phase2.bats
- compose-startup.bats
- deploy-hook-watchdog.bats
- deployer-death.bats
- deployer-dso-closure.bats
- deployer-fail-marker.bats
- docs-truth.bats
- e2e-deadlines.bats
- e2e-failure-ledger.bats
- esp-chain-refresh.bats
- go-native.bats
- hook-logging.bats
- hosted-podman-runtime.bats
- identity.bats
- import.bats
- lifecycle-state.bats
- manifest.bats
- matrix.bats
- mok-enrollment.bats
- multi-instance.bats
- north-star-boot.bats
- north-star-landing.bats
- oem-barrier.bats
- offline-first.bats
- phase2-clean-ntfs-umount.bats
- phase2-early-cpio.bats
- phase2-windows-return.bats
- pick-blank-disk.bats
- prefilled-profile.bats
- qga-channel-lost.bats
- qga-real-root.bats
- raw-loopback.bats
- release-pipeline.bats
- scan-root-disk.bats
- secure-boot-authorities.bats
- selection.bats
- serial-feed.bats
- silence-discriminator.bats
- snapshot-gate.bats
- step-catalogue.bats
- test_esp_chain_refresh.py
- test_plugin_manifest.py
- test_prefilled_profile.py
- test_qga_reconnect.py
- test_qga_write.py
- test_shim_trust.py
- test_uninstall_partial.py
- uninstall-check.bats
- uninstall-partial-states.bats
- user-gui.bats
- userdata-persistence.bats
- wifi-bridge.bats
- win-image-name.bats
- winbase-snapshot.bats
- ci-gate.sh
- lint-ps1.ps1
- run.sh
- .editorconfig
- .gitignore
- .gitmodules
- .golangci.yml
- .ste-budget
- AGENTS.md
- CLAUDE.md
- codecov.yml
- CONTEXT.md
- CONTRIBUTING.md
- fisherman
- HANDOFF.md
- justfile
- LICENSE-GPL-2.0
- LICENSE-MIT
- README.md
- renovate.json
- ROADMAP.md
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
git add
View Details ▼
git add
Stage changed files for a commit.
git add {{path/to/file}}
Stage a file for a commit:
git add {{[-A|--all]}}
Add all files (tracked and untracked):
git add .
Add all files recursively starting from the current folder:
just
View Details ▼
just
Save and run project-specific commands.
just {{recipe}}
Run a recipe specified in the justfile:
just
Start a REPL (interactive shell):
just --init
Initialize new justfile in project root:
bootc
View Details ▼
bootc
Boot and upgrade via container images.
Manage transactional, in-place operating system updates using OCI/Docker container images.
bootc status
Show deployments in the order they will appear in the bootloader:
bootc upgrade --check
Check if any updates are available:
bootc upgrade --apply
Prepare a new update and reboot into it:
btrfs
View Details ▼
btrfs
A filesystem based on the copy-on-write (COW) principle for Linux.
Some subcommands such as `device` have their own usage documentation.
sudo btrfs {{[su|subvolume]}} {{[c|create]}} {{path/to/subvolume}}
Create subvolume:
sudo btrfs {{[su|subvolume]}} {{[l|list]}} {{path/to/mount_point}}
List subvolumes:
sudo btrfs {{[f|filesystem]}} df {{path/to/mount_point}}
Show space usage information:
cryptsetup
View Details ▼
cryptsetup
Manage plain `dm-crypt` and LUKS (Linux Unified Key Setup) encrypted volumes.
Some subcommands such as `luksFormat` have their own usage documentation.
cryptsetup luksFormat {{/dev/sdXY}}
Initialize a LUKS volume with a passphrase (overwrites all data on the partition):
cryptsetup open {{/dev/sdXY}} {{mapping_name}}
Open a LUKS volume and create a decrypted mapping at `/dev/mapper/mapping_name`:
cryptsetup status {{mapping_name}}
Display information about a mapping:
losetup
View Details ▼
losetup
Set up and control loop devices.
losetup {{[-a|--all]}}
List loop devices with detailed info:
sudo losetup {{/dev/loop}} /{{path/to/file}}
Attach a file to a given loop device:
sudo losetup --show {{[-P|--partscan]}} {{[-f|--find]}} /{{path/to/file}}
Attach a file to a new free loop device and scan the device for partitions:
niri
View Details ▼
niri
A scrollable-tiling Wayland compositor.
niri msg outputs
List all outputs and their properties:
niri msg output {{output_name}} off
Turn off an output (monitor):
niri msg action focus-workspace-down
Focus the workspace below the current one:
