Skip to content

Commit 72c72e2

Browse files
committed
Document Windows portable USB flashing steps
1 parent 6135c05 commit 72c72e2

2 files changed

Lines changed: 65 additions & 2 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,13 @@ Python services (`ui`, `agent`, `quarantine`, `diffusion-worker`, `search-mediat
215215

216216
A signed bootable installer ISO is built by every tagged release using [build-container-installer](https://github.com/JasonN3/build-container-installer). Each release also includes a compressed portable USB image (`secai-os-*-usb.raw.xz`) built from the same bootc container so the OS can be flashed directly to a USB stick and run without first installing to the internal disk. Both artifacts are available as **workflow artifacts** (90-day retention) from the [Release workflow runs](https://github.com/SecAI-Hub/SecAI_OS/actions/workflows/release.yml), and their cosign signatures are published to the GitHub Release for verification.
217217

218+
For Windows users writing the portable USB image:
219+
220+
- Prefer **USBImager** for `*.raw.xz` because it can write compressed disk images directly.
221+
- In **Rufus**, keep **Boot selection** set to `Disk or ISO image`, click `SELECT`, and choose the portable USB image. If Rufus does not accept `*.raw.xz`, extract it to `*.raw` first with 7-Zip and select the extracted file instead.
222+
- Do **not** choose `MS-DOS`, `FreeDOS`, or `Non bootable` for the portable USB image.
223+
- Boot the USB in **UEFI** mode with Legacy/CSM disabled. If firmware still refuses the media, temporarily disable Secure Boot for troubleshooting.
224+
218225
To build portable USB or VM media locally from the OCI image:
219226

220227
```bash

docs/install/quickstart.md

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,63 @@ http://127.0.0.1:8480
6060

6161
---
6262

63-
## Path B: Build a VM Image Locally
63+
## Path B: Run From a Portable USB
64+
65+
This path is for evaluation directly from removable media without first installing to the internal disk.
66+
67+
**1. Download the portable USB image**
68+
69+
Get the latest `secai-os-*-usb.raw.xz` workflow artifact from the
70+
[Release workflow](https://github.com/SecAI-Hub/SecAI_OS/actions/workflows/release.yml).
71+
72+
**2. Verify the checksum**
73+
74+
Download `SHA256SUMS` from the matching release bundle or workflow output and
75+
confirm that the hash for `secai-os-*-usb.raw.xz` matches your download.
76+
77+
**3. Write it to the USB drive**
78+
79+
**Windows (recommended):**
80+
81+
- Prefer **USBImager**. It can write `*.raw.xz` images directly.
82+
- Select the downloaded `secai-os-*-usb.raw.xz` file.
83+
- Select the USB drive.
84+
- Click `Write`.
85+
86+
**Windows (Rufus fallback):**
87+
88+
- Set **Boot selection** to `Disk or ISO image`.
89+
- Click `SELECT` and choose the portable USB image.
90+
- If Rufus does not accept `*.raw.xz`, extract it to `*.raw` first with 7-Zip and select the extracted file.
91+
- Do **not** choose `MS-DOS`, `FreeDOS`, or `Non bootable`.
92+
- If Rufus offers `DD` vs `ISO` write modes, choose `DD`.
93+
94+
**Linux / macOS:**
95+
96+
```bash
97+
# Linux
98+
xz -dk secai-os-<version>-x86_64-usb.raw.xz
99+
sudo dd if=secai-os-<version>-x86_64-usb.raw of=/dev/sdX bs=16M status=progress oflag=sync
100+
101+
# macOS
102+
xz -dk secai-os-<version>-x86_64-usb.raw.xz
103+
sudo dd if=secai-os-<version>-x86_64-usb.raw of=/dev/rdiskN bs=16m
104+
sync
105+
```
106+
107+
Replace `/dev/sdX` or `/dev/rdiskN` with the actual removable device.
108+
109+
**4. Boot from the USB**
110+
111+
- Use the firmware's explicit **UEFI USB** boot entry.
112+
- Disable **Legacy/CSM** mode.
113+
- If the USB still does not appear bootable, try one test with **Secure Boot temporarily disabled** to distinguish firmware policy issues from a bad write.
114+
115+
**What you should see:** The system should boot directly from the USB image rather than showing the installer-only ISO menu.
116+
117+
---
118+
119+
## Path C: Build a VM Image Locally
64120

65121
If you want a self-contained VM image without installing Fedora first, you can build one from the OCI image using the included scripts. This requires a Linux host with KVM/QEMU.
66122

@@ -107,7 +163,7 @@ virsh domifaddr secai-os
107163
108164
---
109165

110-
## Path C: Development Mode
166+
## Path D: Development Mode
111167

112168
Run individual services locally for development without rebasing your OS. No security features (sandboxing, firewall, vault) are active.
113169

0 commit comments

Comments
 (0)