Главная > Операционные системы > Семейство UNIX > |
FAQ по FreeBSD 2.X и 3.X |
Секция 6 из 10 - Предыдущая - Следующая
Все секции
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
шлюзом во весь остальной мир. Все имена узлов после uucp-dom: должны быть реально существующими узлами UUCP, что можно проверить командой uuname. Как напоминание о том, что этот файл должен быть преобразован в формат базы данных DBM перед использованием, командная строка, выполняющая это действие, помещена как комментарий в начало файла. При изменении mailertable всегда нужно выполнять эту команду. Последняя подсказка: если вы не уверены в правильности настройки маршрутизации почты, используйте sendmail с опцией -bt. Она переводит sendmail в режим пров ерки адресов; введите 0 , а затем адрес, который вы хотите протестировать на правильность маршрутизации. В последней строке будут указаны используемый почто вый агент, хост получателя, с которым будет работать этот агент, и (может быть преобразованный) адрес. Выход их этого режима осуществляется по Control-D. % sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 0 foo@interface-business.de rewrite: ruleset 0 input: foo @ interface-business . de ... rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ < @ interface-business . de > > ^D 7.21. Как настроить почту при коммутируемом соединении с Internet? Если адрес IP вам выделен статически, то вам не нужно ничего менять. Установите имя вашего хоста в соответствии с выделенным именем DNS, а sendmail сделает всё остальное. Если ваш IP-адрес выделяется динамически при коммутируемом соединении по протоколу ppp с Internet, может быть, вам выделен почтовый ящик на сервере пров айдера. Предположим, что домен вашего провайдера называется myISP.com, а ваше имя пользователя - user. Также положим, что вы назвали вашу машину bsd.home, и что ваш провайдер сказал, что вы можете использовать relay.myISP.com в качестве почтового шлюза. Чтобы забирать почту из вашего почтового ящика, вам нужно установить соответств ующий агент. Хорошим агентом является программа fetchmail, так как она поддержи вает много различных протоколов. Обычно провайдеры предлагают POP3. Если вы используете user-ppp, то можете автоматически забирать вашу почту при установ лении соединения с Internet, добавив такую строку в файл /etc/ppp/ppp.linkup: MYADDR: !bg su user -c fetchmail Если вы используете sendmail (как показано ниже) для доставки почты для внешних пользователей, поместите команду !bg su user -c "sendmail -q" после вышеуказанной строки. Это заставит sendmail обработать вашу очередь почто вых сообщений, как только будет осуществлено подключение к сети. Предположим, что вы имеет учётную запись для user на машине bsd.home. В домашнем каталоге пользователя user на машине bsd.home создайте файл .fetchmailrc такого содержания: poll myISP.com protocol pop3 fetchall pass MySecret Излишним будет напоминание о том, что этот файл никому не должен быть доступен для чтения, кроме пользователя user, потому что он содержит пароль MySecret доступа к почтовому ящику. Чтобы посылать почту с правильным заголовком from:, вы должны указать программе sendmail использовать user@myISP.com, а не user@bsd.home. Вам может понадобиться настроить sendmail для посылки всей почты через relay.myISP.com, чтобы убыстрить её передачу. Следующий файл .mc должен подойти: VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`myISP.com')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, `relay.myISP.com') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl В предыдущем разделе описано, как преобразовать файл .mc в sendmail.cf. И не забудьте перезапустить sendmail после обновления sendmail.cf. 7.22. Ой! Я забыл пароль администратора! Без паники! Просто перезапустите систему, наберите boot -s в приглашении Boot: (или просто -s в случае использования версий FreeBSD до 3.2) для входа в однопользовательский режим. На вопрос об используемой оболочке нажмите ENTER. На приглашение # введите mount -u /, чтобы перемонтировать корневую файловую систему в режиме чтения/записи, после чего выполните команду mount -a для монтирования всех файловых систем. Запустите команду passwd root, чтобы сменить пароль администратора, а затем exit для продолжения процесса загрузки. 7.23. Как запретить перезагрузку по клавишам Control-Alt-Delete? Если вы используете драйвер консоли syscons (который является стандартным) во FreeBSD 2.2.7-RELEASE и выше, перегенерируйте и установите новое ядро со строчкой options SC_DISABLE_REBOOT в конфигурационном файле. Если же вы используете драйвер консоли PCVT во FreeBSD 2.2.5-RELEASE и выше, то укажите следующую строку в конфигурационном файле: options PCVT_CTRL_ALT_DEL Для более старых версий FreeBSD отредактируйте используемый для консоли файл раскладки клавиатуры, заменив ключевые слова boot на nop. Используемая по умолчанию раскладка находится в файле /usr/share/syscons/keymaps/us.iso.kbd. В ам может потребоваться явно указать в файле /etc/rc.conf загрузку этой раскладки, чтобы она действительно поменялась. Конечно, если в вашей стране вы используете другую раскладку, вы должны отредактировать именно её. 7.24. Как преобразовать текстовые файлы DOS в формат UNIX? Используйте такую команду: % perl -i.bak -npe 's/\r\n/\n/g' file ... где file - это имя файла(ов) для преобразования. Преобразование делается в том же самом файле, оригинальные файлы сохраняются с расширением .bak. Это преобразование также можно выполнить с помощью команды tr: % tr -d '\r' < dos-text-file > unix-file где dos-text-file - это имя файла, содержащего текст DOS, а в файл unix-file будет помещён уже преобразованный текст. Этот способ может работать гораздо быстрее, чем при использовании perl. 7.25. Как прервать процесс по имени? Используйте команду killall. 7.26. Почему su выдаёт сообщение о том, что я не вхожу в root ACL? Эта ошибка выдаётся распределённой системой аутентификации Kerberos. Эта ошибка не фатальна, однако это раздражает. Вы можете запустит su с ключом -K либо деинсталлировать Kerberos, как описано в следующем разделе. 7.27. Как деинсталлировать Kerberos? Чтобы убрать Kerberos из системы, переинсталлируйте дистрибутив bin того релиза, который у вас запущен. Если у вас есть CDROM, вы можете смонтировать компакт-диск (положим, в каталог /cdrom) и выполнить команду # cd /cdrom/bin # ./install.sh 7.28. Как добавить в систему дополнительные псевдотерминалы? Если у вас много пользователей, работающий в сеансах telnet, ssh, X или в screen, вам можете столкнуться с проблемой нехватки псевдотерминалов. Их количество можно увеличить следующим образом: 1. Откомпилируйте и инсталлируйте новое ядро, в конфигурационный файл которого входит такая строка: pseudo-device pty 256 2. Выполните следующие команды: # cd /dev # sh MAKEDEV pty{1,2,3,4,5,6,7} для создания 256 дополнительных файлов устройств для новых терминалов. 3. Отредактируйте файл /etc/ttys, добавив по строке для каждого из 256 терминалов. Они должны соответствовать формату существующих строк, то есть должны выглядеть вот так: ttyqc none network Порядок назначения букв при записи в виде регулярного выражения имеет вид tty[pqrsPQRS][0-9a-v]. 4. Теперь осталось только перезапустить систему с новым ядром. 7.29. Не получается создать устройство snd0! Такого устройства, как snd, не существует. Это название используется в качестве краткого обозначения различных устройств, которые составляют во FreeBSD звуков ой драйвер, таких как mixer, sequencer и dsp. Для создания этих устройств вы должны сделать следующее: # cd /dev # sh MAKEDEV snd0 7.30. Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc без перезагрузки системы? Перейдите в однопользовательский режим, а затем возвратитесь обратно в многопользовательский. На консоли выполните следующее: # shutdown now (Замечание: без -r или -h) # return # exit 7.31. Что означает термин sandbox (песочница)? "Sandbox" - это термин, используемый при обеспечении безопасности. Он имеет два значения: * Процесс, помещённый внутрь некоторых виртуальных стен, которые предназначены для того, чтобы предотвратить взлом всей системы в результате взлома этого конкретного процесса. Говорится, что процесс может играть в границах этих стен. Что бы этот процесс ни делал, он эти стены разрушить не может, поэтому вам не нужен его особый аудит, чтобы с уверенностью сказать, насколько его работа безопасна для системы. Стеной может служить, например, идентификатор пользователя. Вот определение, даваемое на страницах справочника по named и часто используемое при обсуждении безопасности систем. Рассмотрим, например, службу ntalk (смотрите /etc/inetd.conf). Раньше эта служба запускалась с идентификатором пользователя root, а сейчас - tty. Пользователь tty - это та песочница, которая осложняет взлом системы через ntalk посредством использования этого идентификатора пользователя. * Процесс, помещённый внутрь симулируемой машины. Это даёт больший уровень безопасности. В общем это означает, что некто, взломавший процесс, может думать. что может сломать и систему в целом, однако фактически может сломать только симулятор этой машины и не может модифицировать никаких реальных данных. Самым распространённым способом достигнуть такого результата является построение имитирующего окружения в каталоге и затем запуск процессов и этом каталоге через chroot (т.е. задав этот каталог в качестве / для этого процесса, а не реальный / всей системы). Другим часто используемым методом является монтирование низлежащей файловой системы в режиме "только для чтения" и затем создание уровня файловой системы поверх неё, что даёт процессу видимость доступа по записи на ту файловую систему. Процесс будет полагать, что может записывать в те файлы, но это будет единственный процесс, который увидит результат - другие процессы не будут этого делать, ни в коем случае. Попытка сделать такой тип песочницы настолько прозрачна, что пользователь (или взломщик) даже не поймёт, что он в ней находится. В UNIX реализованы два типа "песочниц". Один на уровне процесса, и один на уров не идентификаторов пользователей. Каждый процесс в UNIX полностью защищён от других процессов. Никакой процесс не может модифицировать адресное пространство другого процесса. Это отличается от Windows, где процесс может легко записать что-либо в адресное пространство другого процесса, что приводит к аварийным ситуациям. В UNIX каждым процессом владеет некоторый идентификатор пользователя. Если этот пользователь не root, от ограждает процесс от других, владельцами которых яв ляются другие пользователи. Этот идентификатор используется также для защиты данных на диске. 7.32. Как разрешить обычным пользователям монтировать дискеты, компакт-диски и другие сменные носители? Обычным пользователям можно позволить монтировать устройства. Вот как это делается: 1. Как пользователь root, установите системную переменную vfs.usermount в значение 1. # sysctl -w vfs.usermount=1 2. Работая пользователем root, назначьте соответствующие права на устройства с поблочным доступом, которые соответствуют сменным носителям. Например, чтобы позволить пользователям монтировать дискеты в первом дисков оде, воспользуйтесь командой # chmod 666 /dev/fd0 Чтобы разрешить пользователям из группы operator монтировать компакт-диски, сделайте так: # chgrp operator /dev/cd0c # chmod 640 /dev/cd0c 3. Наконец, добавьте строчку vfs.usermount=1 в файл /etc/sysctl.conf, чтобы она срабатывала во время загрузки системы. Теперь все пользователи могут монтировать дискету /dev/fd0 в собственные каталоги: % mkdir ~/my-mount-point % mount -t msdos /dev/fd0 ~/my-mount-point Пользователи из группы operator теперь могут монтировать компакт-диск /dev/cd0c в собственные каталоги: % mkdir ~/my-mount-point % mount -t msdos /dev/cd0c ~/my-mount-point Размонтировка устройства осуществляется просто: % umount ~/my-mount-point Использование vfs.usermount, однако, имеет некоторые негативные стороны, св язанные с вопросами безопасности. Более правильным способом работы с носителями в формате MSDOS является использование пакета mtools из коллекции портов. 7.33. Как перенести систему на большой новый диск? Самый лучший способ заключается в переустановке ОС на новый диск и последующем переносе данных пользователей. Это очень рекомендуется делать, если вы следов али ветке -stable в течение более одного релиза или обновляли релиз, а не устанавливали новый. Вы можете установить программу booteasy на оба диска с помощью команды boot0cfg(8) и выполнять загрузку с любого из них до тех пор, пока не будете удовлетворены новой конфигурацией системы. Пропустите следующий абзац, чтобы перейти к вопросу переноса данных после этой операции. Если вы решили не делать новой установки, то вам нужно разбить на разделы и разметить новый диск с помощью /stand/sysinstall или fdisk(8) и disklabel(8). В ы также должны установить на оба диска программу booteasy с помощью boot0cfg(8) , чтобы иметь возможность выполнять загрузку как старой, так и новой системы после выполнения копирования. Обратитесь к руководству по форматированию носителей за подробным описанием этого процесса. Итак, после подготовки диск, вы можете переносить данные. К сожалению, вы не можете просто скопировать данные. Такие вещи, как файлы устройств (в каталоге / dev) и символические ссылки будут этому мешать. Вам нужно использовать инструменты, которые работают с такими случаями, а именно dump(8) и tar(1). Я рекомендую выполнять перенос данных в однопользовательском режиме, но это не обязательно. Вы не должны использовать ничего, кроме dump(8) и restore(8) для переноса корне вой файловой системы. Команда tar(1) может сработать, а может и не сработать. Также вы должны использовать dump(8) и restore(8) при переносе одного раздела в другой пустой раздел. Последовательность шагов при использовании программы dump для переноса данных раздела в новый раздел такова: 1. выполните команду newfs над новым разделом. 2. смонтируйте его во временный каталог. 3. перейдите в этот каталог. 4. Выполните команду dump над старым разделом, направив вывод в новый раздел. Например, если вы собираетесь перенести корневую файловую систему на устройство /dev/ad1s1a с использованием каталога /mnt в качестве временной точки монтиров ания, то это делается так: # newfs /dev/ad1s1a # mount /dev/ad1s1a # cd /mnt # dump 0uaf - / | restore xf - Если вы собираетесь изменить размещение ваших разделов - скажем, разбив один из разделов на два или объединив два раздела в один, вы можете обнаружить необходимость в переносе всего в один подкаталог на новое место. Так как программа dump(8) работает с файловыми системами, она этого сделать не сможет. Поэтому воспользуйтесь программой tar(1). Команда общего вида для переноса /old в /new в случае tar(1) имеет такой вид: # (cd /old; tar cf - .) | (cd /new; tar xpf -) Если в каталог /old смонтированы файловые системы, и вы не хотите перемещать данные или размонтировать их, то просто добавьте флаг 'l' к первому упоминанию tar(1): # (cd /old; tar clf - .) | (cd /new; tar xpf -). Вы можете предпочесть cpio(1), pax(1) или cpdup (из ports/sysutils/cpdup) в место tar. 7.34. Я пытался обновить мою систему до последней -STABLE, а получил -RC или -BETA! Что происходит? Краткий ответ: это же просто название. RC означает "Release Candidate". Это значит, что вскоре произойдет выход релиза. Во FreeBSD -BETA значит то же самое, что и -RC. Подробный ответ: во FreeBSD релизы выпускаются из одного из двух мест. Крупные релизы, точка-ноль, такие, как 3.0-RELEASE и 4.0-RELEASE, ответвляются от основ ного потока разработки, более известного как -CURRENT. Мелкие релизы, такие, как 3.1-RELEASE или 4.2-RELEASE, являются снэпшотами активной ветки -STABLE. Когда делается релиз, то ветвь, из которой он выпускается, подвергается некоторой подготовке. Частью этого процесса является замораживание кода. Когда инициируется замораживание кода, то имя ветки изменяется для того, чтобы отразить факт близости релиза. Например, если ветка называлась 4.0-STABLE, то е ё имя будет изменено на 4.1-RC, чтобы указать, что скоро из неё будет сделан релиз. Как только релиз, а в этом примере это 4.1-RELEASE, будет сделан, ветвь будет переименована в 4.1-STABLE. ------------------------------------------------------------------------------- Chapter 8. X Window System и виртуальные консоли 8.1. Я хочу запустить X, как это сделать? 8.2. Почему моя мышь не работает с X? 8.3. У моей мыши есть колёсико. Могу ли я его использовать при работе в X? 8.4. Меню и диалоговые окна в X Window работают неправильно! 8.5. Что такое виртуальные консоли и как изменить их количество? 8.6. Как осуществляется доступ к виртуальным консолям из X? 8.7. Как запустить XDM во время загрузки? 8.8. При запуске xconsole выдаётся сообщение Couldn't open console. 8.9. Моя мышь PS/2 в X работает неправильно. 8.10. Моя мышь PS/2 от MouseSystems похоже, не работает. 8.11. При компиляции приложений для X программа imake не может найти файл Imake.tmpl. Где он находится? 8.12. Как поменять местами кнопки мыши? 8.13. Как установить экранную заставку и где такие заставки можно найти? 8.14. Можно ли в X использовать клавиши Windows(tm), которые есть на клав иатуре? 8.1. Я хочу запустить X, как это сделать? Самый простой способ - это указать во время инсталляции, что вы хотите использо вать X. Затем следуйте указаниям в документации по утилите xf86config, которая предназначена для конфигурирования работы XFree86(tm) с вашим графическим адаптером/мышью/итд. Вы можете также попробовать сервер Xaccel. За подробной информацией обратитесь к разделу, посвящённому продуктам фирм Xi Graphics и Metro Link. 8.2. Почему моя мышь не работает с X? Если вы используете syscons (стандартный драйвер консоли), то можете настроить поддержку указателя мыши во всех виртуальных экранах. Во избежание конфликтов с X, драйвер syscons поддерживает виртуальное устройство /dev/sysmouse. Все события, получаемые от реальной мыши, пишутся в устройство sysmouse через moused. Если вы хотите использовать вашу мышь на одной или нескольких в иртуальных консолях, продолжая использовать X, посмотрите Q: 2.10. и настройте moused. Затем отредактируйте /etc/XF86Config так, чтобы в нём были следующие строки. Section Pointer Protocol "SysMouse" Device "/dev/sysmouse" ..... Пример выше предназначен для XFree86 3.3.2 и выше. Для более ранних версий параметр Protocol должен быть MouseSystems. Некоторые предпочитают использовать в X устройство /dev/mouse. Чтобы оно работало, файл устройства /dev/mouse должен являться ссылкой на /dev/sysmouse: # cd /dev # rm -f mouse # ln -s sysmouse mouse 8.3. У моей мыши есть колёсико. Могу ли я его использовать при работе в X? Да. Но вам нужно будет настроить программы-клиенты для X. Посмотрите страничку Коласа Наабу (Colas Nahaboo) (http://www.inria.fr/koala/colas/ mouse-wheel-scroll/). Если вы собираетесь использовать программу imwheel, следуйте этим простым указаниям: 1. Трансляция событий от колёсика Работа программы imwheel основана на трансляции событий от кнопок мыши 4 и 5 в события от клавиатуры. То есть вам нужно заставить драйвер мыши транслировать события от колёсика в события от кнопок 4 и 5. Есть два способа сделать это, в первом из которых трансляцию выполняет moused(8). Во втором методе трансляцию событий выполняет сам X-сервер. a. Использование moused(8) для трансляции событий от колёсика Для того, чтобы moused(8) выполнял преобразование событий, просто добав ьте опцию -z 4 к команде, запускающей moused(8). Например, если обычно вы запускаете moused(8) командой moused -p /dev/psm0, то теперь вы должны будете использовать moused -p /dev/psm0 -z 4. Если moused(8) запускается у вас автоматически во время загрузки через /etc/rc.conf, то вы можете просто добавить опцию -z 4 к переменной moused_flags в файле /etc/rc.conf. Теперь вам нужно указать X, что вы используете 5-кнопочную мышь. Для этого просто добавьте строчку Buttons 5 в секцию "Pointer" файла /etc/ XF86Config. Например, в вашем файле /etc/XF86Config секция "Pointer" может принять такой вид: Example 8-1. Секция "Pointer" файла XF86Config для мыши с колёсиком и трансляцией через moused Section "Pointer" Protocol "SysMouse" Device "/dev/sysmouse" Buttons 5 EndSection b. Использование X-сервера для трансляции событий от колёсика Если moused(8) у вас не запущен или если вы не хотите, чтобы moused(8) занимался трансляцией событий от колёсика, то это может сделать X-серв ер. Это требует некоторых модификаций в вашем файле /etc/XF86Config. В о-первых, вам нужно правильно выбрать протокол для вашей мыши. Большинство манипуляторов с колёсиками используют протокол "IntelliMouse". Однако XFree86 поддерживает другие протоколы, такие, как "MouseManPlusPS/2" для мышей Logitech MouseMan+. После того, как вы выберите используемый протокол, в секцию "Pointer" нужно будет добавить строчку Protocol. Во-вторых, вам нужно указать, что X-сервер будет переопределять события от колёсика в события от кнопок 4 и 5. Это делается заданием опции ZAxisMapping. Например, если вы не используете moused(8) и ваша мышь IntelliMouse подключена к порту для мыши PS/2, в вашем файле /etc/XF86Config должно быть указано следующее: Example 8-2. Секция "Pointer" для мыши с колёсиком из файла XF86Config с трансляцией с помощью X-сервера Section "Pointer" Protocol "IntelliMouse" Device "/dev/psm0" ZAxisMapping 4 5 EndSection 2. Установка программы imwheel Теперь установите программу Imwheel из Коллекции Портов. Она находится в категории x11. Эта утилита будет преобразовывать события от колёсика вашей мыши в события от клавиатуры. Например, она может послать в программу последовательность Page Up, когда вы крутите колёсико вперёд. Для преобразо вания событий от колёсика в нажатия клавиш imwheel использует конфигурационный файл, причём для разных приложений возможна посылка разных последовательностей. Конфигурационным файлом, используемым по умолчанию, яв ляется /usr/X11R6/etc/imwheelrc. Вы можете скопировать его в ~/.imwheelrc и отредактировать, если хотите изменить параметры работы imwheel. Формат конфигурационного файла описан на странице Справочника о imwheel(1). 3. Настройка редактора Emacs для работы с Imwheel (по желанию) Если вы используете emacs или Xemacs, то в ваш файл ~/.emacs нужно добавить маленький раздел. Для редактора emacs, добавьте следующее: Example 8-3. Конфигурация Emacs для работы с Imwheel ;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines) (global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines) ;;; end imwheel section Для редактора Xemacs, в ваш файл ~/.emacs добавьте следующее: Example 8-4. Конфигурация Xemacs для работы с Imwheel ;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines) (define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines) ;;; end imwheel section 4. Запуск Imwheel Вы можете просто набрать команду imwheel в вашем в окне xterm после установ ки. Она сама перейдёт в фоновый режим и немедленно начнёт работу. Если вы хотите использовать imwheel всегда, просто добавьте её запуск в ваш .xinitrc или .xsession. Все предупреждения о PID-файлах, которые выводит imwheel, можно проигнорировать. Эти предупреждения имеют смысл только в Linux-версии imwheel. 8.4. Меню и диалоговые окна в X Window работают неправильно! Попробуйте выключить Num Lock. Если клавиша Num Lock во время загрузки по умолчанию включена, добавьте в секцию Keyboard файла XF86Config следующую строку. # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock 8.5. Что такое виртуальные консоли и как изменить их количество? Виртуальные консоли, упрощённо говоря, позволяют вам иметь несколько однов ременных сеансов работы с той же самой машиной без установки какой бы то ни было сети или запуска X. При запуске системы после вывода сообщений этапа загрузки на консоль выдаётся приглашение на вход в систему. Вы можете ввести своё имя и пароль и начать работать (или играть!) на первой виртуальной консоли. В какой-то момент вы можете захотеть запустить ещё одну сеанс, скажем, чтобы заглянуть в документацию по программе, которую вы запустили или для для чтения электронной почты во время ожидания завершения передачи данных по FTP. Просто нажмите Alt-F2 (удерживая клавишу Alt, нажмите F2) и вы обнаружите приглашение, ждущее вас на второй "виртуальной консоли"! Когда захотите вернуться к перв оначальному сеансу, нажмите Alt-F1. После инсталляции по умолчанию во FreeBSD задействованы три виртуальных консоли (8 начиная с 3.3-RELEASE), а комбинации клавиш Alt-F1, Alt-F2 и Alt-F3 служат для переключения между ними. Чтобы увеличить количество консолей, отредактируйте файл /etc/ttys, добавив туда записи для терминалов с именами от ttyv4 до ttyvc после слов "Virtual terminals": # Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure Используйте из них столько, сколько посчитаете нужным. Чем больше виртуальных терминалов у вас имеется, тем больше ресурсов они используют; это может иметь значение, если у вас меньше чем 8МБ ОЗУ. Вы можете сменить статус консолей с secure на insecure. Important: Если вы хотите запустить X, вы должны оставить для него по крайней мере один неиспользуемый (или выключенный) виртуальный терминал. Таким образов, если вы хотите иметь приглашения login на всех двенадцати функциональных клавиши, то вам не повезло - вы можете это сделать только для одиннадцати из них, если хотите на этой же машине ещё запустить X-серв ер. Самым простым способом убрать консоль является просто её выключение. Например, если вы запустили на всех 12 консолях виртуальные терминалы, как указано выше, и ещё хотите запустить X, то должны будете изменить параметры двенадцатого в иртуального терминала с: ttyvb "/usr/libexec/getty Pc" cons25 on secure на: ttyvb "/usr/libexec/getty Pc" cons25 off secure Если на вашей клавиатуре только десять функциональных клавиш, то последние строки будут выглядеть так: ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure (Вы также можете просто их удалить.) После того, как вы отредактировали файл /etc/ttys, проверьте, что у вас имеется достаточное количество устройств для виртуальных терминалов. Самый простой способ сделать это: # cd /dev # sh MAKEDEV vty12 Самым простым (и надёжным) способом активировать виртуальные консоли является перезагрузка. Однако если вы вовсе не хотите этого делать, просто остановите X Window System и выполните (как пользователь root): # kill -HUP 1 При этом требуется, чтобы вы полностью закрыли X Window, если она была запущена, до запуска этой команды. Если вы это не сделаете, ваша система может повиснуть/заблокироваться после выполнения команды kill. 8.6. Как осуществляется доступ к виртуальным консолям из X? Используйте комбинацию клавиш Ctrl+Alt+Fn для переключения обратно в в иртуальную консоль. Нажатие Ctrl+Alt+F1 вернёт вас на первую виртуальную консоль. После того, как вы оказались в текстовой консоли, можете использовать, как обычно, комбинации Alt+Fn для переключения между ними. Чтобы вернуться в сеанс работы X, вы должны переключиться в виртуальную консоль, на которой запущена X Window. Если вы запустили X из командной строки (например, при помощи команды startx), то сеанс работы X будет привязан к следующей неиспользуемой виртуальной консоли, а не к той текстовой консоли, с которой он был запущен. Если у вас имеется восемь активных виртуальных терминалов, то X будет работать на девятом, и вам нужно будет воспользоваться комбинацией Alt+F9 для возврата в X. 8.7. Как запустить XDM во время загрузки? Есть две философские школы, проповедующие различные методы запуска xdm. Последо ватели одного течения запускают xdm из /etc/ttys, используя приводимый пример, тогда как другие вставляют запуск xdm в скрипт rc.local или X.sh, поместив последний в каталог /usr/local/etc/rc.d. Оба метода равноправны, и один из них может работать в ситуациях, с которыми не справляется другой и наоборот. В обоих случая результат один и тот же: X выводит графическое приглашение login:. Плюсом метода с использованием ttys является документирование того, на каком vty будет запущен X и то, что ответственность за перезапуск X-сервера при зав ершении сеанса работы лежит на процессе init. Метод с использованием rc.local позволяет просто прекратить работу xdm, если при запуске X возникли какие-нибудь проблемы. Из rc.local xdm должен быть запущен без аргументов, (то есть как даемон). xdm должен быть запущен ПОСЛЕ запуска getty, иначе они будут конфликтовать,
Секция 6 из 10 - Предыдущая - Следующая
Вернуться в раздел "Семейство UNIX" - Обсудить эту статью на Форуме |
Главная - Поиск по сайту - О проекте - Форум - Обратная связь |