Мне удалось изменить шрифт Grub по умолчанию, используя
grub-mkfont -s 16 -o /boot/grub/grubfont.pf2 font.tty
, а затем добавив следующую строку в / etc / default / grub:
GRUB_FONT=/boot/grub/grubfont.pf2
И конечно
sudo update-grub
И новый шрифт действительно появился и все (не забудьте выбрать моноширинный шрифт). Но , символы «коробки» (вокруг записей) никогда не отображаются правильно. Я думаю, что большинство шрифтов просто не имеют этого набора символов. Есть ли способ, которым я могу добавить эти символы? Может быть, даже скопировать их из шрифта unicode.pf2 по умолчанию? Если это на самом деле невозможно, знаете ли вы какие-нибудь шрифты, которые имеют эти символы?
Обновление:
Я пробовал много разных вещей, таких как преобразование из ttf в bdf и затем в pf2, и я попытался преобразовать только символы ascii с помощью опции --range=0x0-0x7f
, но ни один из них, похоже, не работал идеально. У меня такое ощущение, что это потому, что я генерирую шрифт большего размера, чем по умолчанию, и поэтому глифы по умолчанию использовать нельзя.
Я попытаюсь выяснить, смогу ли я заставить его работать с меньшим размером шрифта, хотя это было одной из причин, по которой я хотел изменить шрифт.
В теории grub-mkfont
позволяет передавать несколько шрифтов. В этом случае, если вы можете одновременно передать ссылку на Unifont или другой шрифт с более широким покрытием. Полученный шрифт Grub будет представлять собой комбинацию покрытия обоих входных шрифтов.
Примечание: недавнее улучшение производительности загрузчика шрифтов Grub при загрузке означает, что глифы в файле шрифта Grub должны быть в определенном порядке возрастания, но, к сожалению, изменения не были внесены в утилиту grub-mkfont
в то же время время! Теперь это ошибка:
Кстати, если вам интересно, эта ошибка была обнаружена из-за экспериментов по исследованию использования Ubuntu Font Family в разработке Ubuntu Моно-шрифт в меню загрузки Grub и попадание точно в ту же проблему, в которую вы только что попали!
Это можно отобразить правильно, загрузив и шрифт по умолчанию, и нужный шрифт.
Затем установите шрифт на нужный шрифт.
Если символы для поля не найдены, стандартный шрифт, который также загружается, будет действовать по умолчанию, и необходимые символы будут предоставлены.
По сути, вы хотите использовать оператор диапазона, чтобы ограничить количество символов, содержащихся в вашем новом шрифте grub. Если вы не используете оператор диапазона, вы получите все глифы, включая ошибочные или неправильные элементы box, из целевого шрифта.
Например:
grub-mkfont -s 16 --range=0x0-0x7f -o /boot/grub/grubfont.pf2 font.tty
Сгенерирует шрифт только с символами ASCII, все, что не имеет ваш шрифт, должно изящно распадаться на шрифт по умолчанию, поэтому должны появляться поля и стрелки по умолчанию. Пожалуйста, смотрите этот сайт для получения дополнительной информации:
Если вы запустите grub-mkfont с флагом -v , он покажет вам, сколько символов вы получили. Если вы получите больше тысячи, там должен быть пограничный персонаж. Ограничение диапазона только ухудшит ситуацию. Шрифт DejaVuSansMono правильно отображает все символы и содержит более 3000 символов в .pf2. Многие другие шрифты получают правильные стрелки, но не границу.
IIRC Я столкнулся с тем, что вы описываете при использовании всех глифов:
(источник: xrmb2. net )
Может быть, это проблема с grub-mkfont
, может быть, это связано со шрифтом, я не знаю. : (
Что сработало для меня:
gbdfed
для создания файла 'bdf' из шрифта консоли (например, '/ usr / share / consolefonts / Lat15- VGA16.psf '): Файл> Импорт> Консольный шрифт, затем Файл> Сохранить как ... grub-mkfont
: Я понимаю, что этот поток является древним, но я читал его сегодня и придумал другой ответ, еще не предоставленный..., таким образом, здесь это:
, Если Вы получаете нечетные символы в GRUB после изменяющихся шрифтов, это - потому что те символы не существовали в .ttf файле, Вы раньше создавали .pf2 файл.
символы, используемые для создания границы:
другие обычно отсутствующие символы из .ttf файла являются стрелками, которые являются:
можно использовать FontForge (программное обеспечение с открытым исходным кодом), чтобы скопировать и вставить те символы от .ttf, которому включали символы в .ttf, который Вы пытаетесь использовать, который не делает. После генерации нового .ttf с FontForge можно использовать личинку-mkfont для создания .pf2 файла, который имеет все соответствующие символы.
использовать шрифт Unicode. Это работало почти нормально (например, arialuni.ttf, отображает все символы по мере необходимости). Моя проблема в небольшом большем интервале символов ... и это происходит с каждым протестированным шрифтом.