-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathissue
More file actions
60 lines (32 loc) · 3.43 KB
/
issue
File metadata and controls
60 lines (32 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
roblems:
docker-compose doesn't exist as a standalone debian package in recent versions (it's docker-compose-plugin or just part of docker-ce)
docker.io and podman conflict with each other, and golang-go is massive and pulls in hundreds of dependencies
If any single package fails during installation, the entire dpkg state breaks, which cascades into GRUB installation failing since that happens after pkgsel completes
Issue 2: pkgsel/upgrade select none
Skipping the upgrade phase combined with mismatched package versions leaves unresolved dependencies hanging.
Issue 3: Root partition too small (5120 MB = 5 GB)
The root partition is severely undersized for /usr when installing this many packages.
If the disk fills during pkgsel, GRUB installation will fail.
Issue 4: b2b-setup.sh switches APT sources to trixie
The ISO comes from debian-cd/current (stable, which could be bookworm or trixie), but then b2b-setup.sh switches to trixie repos and installs additional packages, creating potential version mismatches in the kernel, initramfs, or GRUB. If apt-get install upgrades the kernel or GRUB packages, the grub.cfg regenerates for the new kernel but UUID references might be incorrect, and the initramfs containing the LUKS unlock logic might not align with what's actually booting.
Issue 5: Missing update-grub safety net in late_command
After b2b-setup.sh runs, there's no final grub configuration refresh to ensure everything is consistent.
Issue 6: The finish-install section
Both halt and poweroff are enabled simultaneously, though only one is needed. This shouldn't affect the GRUB issue though.
The Fix Plan
Clean up pkgsel/include — strip it down to only essential packages, moving everything else to b2b-setup.sh.
Increase root partition to 8GB — shrink /home from 5GB to 3GB since it's user data that can expand later.
Add update-grub to late_command — ensure the bootloader configuration is regenerated after all package changes.
Fix b2b-setup.sh APT source handling — detect the actual installed release and use matching sources instead of assuming trixie.
Add GRUB reinstall in b2b-setup.sh — guarantee proper bootloader installation after package modifications.
Strengthen the grub-installer preseed section — add more reliable GRUB configuration settings.
Now I'm going to implement these fixes.
Starting: Fix preseed GRUB configuration (7/11)
Root causes identified:
pkgsel/include has broken/conflicting packages — docker-compose doesn't exist as a Debian package (it's docker-compose-plugin), docker.io + podman conflict, golang-go is enormous. When apt fails during pkgsel, it leaves dpkg in a broken state, and grub-installer (which runs AFTER pkgsel) fails silently.
Root partition too small (5 GB) — with all those packages, usr fills up and GRUB can't write its config.
b2b-setup.sh switches APT to trixie repos and installs more packages — this can upgrade kernel/GRUB packages after the installer already configured GRUB, breaking grub.cfg.
No update-grub safety net after late_command — after b2b-setup.sh modifies the system, GRUB config is never regenerated.
Now implementing all fixes:
Now fix b2b-setup.sh — it needs to: (1) detect the installed release instead of hardcoding trixie, (2) add a GRUB safety net at the end, (3) move the heavy packages from pkgsel/include here with proper error handling:
Now let me read the end of b2b-setup.sh to see lines around the final section where I need to add the GRUB safety net: