Intereting Posts
Ldap SSH Login не работает – одинаковые конфигурации работают на 20+ других серверах – Ubuntu Не удается обновить Manjaro во время chroot Предотвращение вспышки колокола с экраном в шпатлевке smartcontrol: количество секторов, написанных слишком маленькими Процесс специфический ulimit все еще низкий после изменений в мягкие и жесткие ulimits Как я могу распаковать и распечатать последние несколько строк сжатого текстового файла? Найти-grep для списка файлов .tex? Нужно ли распространять источники полного распространения под GPL? Рекомендуемый способ переупаковки собственных пакетов deb, которые включают старые системные библиотеки Есть ли общая команда для просмотра оболочки? Можно ли установить права доступа для каждого пользователя в Linux? Никакая задержка между попытками входа ssh Разве не должно быть больше RAM, чем это? SSH-туннель между несколькими хостами Как сделать резервную копию нераспространяемых частей моей системы (а не только всего)?

Как получить доступ к терминалам agetty (например, TTY2, 3, 4 и т. Д.) Из виртуальной машины QEMU

В моей виртуальной машине QEMU ( qemu-kvm -boot d arch-freebsd.img -m 4096 с qemu-kvm -boot d arch-freebsd.img -m 4096 ) я хотел бы получить доступ к терминалу agetty, к которому я обычно обращался бы с помощью Ctrl + Alt + F2 (или F3, если я нужно tty3, F4, если tty4 и т. д. ), к сожалению, нажатие этих клавиш просто превращает меня в терминал agetty на моем хосте (в отличие от гостевой системы, в которую я пытаюсь перейти на tty2 in). Если бы это была виртуальная машина VirtualBox, я бы нажал Ctrl + F2 (в частности, Ctrl в центре моей клавиатуры, т.е. мою правую клавишу Ctrl ), чтобы получить доступ к tty2, но это не работает с QEMU. Если вы предлагаете мне нажать Ctrl + Alt + G, чтобы виртуальная машина захватила все мои вводы с клавиатуры и мыши, а затем нажать клавиши для доступа к терминалам agetty, которые я пытался сделать, и это не работает.

РЕДАКТИРОВАТЬ: Предложенная дублирующая ссылка не перечисляет, что решило мою проблему, нажав Alt + Fx . Я попробовал Ctrl + Alt + Fx, который, как мне кажется, там предлагается (хотя мне трудно понять, что это такое, а что такое VNC, для меня загадка), вот такая вот проблема.

Я хотел бы получить доступ к терминалу agetty , который я обычно получаю с помощью ⎈ Control + ⎇ Alt + F2

В этом есть две ошибки, одна из которых указывает на ответ, одна из нескольких возможных ответов.

Первая ошибка заключается в том, что FreeBSD не имеет agetty Wietse Venema («альтернативный getty»). У него есть обычный BSD getty . Так что эта номенклатура неверна. Действительно, на каждом виртуальном терминале ядра не обязательно работает getty , это зависит от того, что сконфигурировано в /etc/ttys .

Вторая ошибка заключается в том, что обычно пользователь обращается к нескольким виртуальным терминалам ядра с помощью простого ⎇ Alt и функциональной клавиши во FreeBSD. ⎈ Контроль является излишним и необходим только тогда, когда X-сервер находится на переднем плане. X-серверы распознают только аккорды, которые имеют оба ⎈ Control + ⎇ Alt , но сопоставления клавиатуры, заданные для самого ядра, что и обрабатывает это, когда X-сервер не находится на переднем плане, только фактически требует actually Alt , как они это делали в SCO Многоэкранный (откуда это произошло):

  % sed -n -e '1,4p; / 068 / p' /usr/share/vt/keymaps/uk.kbd
 # $ FreeBSD $
 # alt
 # scan cntrl alt alt cntrl lock
 # сдвиг базы кода cntrl shift alt shift состояние cntrl shift
   068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O
 % 

Конечно, можно отправить аккорд ⎈ Control + ⎇ Alt в гостевую операционную систему, и есть два способа сделать это:

  • Включите липкие ключи в госте. Используйте липкие клавиши, чтобы закрепить модификатор ⎈ Control вниз, а затем нажмите ⎇ Alt + F2 . Заметьте, что поддержка липких клавиш – это GUI. Это не поможет, если сеанс графического интерфейса не на переднем плане.
  • Переключитесь на консоль монитора QEMU и используйте команду sendkey . Это может отправить широкий спектр аккордов в гостевой операционной системе. В этом конкретном случае это будет sendkey ctrl-alt-f2 . Затем переключитесь обратно с консоли монитора, конечно.

Пользователи Ubuntu, включая muru здесь, предложили команду chvt . Это Linux-думаю. В FreeBSD нет команды chvt . Я написал один и предоставил его в наборе инструментов nosh; но операционная система не поставляется с одним из коробки.

Мой chvt в первую очередь предназначен для использования с виртуальными терминалами в пользовательском пространстве, по умолчанию используется head0 , но он также может обрабатывать виртуальные терминалы ядра. Для этого можно было бы вызвать его (предполагая, что у него есть права доступа к /dev/ttyv0 ) как:

  chvt 1 @ ttyv0 

Инструментом, поставляемым из коробки, является vidcontrol , который для этой конкретной задачи vidcontrol вызывать (при условии, что у него есть права доступа к /dev/ttyv0 ) как:

  vidcontrol -s 2 

дальнейшее чтение

  • « Монитор ». QEMU . Wikibooks.
  • Джонатан де Бойн Поллард (2018). chvt . Руководство Nosh . Softwares.
  • Сорен Шмидт, Саша Вайлднер и др. (2016-01-19). vidcontrol Руководство по общим командам FreeBSD . freebsd.org.
  • В чем разница между getty и agetty?
  • https://unix.stackexchange.com/a/480705/5132