diff --git a/cloud/agent/BUILD.bazel b/cloud/agent/BUILD.bazel
index d890ed2..e1febb6 100644
--- a/cloud/agent/BUILD.bazel
+++ b/cloud/agent/BUILD.bazel
@@ -17,6 +17,7 @@
         "//cloud/bmaas/server/api",
         "//metropolis/node/build/mkimage/osimage",
         "//metropolis/node/core/network",
+        "//metropolis/pkg/bootparam",
         "//metropolis/pkg/efivarfs",
         "//metropolis/pkg/logtree",
         "//metropolis/pkg/nvme",
diff --git a/cloud/agent/main.go b/cloud/agent/main.go
index e859488..cdd5dc1 100644
--- a/cloud/agent/main.go
+++ b/cloud/agent/main.go
@@ -5,22 +5,36 @@
 	"fmt"
 	"io"
 	"os"
+	"regexp"
 
 	"golang.org/x/sys/unix"
 
+	"source.monogon.dev/metropolis/pkg/bootparam"
 	"source.monogon.dev/metropolis/pkg/logtree"
 	"source.monogon.dev/metropolis/pkg/supervisor"
 )
 
+var validTTYRegexp = regexp.MustCompile(`^[a-zA-Z0-9]+$`)
+
 func main() {
 	setupMounts()
 
-	// Set up logger for the Agent. Currently logs everything to /dev/tty0 and
-	// /dev/ttyS0.
-	consoles := []string{"/dev/tty0", "/dev/ttyS0"}
+	// Set up logger for the Agent. Parse consoles from the kernel command line
+	// as well as adding the two standard tty0/ttyS0 consoles.
+	consoles := make(map[string]bool)
+	cmdline, err := os.ReadFile("/proc/cmdline")
+	if err == nil {
+		params, _, err := bootparam.Unmarshal(string(cmdline))
+		if err == nil {
+			consoles = params.Consoles()
+		}
+	}
+	consoles["tty0"] = true
+	consoles["ttyS0"] = true
+
 	lt := logtree.New()
-	for _, p := range consoles {
-		f, err := os.OpenFile(p, os.O_WRONLY, 0)
+	for p := range consoles {
+		f, err := os.OpenFile("/dev/"+p, os.O_WRONLY, 0)
 		if err != nil {
 			continue
 		}
diff --git a/cloud/takeover/takeover.go b/cloud/takeover/takeover.go
index e340c56..fc71690 100644
--- a/cloud/takeover/takeover.go
+++ b/cloud/takeover/takeover.go
@@ -130,10 +130,9 @@
 	agentParams := bootparam.Params{
 		bootparam.Param{Param: "quiet"},
 		bootparam.Param{Param: "init", Value: "/init"},
-		// Always add "default" console on x86
-		bootparam.Param{Param: "console", Value: "ttyS0,115200"},
 	}
 
+	var customConsoles bool
 	cmdline, err := os.ReadFile("/proc/cmdline")
 	if err != nil {
 		warnings = append(warnings, fmt.Errorf("unable to read current kernel command line: %w", err))
@@ -145,10 +144,15 @@
 			for _, p := range params {
 				if p.Param == "console" {
 					agentParams = append(agentParams, p)
+					customConsoles = true
 				}
 			}
 		}
 	}
+	if !customConsoles {
+		// Add the "default" console on x86
+		agentParams = append(agentParams, bootparam.Param{Param: "console", Value: "ttyS0,115200"})
+	}
 	agentCmdline, err := bootparam.Marshal(agentParams, "")
 	// Stage agent payload into kernel memory
 	if err := kexec.FileLoad(kernelFile, initramfsFile, agentCmdline); err != nil {
