ubuntu vivid disrgards-console-setup после перезагрузки

Предыдущий вопрос на Ubuntu Server не учитывает настройку консоли при перезагрузке в VirtualBox , относится к Ubuntu версии 12. Ответ (один) говорит об установке задания upstart в /etc/init/console-font.conf.

У меня Ubuntu версии 15 на физической машине, а не на виртуальной (хотя это, возможно, не имеет значения). Этот файл существует, но, конечно, Ubuntu 15 загружается с systemd, а не upstart, и задание upstart полностью игнорируется.

Так что же это за проблема с Ubuntu версии 15 с systemd? Как заставить Ubuntu сохранить набор шрифтов с помощью dpkg-reconfigure console-setup при перезагрузке?

4
задан 13 April 2017 в 15:23

1 ответ

См. https://unix.stackexchange.com/questions/198791/и Сервер Ubuntu disrgards консольная установка при перезагрузке в VirtualBox

Эта проблема, кажется, вызывается несоответствием в именовании шрифтов, которые консольная установка ожидает по сравнению с тем, что находится в /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 работает хорошо с минимальной суетой или путаницей.

1
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: