在 VirtualBox 中重新启动时,Ubuntu Server 会忽略控制台设置

在 VirtualBox 中重新启动时,Ubuntu Server 会忽略控制台设置

我发现了这种奇怪的行为。在 VirtualBox 中,Ubuntu Server 12.04 使用以下字体:

在此处输入图片描述

我觉得很难阅读。现在我可以dpkg-reconfigure console-setup正常运行,并将字体设置为Fixed,然后它看起来像这样:

在此处输入图片描述

这也是它在 VMWare 中的默认显示效果;我认为效果好多了。有趣的是,启动管理器字体也看起来像这样(即加载正确)。

dpkg-reconfigure console-setup正确更新了/etc/default/console-setup文件,但重启后,所有设置都消失了。出于某种原因,它没有加载console-setup

有人知道问题可能出在哪里吗?或者更好的是,我可以从哪里开始查找?

答案1

这是一个错误:控制台字体未设置,你可以看到补丁来自这里.该问题已在 12.10 中修复,但是补丁尚未移植回 12.04。

/etc/init/console-font.conf因此,您可以通过创建具有以下内容的 upstart 作业来修复此问题:

# console-font - set console font
#
# Set the console font, in case the similar udev rule races with Plymouth
# and thus fails to do it.

description "set console font"

start on starting plymouth-splash

task

exec /lib/udev/console-setup-tty fbcon  

答案2

ubuntu 生动地在重启后放弃控制台设置https://unix.stackexchange.com/questions/198791/

该问题似乎是由于控制台设置所期望的字体命名与 中的字体命名不匹配引起的/usr/share/consolefonts/,因此/etc/console-setup/当您选择要使用的字体(使用 dpkg-reconfigure console-setup)时会被复制到 中。

如果您进入控制台并执行strace /lib/udev/console-setup-tty fbcon,您会看到它正在尝试打开如下字体:

/etc/console-setup/Lat15-TerminusBold11x22.psf

但如果你看一下/etc/console-setup/,那里只有少数字体(你选择的字体),它们看起来更像这样:

/etc/console-setup/Lat15-TerminusBold22x11.psf.gz

一个为高度 x 宽度,另一个为宽度 x 高度。

可以通过几种方法解决该问题。

(1)/lib/udev/console-setup-tty可以修复-这是更永久的上游解决方案。

(2)您可以手动更改/etc/default/console-setup,反转 FONTSIZE 中的高度和宽度。每次使用 更改字体时都需要执行此操作dpkg-reconfigure console-setup。但当机器重新启动时,该首选项将保留。

(3)您可以安装 console-setup-tty 所需的字体。这就是我所说的“过度”选项。我这样做了:

在 /etc/rc.local 中:

# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon

创建一个名为的脚本/etc/console-setup/fonts.sh

#!/bin/bash

action=$1

srcdir="/usr/share/consolefonts"
parent="/etc/console-setup"
subdir="fonts"

case "$1" in
    install)
        # console fonts are not named properly in Ubuntu 15.04, compensate
        [[ -d $parent/$subdir ]] || mkdir $parent/$subdir
        for x in $( cd $srcdir ; ls -1 ) ; do
           # rearrange the two numbers from HHxWW to WWxHH
           y=$(echo "$x" | sed -e 's/^\([^-]*\)-\([^0-9]*\)\([0-9]*\)x\([0-9]*\).psf.gz/\1-\2\4x\3.psf.gz/g')
           # whether the pattern above matches or not, we'll be uncompressing here
           z=${y/.psf.gz/.psf}
           [[ ! -f $parent/$subdir/$z ]] && zcat $srcdir/$x > $parent/$subdir/$z
           [[ ! -L $parent/$z ]] && ln -sv $subdir/$z $parent/$z
        done
        ;;
    uninstall)
        rm -rf $parent/$subdir
        # only remove broken links (links to the fonts we removed above)
        rm $(find -L $parent -type l)
        ;;
    *)
        echo "$(basename $0) install|uninstall"
        ;;
esac

exit 0

为了快速实用,我会执行#2,在文件中添加注释,如果您选择不同的字体,则可能需要重新进行操作(假设注释也不会被覆盖)。

但方法 #3 效果很好,不会造成太多麻烦或混乱。

相关内容