Only copy the console buffer contents to a rasops virtual console if it's the first one (visible).
Otherwise all of the other virtual consoles initialize with the trailing end of the kernel messages and then getty writes over them, like this: https://imgur.com/a/mAXKf Index: dev/rasops/rasops.c =================================================================== RCS file: /cvs/src/sys/dev/rasops/rasops.c,v retrieving revision 1.44 diff -u -p -u -p -r1.44 rasops.c --- dev/rasops/rasops.c 15 Dec 2016 19:18:41 -0000 1.44 +++ dev/rasops/rasops.c 15 May 2017 01:40:22 -0000 @@ -1398,7 +1398,7 @@ rasops_alloc_screen(void *v, void **cook scr->rs_crow = -1; scr->rs_ccol = -1; - if (ri->ri_bs) { + if (ri->ri_bs && scr->rs_visible) { memcpy(scr->rs_bs, ri->ri_bs, ri->ri_rows * ri->ri_cols * sizeof(struct wsdisplay_charcell)); } else {