Files
Deshab-OS/CODE/linux/make_sata_sidecar.sh
T
Linehu c4a5295a81 feat: UI strict-error mode - ohMyLogo login intro, typewriter removed, fatal instrumentation
- desktop boot screen: typewriter effect removed, whole screen drawn in one pass
- login: ohMyLogo (DEAICUP lotus, 288px embedded) intro screen before password card
- strict error policy instrumentation (zero degradation): login LOGIN-E01..E05 (integrity/badctx/noconf/nouser/nohash) and desktop DSK-E01 now full-screen fatal with symbol + halt instead of silent skip
- root-cause fixed: missing .build_tmp/mkfat32.ps1 silently left SATA sidecar stale (login.elf 'not found' degradation) - replaced with CODE/linux/make_sata_sidecar.sh (auto adaptive FAT32 rebuild each build)
- recreated lost CODE/login/patch_login_hash.ps1 (.text SHA256 -> .hashseg)
- dev config now full flow: show_logo=1, wizard+login enabled, dev shell off
2026-10-02 21:07:05 +08:00

37 lines
1.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# make_sata_sidecar.sh — 重建 .build_tmp/sata_fat32_dsk.img(AHCI 边车测试盘)
# 用法: sudo bash make_sata_sidecar.sh <SYSTEM_DIR> <OUT_IMG>
# 说明: 纯 FAT32(无 GPT),DSK 经 ahci0 provider 读 BPB。
# 只拷贝 DSK 运行期需要的子树(排除 boot/ EFI/ limine/ 等仅 Limine
# ESP 需要的大文件),大小按内容自适应。需要 mkfs.vfat + loop mount。
set -euo pipefail
SRC="${1:?usage: $0 <SYSTEM_DIR> <OUT_IMG>}"
IMG="${2:?usage: $0 <SYSTEM_DIR> <OUT_IMG>}"
command -v mkfs.vfat >/dev/null || { echo "mkfs.vfat missing" >&2; exit 1; }
STAGE=$(mktemp -d)
trap 'rm -rf "$STAGE"' EXIT
# 仅运行期子树;boot/EFI/limine 是 Limine ESP 专属(rootfs 镜像 GB 级)
for d in SYSTEM EFI limine; do
[ -e "$SRC/$d" ] && cp -r "$SRC/$d" "$STAGE"/
done
need_kb=$(du -sk "$STAGE" | cut -f1)
size_mb=$(( need_kb / 1024 * 2 + 64 ))
[ "$size_mb" -lt 64 ] && size_mb=64
rm -f "$IMG"
truncate -s "${size_mb}M" "$IMG"
mkfs.vfat -F 32 -n DESHAB "$IMG" >/dev/null
MNT=$(mktemp -d)
mount -o loop "$IMG" "$MNT"
cp -r "$STAGE"/. "$MNT"/
sync
umount "$MNT"
rmdir "$MNT"
echo "[sidecar] rebuilt: $IMG (${size_mb}MB FAT32)"