Если я правильно понимаю сценарий, ваш BIOS не находит действительное загрузочное устройство/раздел при включении компьютера без флэш-накопителя YUMI. Похоже, -off звучит так, будто в вашей таблице разделов не установлена действительная загрузочная запись, которая, поскольку вы упомянули UEFI, я предполагаю, что это GPT.
Поскольку вы можете загружаться с флешки, с терминала вы сможете проверить/переустановить загрузчик (установить флаг загрузки )на загрузочный раздел. Чтобы проверить наличие загрузочного флага, вы можете указать букву диска с помощью следующей команды:
file -Ls /dev/xvdX
Вы можете использовать ту же команду для любого раздела, и вы должны увидеть GRUB, например, для вашего загрузочного раздела.
Затем переустановите GRUB с помощью следующих команд:
grub-install /dev/xvdX
update-grub
Упомянутые выше команды необходимо выполнять с привилегиями root.
Подстановочные знаки не работают в X-ресурсах, так как вы можете использовать выражения glob в оболочке. Это больше похоже на многоточие "...", заменяющее ноль или более уровней иерархии виджетов.
Если вы исключите имя класса, используя только *scrollBar:true
, это будет применяться как к xterm, так и к uxterm (, а также к любому другому приложению, использующему это имя ресурса ).
Если вы хотите иметь несколько конфигураций XTerm и выбирать одну из них во время вызова, вы можете использовать один класс и несколько имен экземпляров:
XTerm.VT100.background: Black
XTerm.VT100.scrollBar: true
light.VT100.background: White
С этими определениями xterm -name light
имеет белый фон и полосы прокрутки. Таким образом вы можете получить два уровня конфигурации, но если вы хотите три уровня, это не поможет.
В этом конкретном случае вы могли бы использовать
?.VT100.background: Black
Light.VT100.background: White
, потому что на практике xterm — единственное приложение с виджетом VT100
.
Как правило, вы не можете сделать это, используя только базовый синтаксис ресурсов X. Подстановочные знаки соответствуют компонентам, а не отдельным символам внутри компонентов. *XTerm
означает «XTerm
на любом уровне иерархии», а не «любое имя, оканчивающееся на XTerm
».
Решение состоит в том, чтобы полагаться на препроцессор .xrdb
(утилита, которая загружает ресурсы X ), по умолчанию использует препроцессор C (cpp
). К сожалению, cpp не очень удобен для синтаксиса X-ресурса. В частности, у вас не может быть разрыва строки в расширении макроса cpp, поэтому вы не можете определить макрос для расширения до нескольких ресурсов X. Однако вы можете решить свою проблему с cpp, используя включаемые файлы. Поместите общие определения для XTerm
и UXTerm
в отдельный файл xterm-common.Xresources
. В вашем основном файле .Xresources
включите xterm-common.Xresources
дважды, по одному разу для каждого имени класса.
#include ".config/x11/xterm-common-Xresources"
#define XTerm UXTerm
#include ".config/x11/xterm-common-Xresources"
#undef XTerm
XTerm.font: my XTerm font
UXTerm.font: my UXTerm font
Я использую m4 для предварительной обработки моих X-ресурсов. Это означает, что я не могу полагаться на загрузку по умолчанию ~/.Xresources
:. Я вызываю xrdb -cpp m4 ~/path/to/my/Xresources
явно из моего .xinitrc
или .xsession
. У меня есть код для применения некоторых ресурсов как для XTerm
, так и для UXTerm
:
define(`XTERM_class_settings', `
…
') dnl end of `XTERM_class_settings'
XTERM_class_settings
define(`XTerm', `UXTerm')
XTERM_class_settings
undefine(`XTerm')