Skip to content

cnieg/ubuntu-laptop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ubuntu Laptop Factory USB (NVMe) — Autoinstall

  • NVMe only: /dev/nvme0n1
  • EFI 512MiB, Swap 32GiB (LUKS2), Root (LUKS2) + Btrfs subvolumes (@, @home, @var, @snapshots)
  • Hibernation: swap LUKS (cryptswap) with persistent keyfile included in initramfs + resume=/dev/mapper/cryptswap
  • TPM auto-unlock for root
  • Proxy nomade: active/désactive proxy selon IP 172.30/172.31
  • Factory mode: wipe only if /cdrom/NOLOUD/ARMED exists

Build ISO

chmod +x scripts/*.sh
./scripts/build-iso.sh ubuntu-25.10-live-server-amd64.iso build/ubuntu-25.10-factory.iso

Build Ventoy bundle (fail-fast)

La cible ISO Ventoy est configurable via variables d'environnement:

  • TARGET_ISO_NAME (défaut: resolute-live-server-amd64.iso)
  • TARGET_ISO_PATH (défaut: <repo>/<TARGET_ISO_NAME>)

Exemple:

TARGET_ISO_NAME=resolute-live-server-amd64.iso \
TARGET_ISO_PATH=$PWD/resolute-live-server-amd64.iso \
./scripts/build-ventoy-bundle.sh

Le script échoue explicitement si l'ISO cible, les assets requis (ventoy.json, user-data, meta-data) ou une dépendance de build (ex: dos2unix) est absente.

CI: bundle + smoke install

Le workflow GitHub Actions .github/workflows/build-ventoy-bundle.yml:

  1. Télécharge l'ISO cible définie via TARGET_ISO_URL.
  2. Génère le bundle Ventoy.
  3. Lance un smoke test headless QEMU qui vérifie un boot initial, des marqueurs NoCloud/cloud-init, et la validité syntaxique des scripts critiques.
  4. Publie les artefacts de diagnostic (smoke-install.log, seed ISO).

Par défaut, l'absence de marqueurs cloud-init sur la sortie série n'est plus bloquante si le menu GRUB/installer est bien observé. Pour réactiver l'échec strict sur ces marqueurs, définir SMOKE_STRICT_CLOUD_INIT=1.

Proxy nomade

Après install, un timer systemd applique ou retire le proxy automatiquement:

  • /etc/proxy-autoswitch.conf
  • /usr/local/sbin/proxy-autoswitch
  • systemd: proxy-autoswitch.timer

Chiffrement root/swap (parité sécurité)

  • /etc/crypttab est régénéré pour inclure:
    • cryptroot (UUID root LUKS + option TPM2)
    • cryptswap (UUID swap LUKS + keyfile persistant)
  • keyfile swap: /etc/cryptsetup-keys.d/cryptswap.key (copié dans initramfs via KEYFILE_PATTERN)
  • reprise hibernation: /etc/initramfs-tools/conf.d/resume pointe vers /dev/mapper/cryptswap

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages