Возможно вы искали: 'Neon Genesis Evangelio...'

May 15 2025 18:35:16
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Перевод MiniBSD How-To на русский язык (flash bsd freebsd faq route install)

Перевод MiniBSD How-To на русский язык (flash bsd freebsd faq route install)

Ключевые слова: flash, bsd, freebsd, faq, route, install, (найти похожие документы)

From: Ilia Kuliev <toor99@hotmail.com>
Date: Mon, 28 Feb 2004 14:31:37 +0000 (UTC)
Subject: Перевод MiniBSD How-To на русский язык

Оригинал: http://www.citytel.ru/minibsd/minibsd.html

Предлагается вольный перевод "MiniBSD How-to by Manuel Kasper". Может
оказаться полезен тем, кто использует FreeBSD в качестве недорогой
замены Cisco и подобного оборудования. Может быть полезен также
тем, кому нужна урезанная инсталляция FreeBSD, а PicoBSD чем-либо не
устраивает.

1. Вводная часть.

Часто бывает так, что нужно установить маршрутизатор, сервер
доступа, принтсервер, или что-то в этом роде, на старой и слабой
машинке с маленьким диском. Или бывает так, что хочется избавиться от
жёсткого диска вовсе, как от потенциально слабого звена, и
использовать вместо него что-нибудь более надёжное. Мануэль Каспер
(Manuel Kasper) написал подробное пошаговое руководство, как
установить FreeBSD на Flash с интерфейсом IDE, за что большой ему
респект. Разумеется, это же руководство можно использовать и при
установке системы на маленький жёсткий диск. В зависимости от набора
компонентов, инсталляция занимает около 22 мегабайт, а если не
устанавливать Perl - около 12 мегабайт.

Большим преимуществом (и одновременно небольшим недостатком)
является то, что корневая файловая система монтируется в режиме
read-only, а разделы /var и /tmp размещаются в оперативной памяти.
Автором это было сделано для того, чтобы обойти ограничение на
количество перезаписей флэшки (миллион перезаписываний - это конечно
много, но недостаточно для маршрутизатора, который проработает, быть
может, не один год). Преимущество заключается, разумеется, в том, что
неожиданное отключение питания не приведёт к разрушению или
повреждению файловой системы. Недостаток же в том, что не сохраняются
данные в /var (логи и т.п.). Впрочем, если инсталляция производится не
на флэшку, а на жёсткий диск, /var и /tmp можно разместить и на диске,
смонтировав их read-write.

Авторский оригинал руководства, на английском и португальском
языках, периодически обновляемый, находится здесь (http://www.neon1.net/misc/minibsd.html)


2. Установка.

Прежде всего, вам понадобится уже установленная FreeBSD.
Достаточно минимальной инсталляции, но в неё обязательно должны быть
включены исходные тексты ядра. Это руководство основано на FreeBSD
4.8, но оно, по идее, должно быть применимо и к более ранним версиям.
К FreeBSD 5.0 она также может быть применима, но есть и некоторые
отличия, отмеченные особо. Что же касается FreeBSD 5.1, то в ней
используются rc-скрипты нового поколения, disklabel заменён на
bsdlabel, и её синтаксис слегка изменён. Словом, если вы хотите
использовать FreeBSD 5.1, с некоторыми вещами вам придётся разбираться
самостоятельно.


2.1 Chroot jail

В процессе подготовки бинарников для MiniBSD, некоторые
бинарники вашей базовой системы могут быть перезаписаны, так как для
простоты мы не будем устанавливать их прямо в рабочий каталог MiniBSD,
а вместо этого скопируем их в базовую систему и перенесём в MiniBSD
позднее. Если вы не хотите менять бинарники базовой системы, у вас
есть выбор: использовать второй жёсткий диск, или использовать jail.
Первый вариант проще, но если у вас нету под рукой ещё одного жёсткого
диска, вам придётся использовать "песочницу", chroot jail.

Создать "песочницу" достаточно просто - вам нужно всего лишь
создать каталог на разделе, имеющем достаточно свободного места
(скажем, 800 мегабайт или около того), например, /usr/jail. После
этого вставьте ваш инсталляционный диск с FreeBSD, запустите
/stand/sysinstall, начните Custom Installation, и укажите в опциях
"Install Root" на ваш свежесозданный каталог /usr/jai. После окончания
инсталляции, скажите


chroot /usr/jail


и вы увидите, что корень вашей файловой системы отныне стал /usr/jail.
Вы получили полностью изолированную от базовой системы инсталляцию, и
можете делать с ней всё, что угодно, не опасаясь повредить базовую
систему. Не забывайте, что когда вы покидаете рабочий шелл, вы
выходите из "песочницы".

Для того, чтобы нечаянно не заблудиться, рекомендуется изменить
приглашение шелла так, чтобы оно явно показывало, находитесь ли вы в
"песочнице", или в базовой системе. Для этого измените значение строки
"set prompt" в /usr/jail/root/.cshrc так:

set prompt = "MiniBSD %~ %# "

Кроме этого, вы также можете скопировать /etc/localtime в
/usr/jail/etc/localtime для того, чтобы сохранить временные метки
ваших файлов.

Все дальнейшие манипуляции описываются безотносительно, работаете ли
вы в базовой системе, или в "песочнице".

3. Создание дерева каталогов.

Мы собираемся поместить всю инсталляцию MiniBSD в один каталог,
так, чтобы в дальнейшем можно было просто скопировать содержимое
каталога на флэшку. Условимся, что это каталог /usr/minibsd,
единственное требование - около 100 мегабайт свободного места на
разделе, в котором создаётся каталог. После этого необходимо создать в
этом каталоге стандартные подкаталоги (/bin, /sbin и т.п.). Можно
использовать утилиту mtree, или сделать это вручную, как вам удобнее.
Структура подкаталогов должна быть такой:


.
|-- bin
|-- boot
| `-- defaults
|-- dev
|-- etc
| |-- defaults
| |-- mtree
| |-- namedb
| |-- ppp
| |-- ssh
| `-- ssl
|-- mnt
|-- modules
|-- proc
|-- root
|-- sbin
|-- tmp -> /var/tmp
|-- usr
| |-- bin
| |-- lib

| `-- aout
| |-- libexec
| |-- local
| |-- sbin
| `-- share
| `-- misc
`-- var


Права доступа должны быть 0755 (root.wheel) для всех каталогов, кроме
/proc (у него должны быть 0555). Можно также поставить 0700 на /root ,
но это дело вкуса. Не забудьте поставить симлинк /tmp на /var/tmp -
это важно, так как корневая файловая система будет монтироваться в
режиме read-only, а /var будет размещён в памяти (memory file system).


3. Бинарники - статика или динамика?

В обычной инсталляции FreeBSD бинарники в /bin и /sbin
слинкованы статически. Это сделано специально, ввиду их особой
важности для системы, чтобы они не зависели от системных библиотек.
Если слинковать их динамически, можно сэкономить 6-7 мегабайт
пространства на флэшке. Поскольку мы собираемся держать всю
инсталляцию на одном разделе, то все эти бинарники будут нормально
работать даже в однопользовательском режиме. Единственным недостатком
является то, что если библиотеки каким-то образом окажутся повреждены,
восстановить работоспособность системы будет непросто. Решайте сами,
что важнее - надёжность, или свободное место на флэшке. Если вы решили
пересобрать бинарники и слинковать их динамически, добавьте в
/etc/make.conf строку:

NOSHARED=no

Затем перейдите в каталог /usr/src/bin и наберите make clean && make
&& make install. Повторите это же в /usr/src/sbin. И не забудьте - для
этого у вас в "песочнице" или на дополнительном диске должны быть
установлены исходные тексты системы.

И вот ещё что. Если вы решили не использовать ни "песочницу", ни
отдельный диск, а вместо этого работаете с базовой системой,
убедитесь, что ваш /usr находится на корневом, а не на отдельном
разделе. Если /usr находится на отдельном разделе, не пытайтесь
пересобрать бинарники динамически, в противном случае, после
перезагрузки вы получите полностью неработоспособную систему. Это
произойдёт потому, что вы перезапишете /bin и /sbin вашей базовой
системы динамически слинкованными бинарниками, и в результате, в
начале загрузки не сможет запуститься динамически слинкованный
/sbin/init (так как нужные ему библиотеки находятся на другом разделе,
который в момент загрузки ещё не смонтирован). В принципе, можно перед
пересборкой сохранить где-нибудь копию /sbin/init, и после пересборки
скопировать старый бинарник обратно. Но лучше, всё-таки, не
экспериментировать.

Если вы хотите сэкономить ещё ~400 килобайт, вы можете точно так
же пересобрать /usr/src/usr.bin, так как некоторые тамошние бинарники
(например, gzip, tar и bzip2) также по умолчанию слинкованы
статически.


4. Копирование бинарников.

Теперь самое интересное. Нужно скопировать содержимое /bin,
/sbin, /usr/bin, /usr/sbin, /usr/libexec в соответствующие каталоги в
/usr/minibsd. Для избавления от ручной работы, автором был написан
скрипт на Перле, который копирует файлы в соответствии со списком.
Кроме этого, он отслеживает хардлинки (например, /bin/ln и /bin/link -
один и тот же файл, но если вы будете копировать их с помощью команды
cp, они будут скопированы как два отдельных файла, что конечно
приведёт к ненужному расходованию пространства на флэшке).

Скрипт находится здесь (http://www.neon1.net/misc/minibsd/mkmini.pl).

Список файлов находится здесь (http://www.neon1.net/misc/minibsd/minibsd.files).

Если у вас FreeBSD 5.0, используйте этот список файлов
(http://www.neon1.net/misc/minibsd/minibsd5.files).

Перед исполнением скрипта убедитесь, что ваши каталоги
/usr/minibsd/bin, /usr/minibsd/usr/bin и т.п. пусты, иначе скрипт не
сможет создать линки. Скрипт запускается так: perl mkmini.pl
minibsd.files / /usr/minibsd

Список файлов представляет собой некий компромисс между объёмом
занимаемого пространства и функциональностью. В частности, выброшены
Perl и Sendmail. Если вам это действительно нужно, или если объём для
вас не столь важен, вы можете отредактировать список файлов
самостоятельно.

Если хотите, можно сэкономить ещё примерно 200 килобайт, скопировав
урезанный термкап от PicoBSD взамен стандартного
/usr/minibsd/usr/share/misc/termcap. Вы можете найти его здесь:
/usr/src/release/picobsd/mfs_tree/etc/termcap . В стандартном термкапе
описано великое множество терминалов, большинство из которых вы едва
ли когда-нибудь будете использовать. Также, взамен файла
/usr/minibsd/etc/services можно взять его сокращённый вариант:
/usr/src/release/picobsd/mfs_tree/etc/services , и сэкономить ещё
примерно 70 килобайт.


5. Пересборка ядра системы.

С целью экономии пространства на флэшке и добавления
отсутствующих опций (IPSEC, поддержка оборудования и т.п.), следует
пересобрать ядро системы. Пересборка делается как обычно: перейдите в
/sys/i386/conf, создайте копию файла GENERIC (например. MYKERNEL) и
отредактируйте её, включив нужные вам опции и удалив ненужные. В
частности, имеет смысл поставить опцию NO_SWAPPING, поскольку у нас не
будет раздела для своппинга. Обязательно нужно поставить опцию MFS
(Memory file system). Затем:

config MYKERNEL

cd /sys/compile/MYKERNEL (для FreeBSD 5.0 перейдите в
/sys/i386/compile/MYKERNEL )

make depend && make

После окончания компиляции вы можете также сжать получившееся ядро,
чтобы сэкономить пространство на флэшке:

gzip -9 kernel

и затем скопируйте ядро на место.

cp kernel.gz /usr/minibsd

Для FreeBSD 5.0 сделайте так:

mkdir -p /usr/minibsd/boot/kernel

cp kernel.gz /usr/minibsd/boot/kernel

Загрузчик сам найдёт запакованный образ ядра, и автоматически
распакует его прежде, чем загружать в память. В принципе, можно
использовать kgzip вместо gzip, что даст дополнительные ~300 килобайт
экономии, но при этом из ядра будут выброшены символы, в результате
чего перестанут нормально работать такие утилиты как top и ps.

Если вым нужны ядерные модули, например модули netgraph, вы можете
просто скопировать их в /usr/minibsd/modules (для FreeBSD 5.0 -
/usr/minibsd/boot/modules) из
/sys/compile/MYKERNEL/modules/usr/src/sys/modules/. Не забывайте о
зависимостях между модулями - к примеру, для поддержки PPPoE вам
понадобится не один, а четыре модуля: netgraph.ko, ng_ether.ko,
ng_pppoe.ko и ng_socket.ko.

6. Копирование библиотек.

Библиотеки из /usr/lib ещё не скопированы, так как их не было в
списке mibibsd.files. Их не было в списке потому, что набор библиотек,
подлежащий копированию, зависит от бинарников, которые вы установили.
Для определения зависимостей вы можете использовать скрипт
(http://www.neon1.net/misc/minibsd/mklibs.pl) на Перле, который обходит
ваше дерево каталогов и при помощи системной утилиты ldd генерирует
список файлов с соответствующими библиотеками.:

Запускается так: perl mklibs.pl /usr/minibsd > minibsd.libs

Рекомендуется просмотреть получившийся список, и если он выглядит
правдоподобно, используйте его для копирования библиотек посредством
скрипта mkmini.pl:

perl mkmini.pl minibsd.libs / /usr/minibsd

Cкрипт скопирует все нужные библиотеки, но не скопирует модули PAM. Их
вам придётся скопировать вручную:

cp -p /usr/lib/pam* /usr/minibsd/usr/lib

Если вам не нужны все PAM-модули, и у вас FreeBSD 4.x, скопируйте по
крайней мере эти четыре модуля: pam_deny, pam_permit, pam_unix,
pam_login_access и pam_nologin. Для FreeBSD 5.x может потребоваться
больше модулей, поэтому на всякий случай лучше скопируйте их все.

И в завершение, чтобы избежать предупреждающих сообщений, создайте
каталог /usr/minibsd/usr/lib/aout.


7. Каталог /etc.

Разумеется, вам нужно скопировать также конфигурационные файлы
для вашей MiniBSD. Самое простое - скопировать /etc из вашей базовой
системы и удалить всё ненужное. В качестве примера см. дерево файлов и
подкаталогов ниже (файлы, которые вам, вероятно, придётся
редактировать, помечены красным цветом):

/usr/minibsd/etc

|-- auth.conf
|-- crontab
|-- defaults
| |-- make.conf
| `-- rc.conf
|-- dhclient.conf
|-- disktab
|-- fbtab
|-- fstab
|-- ftpusers
|-- gettytab
|-- group
|-- host.conf
|-- hosts
|-- hosts.allow
|-- hosts.equiv
|-- hosts.lpd
|-- inetd.conf
|-- localtime
|-- login.access
|-- login.conf
|-- master.passwd
|-- motd
|-- mtree
| |-- BSD.include.dist
| |-- BSD.local.dist
| |-- BSD.root.dist
| |-- BSD.sendmail.dist
| |-- BSD.usr.dist
| |-- BSD.var.dist
| |-- BSD.x11-4.dist
| `-- BSD.x11.dist
|-- namedb
| |-- PROTO.localhost.rev
| |-- make-localhost
| |-- named.conf
| `-- named.root
|-- networks
|-- newsyslog.conf
|-- objformat
|-- pam.conf
|-- passwd
|-- ppp
| `-- ppp.conf
|-- profile
|-- protocols
|-- pwd.db
|-- rc
|-- rc.conf
|-- rc.diskless1
|-- rc.diskless2
|-- rc.firewall
|-- rc.i386
|-- rc.local
|-- rc.network
|-- rc.serial
|-- rc.shutdown
|-- rc.sysctl
|-- resolv.conf
|-- security
|-- services
|-- shells
|-- skeykeys
|-- spwd.db
|-- ssh
| |-- primes
| |-- ssh_config
| |-- ssh_host_dsa_key
| |-- ssh_host_dsa_key.pub
| |-- ssh_host_key
| |-- ssh_host_key.pub
| `-- sshd_config
|-- ssl
| `-- openssl.cnf
|-- sysctl.conf
|-- syslog.conf
|-- termcap -> /usr/share/misc/termcap
|-- ttys
`-- wall_cmos_clock


Здесь нету /etc/periodic, поэтому нужно отредактировать также
/etc/crontab и удалить из него вызов скриптов из /etc/periodic. После
этого отредактируйте /etc/fstab, и удалите из него монтирования,
которых у вас не будет. В результате должно получиться нечто вроде:


/dev/ad0a / ufs ro 1 1
proc /proc procfs rw 0 0


Обратите внимание, что корневая файловая система монтируется в режиме
read-only (ro)! Это необходимо, поскольку флэшки имеют ограниченное
количество циклов записи на них.


Далее отредактируйте /etc/rc.conf. Например, мой rc.conf выглядит так:


hostname="fb.neon1.net"
ifconfig_sis0="192.168.0.200 netmask 255.255.255.0"
kern_securelevel_enable="NO"
nfs_reserved_port_only="YES"
sendmail_enable="NONE"
sshd_enable="YES"
usbd_enable="NO"
inetd_enable="NO"
portmap_enable="NO"
diskless_mount="/etc/rc.diskless2"
update_motd="NO"
varsize=8192

"diskless_mount" указывает загрузочному скрипту /etc/rc, что нужно
запустить скрипт rc.diskless2, который служит, в частности, для
монтирования Memory file system для /var и /dev. Переменная varsize
указывает, что объём этой системы - 4 мегабайта (8192 блока), вы
можете изменить это значение в ту или другую сторону.

Для FreeBSD 5.0 надо также добавить rc_ng="NO", чтобы система
использовала старый формат конфигурационных скриптов rc взамен
новомодного /etc/rc.d. Особо надо отметить, что для FreeBSD 5.1 это не
работает. Вам в этом случае нужно добавить в miniBSD файл
/sbin/rcorder и отредактировать /etc/rc.d/diskless, удалив оттуда
проверки смонтированных по NFS разделов.

Не забудьте отредактировать /etc/newsyslog.conf, настроив его на более
частую ротацию логов и отказ от их архивирования. Возможно, вам вообще
не понадобится ведение большинства логов. так как их содержимое всё
равно будет теряться после каждой перезагрузки.

В случае, если вы планируете использовать получать IP-адрес от сервера
DHCP (посредством dhcpclient), не забывайте, что dhcpclient пытается
записать информацию о DNS, полученную от сервера, в файл
/etc/resolv.conf. Разумеется, ему это не удастся, так как корневая
файловая система монтируется в режиме read-only. Решением может быть
использование симлинка с /etc/resolv.conf на /tmp/resolv.conf.

Не забудьте, что если вы делали какие-либо модификации файла
master.passwd, вам нужно перегенерировать базу данных:

pwd_mkdb -p -d /usr/minibsd/etc /usr/minibsd/etc/master.passwd

Если вы собираетесь использовать MiniBSD на компьютере с малым объёмом
оперативной памяти (напр. 8 мегабайт), есть смысл уменьшить объём MFS,
отводимой для /dev. Для этого отредактируйте файл /etc/rc.diskless2.
Найдите в нём строчку

mount_md 4096 /dev 3 512

и замените её на

mount_md 1024 /dev 3 512

Это даёт системе указание резервировать 512 килобайт под /dev. Данное
значение возможно уменьшить ещё (посмотрите, что показывает df и
исходите из этого).

Для того, чтобы убрать дефолтовую 10-секундную задержку при загрузке,
отредактируйте /usr/minibsd/boot/loader.rc и добавьте туда строчку

autoboot 0

На всякий случай рекомендуется настроить консоль RS-232, если конечно
на компьютере есть последовательный порт. Для этого отредактируйте
/usr/minibsd/etc/ttys изменив строчку

ttyd0 "/usr/libexec/getty std.9600" dialup off secure

на

ttyd0 "/usr/libexec/getty std.9600" vt100 on secure

8. Каталог /dev.

Если у вас FreeBSD 5.0, эту часть можете не читать (благодаря
devfs).

Для загрузки и работы FreeBSD нужны специальные файлы в каталоге
/dev. Файловая система, на которой находится этот каталог, должна быть
смонтирована в режиме read-write, иначе кое-что перестанет работать
(например, getty). Поэтому rc.diskless2 монтирует для нее файловую
систему в памяти (MFS). Ядро ожидает, что /dev находится на корневой
партиции, поэтому внутри нашей minibsd мы должны построить полный
набор файлов в /dev. Для этого:

cp /dev/MAKEDEV /usr/minibsd/dev
cd /usr/minibsd/dev
sh MAKEDEV all

Обязательно убедитесь в том, что у вас в /dev есть файл для
устройства, с которого будет производиться загрузка MiniBSD.
Используйте для этого команду sh MAKEDEV [name]. Чтобы сэкономить
немного места в оперативной памяти, вы можете удалить файлы устройств,
которых не будет в вашей системе (например, SCSI-устройства, и т.п.),
после чего можете подкорректировать rc.diskless2, как было показано
выше.

rc.diskless2 в процессе работы ищет файл /conf/dev.cpio.gz со
всеми файлами устройств, и если не находит, то делает "find" файлов
устройств в корневом разделе и генерирует cpio-файл в /tmp. Это может
занять много времени, поэтому мы создадим такой файл заранее и положим
его в нужное место:

cd /usr/minibsd
mkdir conf
find -x dev | cpio --create -H newc | gzip > conf/dev.cpio.gz

Готово. Теперь у нас есть две копии наших файлов устройств - одна в
/dev, и вторая в dev.cpio.gz. В процессе загрузки системы, ядро найдет
файлы устройств в /dev, затем rc.diskless2 смонтирует MFS и распакует
туда файлы устройств из dev.cpio.gz, таким образом получая /dev
доступное и для записи и для чтения.

9. Паковка.

Поскольку cp не умеет обращаться с хардлинками, мы запакуем нашу
инсталляцию MiniBSD в .tar:

cd /usr/minibsd
tar cfvz /usr/minibsd-46-1.tgz *

(название файла, разумеется, может быть любым). Теперь в
/usr/minibsd-46-1.tgz у нас лежит вся наша инсталляция, готовая к
размещению на загрузочном устройстве (флэшке, например).

10. Генерация образа для флэшки.

В принципе, можно было бы просто представить себе флэшку в виде
обычного IDE-диска, разметить ее с помощью disklabel, отформатировать
с помощью newfs, и развернуть на неё наш .tar-архив. Но мне
представляется более быстрым и удобным создать образ диска и перелить
его на флэшку при помощи dd. Кроме того, это продлит срок жизни
флэшки, так как каждый сектор при этом записывается только один раз.

Для получения виртуального диска который мы могли бы разметить,
будем использовать vnconfig (в ядре вашей базовой системы должно
присутствовать псевдоустройство vn). Необходимо знать объём вашей
флэшки в 512-байтовых секторах, для чего вам нужно подключить флэшку и
использовать команду:

disklabel -rwn ad[n] auto | grep sectors/unit

[n] необходимо, разумеется, заменить на номер файла устройства,
соответствующего флэшке.

Подсказка: если disklabel сообщает нечто вроде "No space left on
device", попробуйте очистить флэшку:

dd if=/dev/zero of=/dev/rad[n] bs=1k count=20

Теперь создадим образ диска такого же объёма, заполнив его нулями:

dd if=/dev/zero of=/usr/minibsd-disk.bin bs=512 count=[количество
секторов на флэшке]

...и подключим его как виртуальный диск, что даст нам возможность
разметить и отформатировать его:

vnconfig -s labels -c vn0 /usr/minibsd-disk.bin

(для FreeBSD 5.0 так: mdconfig -a -t vnode -u 0 -f
/usr/minibsd-disk.bin)

и далее:

disklabel -Brw vn0 auto

disklabel -e vn0

В результате выполнения последней команды, вы попадаете в редактор,
установленный по умолчанию. Найдите в редактируемом файле строчку,
начинающуюся с "c:" и сдублируйте её, заменив "c" на "a", и поставив в
поле fstype значение "4.2BSD". Это будет ваш корневой раздел,
занимающий полный слайс. Если вам нужен ещё один раздел (ну например,
для конфигурационных файлов), уменьшите размер раздела "a" на значение
размера второго раздела, и введите вторую строчку, начинающуюся с "e"
и нужным значением в поле размера. После окончания редактирования, не
забудьте сохранить изменения.

Теперь отформатируем и подмонтируем наш новый раздел:

newfs -b 8192 -f 1024 -U /dev/vn0a

mount /dev/vn0a /mnt

(Если у вас есть второй раздел, не забудьте отформатировать и его.)

Теперь наш виртуальный диск смонтирован на /mnt, и мы можем перенести
на него содержимое нашего инсталляционного каталога:

cd /mnt
tar xfvzP /usr/minibsd-46-1.tgz
...и размонтируем виртуальный диск:
cd /
umount /mnt
vnconfig -u vn0
(для FreeBSD 5.0 последняя команда должна быть такой: mdconfig -d -u 0.

11. Копирование данных на флэшку.

Поскольку наша флэшка для системы представляется как IDE-диск,
ей соответствует в системе файл устройства /dev/ad[n]. Если его нет,
нужно создать его, перейдя в каталог /dev и набрав команду sh MAKEDEV
ad[n].

Теперь мы можем перенести нашу MiniBSD на флэшку:

dd if=/usr/minibsd-disk.bin of=/dev/rad[n] bs=8k

Обратите особое внимание на то, что вы правильно указали значение [n],
иначе вы можете стереть информацию с вашего жёсткого диска!

Если хотите увидеть, как движется копирование, нажмите Ctrl-T.

12. Загрузка системы.

Остановите вашу базовую систему, отключите питание, извлеките
флэшку и подключите её к системе, которую вы собираетесь использовать
с ней. Если вы всё сделали правильно, после включения питания система
загрузится, и вы сможете закончить её конфигурирование (присвоение
сетевых адресов, настройку файрволла, и т.п.). Если система не
загружается, посмотрите на сообщения об ошибках. Скорее всего, вы
просто пропустили или неправильно выполнили какой-то из предыдущих
шагов. Если в процессе загрузки вы видите предупреждающие сообщения
вроде "Warning: Block size restricts cylinders per group to xx",
можете спокойно игнорировать их.

В процессе окончательной настройки вам придётся временно
перемонтировать файловую систему в режиме read-write. Вы можете
сделать это командой:

mount -uw -o noatime /

После окончания работы, не забудьте заново смонтировать систему
read-only:

mount -ur /

Опция "noatime" означает, что система не должна обновлять значение
атрибута "Last access time" при обращении к файлам. Это не полезно для
флэшки, а сам данный атрибут используется крайне редко.

ПРЕДУПРЕЖДЕНИЕ. Существует мнение, будто бы перемонтирование системы с
read-write на read-only опасно, и с течением времени может привести к
разрушению данных на диске. Я не знаю, правда это или нет, но не
исключаю, что это может быть правдой. Поэтому рекомендуется после
того, как вы перемонтировали файловую систему в редим read-write, и
закончили вносить свои изменения, произвести перезагрузку системы
(shutdown -r now).

Рекомендуется также произвести перегенерацию ключей SSH, иначе на
вашей MiniBSD останется тот же набор ключей, что и на базовой системе.
А это нехорошо.

ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key
ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key

-------

Приложение A. Установка портов.

Вполне возможно, что вы захотите поставить в вашу MiniBSD что-нибудь
из портов. Это очень просто сделать в базовой системе, указав префикс
PREFIX=/usr/minibsd/usr/local в процессе инсталляции. Если же вы
хотите проделать это с особой тщательностью, установите порт в
базовую систему, а затем определите, какие именно
бинарники/библиотеки/стартовые скрипты и т.п. нужны вам для данного
порта, и перенесите их в соответствующее место в /usr/minibsd.

Приложение B. Установка Perl.

Перл займёт дополнительно около 10 мегабайт на вашей флэшке. Для
установки Перла, добавьте строчку

usr/bin/perl:usr/bin/perl5:usr/bin/perl5.00503

в ваш список файлов minibsd.files. Скопируйте также /usr/libdata/perl
(каталог /usr/libdata/perl/pod можно не копировать). И наконец.
убедитесь, что права и разрешения на скопированные файлы не изменились
(а ещё проще копировать их с помощью tar -P, при этом права и
разрешения сохраняются неизменными).

Приложение C. Сохранение данных между перезагрузками.

Вам может это понадобиться, например, если на вашей MiniBSD работает
сервер DHCP (dhcpd), и вам необходимо сохранить данные о выданных
IP-адресах между перезагрузками. Для этого можно, например, выделить
небольшой раздел на флэшке, и сохранять на нём содержимое /var/db
перед шатдауном. Добавьте эти строчки в ваш скрипт rc.shutdown:

# Save databases

echo -n 'Saving databases in /var:'
mount -u -o rw /conf
rm -Rf /conf/varsave/db
cp -Rp /var/db /conf/varsave
mount -u -o ro /conf
echo '.'

В этом примере предполагается, что ваш дополнительный раздел
смонтирован на /conf, и на нём есть каталог /conf/varsave.

Для восстановления базы данных после перезагрузки, добавьте в скрипт
rc.local следующее:

# Load saved databases

cp -Rp /conf/varsave/db /var

Не забудьте, что rc.shutdown вызывается только если для выключения
машины использовался shutdown(8), а не reboot(8).
837 Прочтений •  [Перевод MiniBSD How-To на русский язык (flash bsd freebsd faq route install)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Перевод MiniBSD How-To на русский я... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка