In some locales you need to explicitly switch console to locale
encoding. Currently it is done in /etc/profile.d/lang.sh:
if [ -n "$SYSFONTACM" ]; then
case $SYSFONTACM in
iso01*|iso02*|iso15*|koi*|latin2-ucw*)
if [ "$TERM" = "linux" -a "`/sbin/consoletype`" = "vt"
]; then
echo -n -e '\033(K' 2>/dev/null > /proc/$$/fd/0
fi
;;
esac
fi
The problem is, this file is sourced only on login. It means, that if
nobody has ever logged in on console (as is the case with GUI logon),
shutdown messages are unreadable. Moreover, it applies to every tty, so
even if you have logged in on tty2 but were on tty1 when shutdwon was
started messages are still unreadable.
I suggest ripping the above commands (including sourcing of
/etc/sysconfig/i18n of course) into seperate file and executing it out
of inittab before entering main runlevel, like
lf1:2345:once:/etc/rc.d/rc.sysfont < /dev/tty1 > /dev/tty1 2>&1
lf2:2345:once:/etc/rc.d/rc.sysfont < /dev/tty1 > /dev/tty2 2>&1
...
just before mingetty. Once is actually enough (for all I can tell) as
long as somebody has not reset tty back. Unfortunately, mcc is known to
do it :-(
-andrej