Fix raw USB live boot and verify both installation media paths
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Hydra OS USB media correction — 2026-10-14
|
||||
|
||||
The original 0.2.0 ISO (`451e058228d7cbea87b5301ae6502b6be609cf7f52cc7c9e6fb477822501389b`)
|
||||
boots as a virtual CD-ROM but fails when attached as raw USB storage. GRUB's HFS+
|
||||
hybrid uses the same `HYDRA_OS` label as ISO9660; dracut then selects the HFS+
|
||||
partition and fails to mount the live payload. This was reproduced under OVMF
|
||||
with a read-only USB image and no physical disk access.
|
||||
|
||||
The corrected image adds native xorriso `-hfsplus off` to `grub-mkrescue`. It keeps
|
||||
GPT, the EFI partition and El Torito boot information, and removes HFS+/APM.
|
||||
The builder now rejects HFS+/APM in its inspection report.
|
||||
|
||||
- Local file: `build/artifacts/hydra-os-usb-fixed.iso`
|
||||
- Size: 2,380,120,064 bytes
|
||||
- SHA256: `3a126e1a1004ba24ead66971013ba4a8468508f6fac4dcaf04aa9770cb8df7e1`
|
||||
- Frozen payload source: `ebeebc7fb1aed07a5f50bc62374365d614953dad`
|
||||
- The ISO is local; this Git directory contains evidence, not an ISO download.
|
||||
|
||||
Kernel, live initramfs, squashfs and embedded build manifest match the original
|
||||
ISO byte-for-byte. [Payload hashes](payload-comparison.json) were computed from
|
||||
the actual original and corrected ISO extents. This is a media-layout repair,
|
||||
not a new system payload or signed runtime update. The original artifact and
|
||||
release evidence remain unchanged.
|
||||
|
||||
## Verification
|
||||
|
||||
`python3 -m unittest discover -s tests -q` passed **439 tests** inside Ubuntu with
|
||||
Python 3.12 and OpenSSL available. Initial host runs failed in pre-existing
|
||||
OpenSSL-dependent updater/signature tests because OpenSSL was absent or lost
|
||||
from the test PATH; these were not reported as successful runs.
|
||||
|
||||
The same corrected ISO passed the real `dev/iso-smoke.py --live-only` checks in
|
||||
both [USB](usb-live-acceptance.json) and [CD-ROM](cdrom-live-acceptance.json) modes:
|
||||
KVM, UEFI live user and overlay root, readable squashfs, sudo, required tools,
|
||||
NetworkManager and Hydra network services, active greetd/labwc/foot, and normal
|
||||
shutdown. Each run used fresh OVMF variables and a disposable test disk. Neither
|
||||
invoked the installer or accessed host disks. The earlier full installation and
|
||||
recovery checks apply to the byte-identical system payload, not a newly repeated
|
||||
full installation test of this repacked ISO.
|
||||
|
||||
The remaining FAT12 EFI partition is unchanged. OVMF successfully starts it via
|
||||
USB; this does not certify detection by every physical firmware. ASUS boot-menu
|
||||
visibility, USB port behavior and actual laptop live boot still need physical
|
||||
confirmation. Secure Boot must remain disabled.
|
||||
|
||||
Reflash the corrected ISO using a host-native writer. For the existing NixOS
|
||||
setup, GNOME Disks can be run temporarily; an Etcher process inside rootless
|
||||
Distrobox could not elevate or write the raw USB device. Do not change SSD
|
||||
partitions to repair an installation USB.
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"status": "passed",
|
||||
"scratch": "/tmp/hydra-iso-smoke-l7g8944d",
|
||||
"iso": "/home/workspaces/ubuntu-dev/home/Projects/hydra-os/build/artifacts/usb-fix-nohfs/hydra-os.iso",
|
||||
"iso_sha256": "3a126e1a1004ba24ead66971013ba4a8468508f6fac4dcaf04aa9770cb8df7e1",
|
||||
"live_media": "cdrom",
|
||||
"scope": "live-only",
|
||||
"checks": {
|
||||
"live_qmp_kvm": {
|
||||
"status": "passed",
|
||||
"output": "{\"enabled\": true, \"present\": true}"
|
||||
},
|
||||
"live_boot": {
|
||||
"status": "passed",
|
||||
"output": "/usr/bin/hydra\n/usr/bin/hydra-install\n/usr/bin/qemu-system-x86_64\n/usr/bin/qemu-img\n/usr/bin/remote-viewer\n/usr/bin/foot\n/usr/bin/labwc\nactive\nactive\nactive\n"
|
||||
},
|
||||
"live_graphical_session": {
|
||||
"status": "passed",
|
||||
"output": "active\n832\n854\n"
|
||||
},
|
||||
"live_poweroff": {
|
||||
"status": "passed",
|
||||
"output": "Live-only check completed without invoking the installer"
|
||||
}
|
||||
},
|
||||
"physical_hardware": "pending",
|
||||
"nested_scope": "Normal-user KVM VM launch, bridge helper and QMP; no nested guest OS boot",
|
||||
"ovmf_code_sha256": "f3ff7e73448ed2845ee15356f394882f5618eb5dab92c9a30ec6ee0e1468553a",
|
||||
"ovmf_vars_input_sha256": "6ed987af3a3c155be71665f510eae3e007eda9b8b94afd59d45e91c4a11565cc",
|
||||
"completed_utc": "2026-10-14T04:35:22Z"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"vmlinuz": {
|
||||
"size": 22666224,
|
||||
"original": "bb77e0f760f1ce97d2f6e23acad1fb2bb3dccab6c1381bec0868327e110ec3a5",
|
||||
"candidate": "bb77e0f760f1ce97d2f6e23acad1fb2bb3dccab6c1381bec0868327e110ec3a5",
|
||||
"matches": true
|
||||
},
|
||||
"initramfs-live.img": {
|
||||
"size": 83130912,
|
||||
"original": "694778902d95bfc94da1d7566d371379fb4a60de95e49babb6500cf907509d8e",
|
||||
"candidate": "694778902d95bfc94da1d7566d371379fb4a60de95e49babb6500cf907509d8e",
|
||||
"matches": true
|
||||
},
|
||||
"squashfs.img": {
|
||||
"size": 2254630912,
|
||||
"original": "ca550eb444e05505f815f4820b28527c3f8e8aee425005b73b7f02e4e74f7fc8",
|
||||
"candidate": "ca550eb444e05505f815f4820b28527c3f8e8aee425005b73b7f02e4e74f7fc8",
|
||||
"matches": true
|
||||
},
|
||||
"build-manifest.json": {
|
||||
"size": 142178,
|
||||
"original": "126c66d84b7c2160a517cbd0c3649630982a4d734e113ecdd6ee48e0859f1630",
|
||||
"candidate": "126c66d84b7c2160a517cbd0c3649630982a4d734e113ecdd6ee48e0859f1630",
|
||||
"matches": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"status": "passed",
|
||||
"scratch": "/tmp/hydra-iso-smoke-arp78mfm",
|
||||
"iso": "/home/workspaces/ubuntu-dev/home/Projects/hydra-os/build/artifacts/usb-fix-nohfs/hydra-os.iso",
|
||||
"iso_sha256": "3a126e1a1004ba24ead66971013ba4a8468508f6fac4dcaf04aa9770cb8df7e1",
|
||||
"live_media": "usb",
|
||||
"scope": "live-only",
|
||||
"checks": {
|
||||
"live_qmp_kvm": {
|
||||
"status": "passed",
|
||||
"output": "{\"enabled\": true, \"present\": true}"
|
||||
},
|
||||
"live_boot": {
|
||||
"status": "passed",
|
||||
"output": "/usr/bin/hydra\n/usr/bin/hydra-install\n/usr/bin/qemu-system-x86_64\n/usr/bin/qemu-img\n/usr/bin/remote-viewer\n/usr/bin/foot\n/usr/bin/labwc\nactive\nactive\nactive\n"
|
||||
},
|
||||
"live_graphical_session": {
|
||||
"status": "passed",
|
||||
"output": "active\n855\n869\n"
|
||||
},
|
||||
"live_poweroff": {
|
||||
"status": "passed",
|
||||
"output": "Live-only check completed without invoking the installer"
|
||||
}
|
||||
},
|
||||
"physical_hardware": "pending",
|
||||
"nested_scope": "Normal-user KVM VM launch, bridge helper and QMP; no nested guest OS boot",
|
||||
"ovmf_code_sha256": "f3ff7e73448ed2845ee15356f394882f5618eb5dab92c9a30ec6ee0e1468553a",
|
||||
"ovmf_vars_input_sha256": "6ed987af3a3c155be71665f510eae3e007eda9b8b94afd59d45e91c4a11565cc",
|
||||
"completed_utc": "2026-10-14T04:35:22Z"
|
||||
}
|
||||
Reference in New Issue
Block a user