live-image: real /init + verbose boot for first-boot diagnosis
Host boots past kernel init and then stalls silently. ACPI DSDT error about TXHC.RHUB.SS01 is benign noise (Tiger Lake firmware bug) — the actual problem is that nothing between kernel handoff and (maybe) systemd is visible on the console. Two changes: 1. Replace the /init → sbin/init symlink with a real shell script (live-image/mkosi.extra/init) that mounts /proc /sys /dev /dev/pts /dev/shm /run before execing systemd. Systemd has fallback mount code for these, but when it fails the failure is silent. Doing it explicitly in /init keeps failures visible and avoids the fragile symlink-resolution trick. 2. Drop 'quiet' from the kernel cmdline and add loglevel=7 plus systemd.log_target=kmsg + journald.forward_to_console=1 so every early-boot message reaches both tty0 and ttyS0. Will be dialed back once boot is stable. Also: .gitattributes pins LF on live-image/, .gitea/, Makefile, and *.sh so Windows checkouts don't break shell scripts and Makefile recipes with CRLF. /init also gets chmod 0755 in repack-initrd as a belt-and-braces against mode loss on non-Linux checkouts.
This commit is contained in:
+10
-3
@@ -35,13 +35,20 @@ func BuildScript(p IPXEParams) string {
|
||||
if p.TLSCertFPR != "" {
|
||||
cmdline = append(cmdline, fmt.Sprintf("vetting.cert_fpr=%s", p.TLSCertFPR))
|
||||
}
|
||||
// Reduce kernel log noise during the test run; keep loglevel high enough
|
||||
// for boot failures to still show up on the console.
|
||||
// Verbose kernel + systemd logging on both the video console and the
|
||||
// serial port so first-boot failures on unfamiliar hardware aren't
|
||||
// invisible. Drop `quiet` entirely — once boot is stable we can
|
||||
// re-add it. systemd.log_target=kmsg makes early systemd go through
|
||||
// the same dmesg buffer as the kernel, so nothing is lost before
|
||||
// journald comes up.
|
||||
cmdline = append(cmdline,
|
||||
"console=tty0",
|
||||
"console=ttyS0,115200n8",
|
||||
"ip=dhcp",
|
||||
"quiet",
|
||||
"loglevel=7",
|
||||
"systemd.log_level=info",
|
||||
"systemd.log_target=kmsg",
|
||||
"systemd.journald.forward_to_console=1",
|
||||
)
|
||||
|
||||
var b strings.Builder
|
||||
|
||||
Reference in New Issue
Block a user