Não -n, na verdade, define o nível das mensagens futuras que serão exibidas no console. Então, fazendo -n 2 você apenas define que a partir desse momento você só verá mensagens do nível 2 e abaixo em seu console.
Como afirmado:
$> dmesg
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacc
...
$> dmesg -n 2
[ root@jamin ] ~
$> dmesg -n 7
[ root@jamin ] ~
$> dmesg -n 8
dmesg: unknown level '8'
dmesg -n deve imprimir tudo abaixo de n, certo? Mas isso não imprime nada. Por quê?
Não -n, na verdade, define o nível das mensagens futuras que serão exibidas no console. Então, fazendo -n 2 você apenas define que a partir desse momento você só verá mensagens do nível 2 e abaixo em seu console.
Tags dmesg linux-kernel