Компактная инсталляция Free. BSD 1. 0 для центра сертификации / Хабрахабр. Однажды возникла необходимость в подчинённом, в рамках имеющейся инфраструктуры центре сертификации для 'выездного' использования — создания временных технологических сертификатов во время различных разъездов. Необходимо было сделать его мобильным и разумно, для данных целей, защищённым. Приемлемым был признан вариант с загрузочной флешкой с каким- нибудь *nix + openssl и типовым сценарием использования — имеющийся под рукой компьютер перезагружаем, вставляем флешку, загружаемся с неё, работаем, вытаскиваем флешку, перезагружаем компьютер. Секретные ключи данного ЦС, его файлы конфигурации, ключевые файлы для двухфакторной аутентификации могут быть вынесены на отдельные носители. Начался выбора дистрибутива *nix. Требования были следующие: дистрибутив должен быть поддерживаемым в актуальном состоянии, в том числе и Open. SSLналичие i. 38. Гигабайты памяти нам не понадобятся, а вот возможность запуска на нетбуке с x.
Intel Atom будет полезназапуск системы из оперативной памяти, либо корректный запуск и работа с r/o разделов. В идеале, корректная работа с флешки при включенной защите от записи (при использовании Qumo серии Yin & Yan)возможность компактной инсталляциижелателен достаточно большой срок поддержки релиза. В результате в финал вышли два дистрибутива — Alpine Linux и Open. BSD. Всё бы хорошо, и не было бы смысла писать эту статью, как ВНЕЗАПНО уточнились требования к операционной системе — потребовалась полная поддержка русского текста в Unicode в системной консоли. На ввод и на вывод. Ну всё, приплыли. С плоттерами Creation PCUT, KCUT, KingCUT серий СT и CTE чаще всего у пользователей Руководство пользователя по режущим плоттерам CT. Установка драйвера USB. Вставьте Найдите папку с драйвером вашей модели плоттера. Установка драйвера USB Найдите папку с драйвером вашей модели плоттера. Дважды (информация зависит от модели): « CREATION CT - 1200H ». Оба финалиста выбыли из соревнования. Alpine Linux в силу используемой в нём компактной библиотеки C, а Open. BSD. Однако это требование позволило иначе взглянуть на доступные дистрибутивы, и в фаворитах неожиданно оказалась Free. BSD. Консольный драйвер vt (ранее известный как newcons) поддерживает Unicode «из коробки», русские шрифты идут в комплекте, вышеописанные критерии в сумме исполняются достаточно полно. Бонусом можно реализовать возможность оффлайнового бинарного обновления системы на флешке. Началось изучение возможности компактной инсталляции стандартными способами. Добрый день, купил плоттер БУ Creation PCUT CT 1200. Есть и программа Артграв(Тот же Арткут) и драйвера для Corel, единственно. Установка драйвера и настройка порта для режущих плоттеров. Режущий плоттер CT - 1200, описание, принцип работы. Кроме того, и до, и после правок конфигов, с драйвером directfb нажатие любой. Готовые наборы — tinybsd, nanobsd, picobsd произвели впечатление «старый, древний, ещё древнее». Одни только расчёты секторов, головок, цилиндров для разных типов флешек в picobsd. В реальной жизни вышеуказанные возможности применяются, естественно, выборочно. Нет особого смысла один раздел монтировать в памяти, а другой, с той же флешки — вживую. И да, это будет не слишком похоже на «ядро + systemd + шелл + openssl», но не ставилась же цель уместить всё на дискету. И с fdformat. com и 8. К тому же, для обеспечения заявленной возможности обновления системы, сильно её уродовать (свернуть всё в один crunchgen бинарник и засунуть в ядро) нельзя — а то freebsd- update не признает. Забегая вперёд — размер системы в максимальной конфигурации (два ядра + два образа) у нас составит 4. Мб, а в минимальной (одно ядро + один образ) — 7. Без установленных пакетов. Возможность выбора ядра при загрузке оказалась очень удобна для отладки — если что- то не работает, то попеременно загружаясь с разными ядрами и одним и тем же образом системы можно определить в сборке чего проблема — ядра или мира. Можно, конечно, - STABLE, но тогда не будет работать freebsd- update с бинарными обновлениями. В процессе работы мы скомпилируем мир и ядро, установим их в отдельный каталог, настроим систему, удалим ненужные файлы, после чего сделаем . Ничего сложного. Создадим рабочее окружение. Можно в железе, но проще в виртуальной машине. Скачиваем Free. BSD- 1. RELEASE- i. 38. 6, устанавливаем, при выборе системных компонент включив установку исходных текстов. Дерево портов и игры не нужны. Загружаемся, заходим как root. Подготовка. Всё будем делать из- под root. Для удобства установим несколько переменных окружения, они будут использоваться далее по тексту. У пользователя root шелл по умолчанию csh, поэтому в /root/. Перезагружаемся. Создадим каталог /root/ca. BSD и рабочие подкаталоги в нём. Подкаталоги в нём: vanilla/ — тут мы настраиваем корень будущей системы, installworld, installkernelmnt/ — временная точка монтированияcustom/ — из содержимого этого каталога будем создавать . Компилируем мир и ядро. Создаём файл конфигурации для нашего ядра. На этапе отладки используем конфигурацию, базирующуюся на GENERIC и состоящую из нескольких строчек: tools/CABSD- DEV#. CABSD- DEV. include GENERIC. CABSD- DEV. makeoptions NO. Для него берём файл GENERIC ядра, удаляем всё лишнее (периодически компилируя и проверяя — грузится . Файл конфигурации нашего рабочего ядра стал выглядеть так: tools/CABSD#. I4. 86. Читаем man src. WITHOUT. Приходит понимание, что понадобится не один, а целых два файла настроек — один для buildworld, второй плюсом для installworld. WITHOUT. Но в нашем случае. WITHOUT. На первом же шаге немного схитрим. При компиляции мира очень много времени уходит на компиляцию компилятора, но у нас же есть готовый, в базовой системе. К тому же только что обновлённый. Им мы и воспользуемся. Устанавливаем переменные$ setenv CC `whereis - bq clang`. CPP `whereis - bq clang- cpp`. CXX `whereis - bq clang++`. Создаём символьную ссылку на файл конфигурации ядра CABSD в соответствующий каталог (в данном примере пропустим отладочный этап с CABSD- DEV, сразу будем делать конечный вариант ядра). Дополнительные опции вида '- j N' по желанию$ cd /usr/src. USER=IT HOSTNAME=hq. SRCCONF=$. Обратите внимание — между этапами компиляции и установки не стоит посредством freebsd- update обновлять систему или выключать параметры в файле worldbuild. Второй файл с параметрами мы указываем через параметр . Вся система у нас находится на одном разделе, при загрузке монтирующемся в памяти — поэтому варианты с несмонтировавшемся usr практически исключены, и смысл замены может быть лишь в возможности уменьшить размер системы за счёт удаления библиотек, ставших ненужными из- за того, что использующие их программы заменены на слинкованный статически rescue. Впрочем, экономию надо просчитывать, а в нашем примере мы rescue компилировать не будем. Если будете заменять, то можно использовать скрипт (подсмотрен в mfs. BSD)tools/. Популярный mc занимает 1. Мб, mc- light — 6 Мб, deco — 2. Mb со всеми зависимостями. Если ставить из портов, то, вероятно, можно было бы немного уменьшить размер с помощью опций компиляции, но в пакетах нашелся компактный консольный файловый менеджер clex — 0. Мб, который мы и установим. Второй момент — редактор с поддержкой Unicode. Формально, по букве задания, поддержка была обеспечена — русский текст ввести в консоли в командной строке csh можно (echo привет), вывести на экран тоже (cat /usr/bin/help), но хотелось обеспечить более комфортную работу с текстами — отредактировать какой- нибудь файл, вести записи, мало ли. Комплектный /usr/bin/ee русский текст в Unicode файле показывает как . Причём jupp представляет собой переработанную версию редактора joe, но если оригинальный joe из пакетов тянет за собой 4. Мб зависимостей, то jupp размером с vi. Причём все проблемы у редакторов ee и puff лишь с отображением русских букв, при вводе «вслепую» всё сохраняется корректно. В итоге проблема выбора между комплектным vi и jupp из пакетов была переложена на плечи потенциальных пользователей, которые проголосовали за jupp — понравилась подсветка синтаксиса и сравнительная дружелюбность редактора. Устанавливаем misc/clex и editors/jupp. Какие- то пользовательские пакеты можно положить в каталог $. Для возможности монтирования устройств добавляем в группу operator. В качестве шелла используем csh, опция WITHOUT. Создадим файл конфигурации для файлового менеджера clex. EOF > ~/. config/clex/config. CLEX configuration file. CMD. Создадим файл конфигурации для vi. EOF > ~/. nexrc. Создадим файл . logout, он потребуется позже. Данный скрипт необходимо запустить до чистки системы, пока в $. Все файлы лежат в каталоге $. Можно /tmp отдельно не монтировать, оставить в корневом разделе, но тогда при создании флешки необходимо выделить больше свободного места для него внутри образа системы. При обновлении системы /tmp используется freebsd- update для извлечения файлов, самый большой из них в нашей конфигурации это GENERIC ядро, около 1. Мб, поэтому сильно маленьким этот раздел лучше не делать. Раздел /dev/gpt/ca предназначен для скриптов и файлов конфигурации нашего ЦС, /dev/gpt/keys. FAT раздел для обмена с внешними системами. Его мы монтируем с поддержкой длинных имён, но без поддержки их перекодировки — принято принципиальное решение об использовании лишь ASCII символов в именах файлов на этом разделе. Поэтому и систему, и ядро компилируем без поддержки iconv. Эти разделы мы автоматически при старте не монтируем (параметр noauto), так как при каких- то неполадках (трижды неправильно введённый пароль для geli, например, что не позволит создать раздел keys. У оператора будет шок и моральная травма. Поэтому эти разделы будем монтировать в userspace пользователя 'ca', для чего при создании включим его в группу operator и настройками devfs и sysctl (ниже) предоставим необходимые полномочия. Обратите внимание — в fstab раздел с ключами для ЦС монтируется в режиме только для чтения, поэтому перед созданием ключей надо не забыть перемонтировать его для записи (mount - u - o rw /dev/gpt/keys. Добавляем автоматическое монтирование разделов ЦС. Применимо только для флешки. CD будут выскакивать ошибки об отсутствующих разделах. Поэтому, если мы не хотим, чтобы его владельцем оказался root: ca, необходимо создать его из- под пользователя ca, хотя бы с помощью скрипта conf/ca. Теперь мы предоставим возможность нашему пользователю 'ca' возможность монтировать сторонние флешки и разделы на нашей флешке (с настройками ЦС, ключами, разделом обмена). Первый — с автологином пользователя 'ca' (см. Интернет не предусмотрен by design, поэтому часики будем при необходимости устанавливать вручную. Благо, для данного ЦС точность плюс- минус минута абсолютно не критична. Проверьте время ==. Берём файл etc/defaults/rc. Free. BSD: releng/1.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2016
Categories |