The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Руководства по FreeBSD на русском" / Оглавление документа

4 Создание файловой системы с нуля

Так как совместимые с ATA компактные флэш-карты распознаются во FreeBSD как обычные жесткие диски IDE, как это происходит с продуктом M-Systems Disk-On-Chip (когда вы запускаете ядро с встроенным драйвером fla), то теоретически вы можете установить FreeBSD по сети при помощи дискет kern и mfsroot или с компакт-диска. Кроме того, что вам не нужно записывать какой бы то ни было начальный загрузчик на устройство M-Systems, никаких дополнительных инструкций не требуется.

Однако даже маленькая установка FreeBSD при помощи обычных процедур установки может привести к созданию системы размером, превышающим 200 мегабайт. Так как большинство людей используют устройства флэш-памяти меньшего размера (128 мегабайт считается весьма большим - 32 или даже 16 мегабайт используются гораздо чаще), то установка обычным образом не подходит--просто на диске нет места даже для самой минимальной установки.

Самым простым способом обойти это ограничение на объем является установка FreeBSD обычным образом на обычный жесткий диск. После окончания установки, обрежьте операционную систему до размера, который помещается на ваш флэш-носитель, а затем полностью заархивируйте файловую систему. Следующие шаги поведут вас через процесс подготовки части флэш-памяти для вашей заархивированной файловой системы. Запомните, что из-за того, что обычная установка не выполнялась, такие операции, как разбиение на разделы, разметка, создание файловой системы и так далее должны быть выполнены вручную. Кроме дискет kern и mfsroot вам также нужно воспользоваться дискетой fixit. Если вы используете M-Systems Disk-On-Chip, то ядро с дискеты kern должно иметь вкомпилированный параметр fla, описываемый в Section 2. Пожалуйста, обратитесь к Section 5 для получения указаний по созданию нового ядра для kern.flp.

  1. Разбиение вашего флэш-носителя на разделы

    После загрузки при помощи дискет kern и mfsroot, выберите пункт custom из меню установки. Из следующего пункта меню выберите partition. В меню работы с разделами вы должны удалить все существующие разделы при помощи клавиши d. После удаления всех имеющихся разделов создайте раздел при помощи клавиши c и согласитесь с предлагаемым по умолчанию размером раздела. Когда вы будете опрошены на предмет типа раздела, удостоверьтесь, что значение типа равно 165. Теперь запишите эту таблицу разделов на диск, нажав клавишу w (на этом экране эта опция скрыта). Находясь в меню выбора менеджера загрузки, обратите внимание на выбор None, если вы используете M-Systems Disk-On-Chip. Если вы используете компактную флэш-карту, совместимую с ATA, вы должны выбрать FreeBSD Boot Manager. Теперь нажмите клавишу q для выхода из меню работы с разделами. Должно быть выдано еще раз меню для выбора менеджера загрузки - повторите то, что вы выбирали ранее.

  2. Создание файловых систем на вашем устройстве флэш-памяти

    Выйдите из меню установки custom, и из главного меню установки выберите пункт fixit. После входа в режим работы fixit, введите следующие команды:

    Совместимые с ATA Disk-On-Chip
    # mknod /dev/ad0c c 116 0
    # mknod /dev/ad0c c 116 2             
    # disklabel -e /dev/ad0c
    


    # mknod /dev/fla0c c 102 2
    # mknod /dev/fla0c c 102 2
    # disklabel -e /dev/fla0c
    


    В этот момент вы войдете в редактор vi из-под команды disklabel. Если вы используете Disk-On-Chip, то первым шагом будет изменение значения типа около начала файла с ESDI на DOC2K. Затем, вне зависимости от того, используете ли вы Disk-On-Chip или совместимый с ATA компактный флэш-носитель, вам нужно добавить строку a: в конце файла. Эта строка a: должна выглядеть примерно так:

    a:      123456  0       4.2BSD  0       0
           
    

    Здесь 123456 является числом, в точности совпадающим с тем, что характеризует размер имеющейся записи для c:. В общем, вы копируете существующую строку для c: для строки a:, не забывая определить fstype как 4.2BSD. Сохраните файл и завершите редактирование.

    Совместимые с ATA Disk-On-Chip
    # disklabel -B -r /dev/ad0c
    # newfs /dev/ad0a
    


    # disklabel -B -r /dev/fla0c
    # newfs /dev/fla0a
    


  3. Размещение вашей файловой системы на флэш-носителе

    Смонтируйте только что подготовленный флэш-носитель:

    Совместимые с ATA Disk-On-Chip
    # mount /dev/ad0a /flash
    


    # mount /dev/fla0 /flash
    


    Подключите эту машину к сети, чтобы можно было перенести наш tar-файл и распаковать его в файловую систему на флэш-носителе. Вот пример того, как это можно сделать:

    # ifconfig xl0 192.168.0.10 netmask 255.255.255.0
    # route add default 192.168.0.1
           
    

    Теперь, когда машина находится в сети, перепишите ваш tar-файл. Здесь вы можете столкнуться с некоторой проблемой - если объем вашей флэш-памяти равен, к примеру, 128 мегабайтам, а ваш tar-файл превышает 64 мегабайта, то вы не можете одновременно разместить tar-файл на флэш-носителе и распаковать его - вам не хватит места. Одним из решений этой проблемы, если вы используете ftp, является распаковка файла во время его передачи по ftp. Если вы передаете файл именно так, то вы никогда не получите на диске одновременно архивный файл и его содержимое:

    ftp> get tarfile.tar "| tar xvf -"
           
    

    Если ваш файл обработан утилитой gzip, вы также можете этого добиться:

    ftp> get tarfile.tar "| zcat | tar xvf -"
           
    

    После того, как вы получили содержимое вашей заархивированной файловой системы на файловой системе флэш-памяти, вы можете размонтировать флэш-память и выполнить перезагрузку:

    # cd /
    # umount /flash
    # exit
           
    

    Полагая, что вы правильно настроили вашу файловую систему при ее построении на обычном диске (с вашей файловой системой, смонтированной в режиме доступа только для чтения и необходимыми параметрами, присутствующими в ядре) вы должны успешно загрузить вашу встраиваемую систему на основе FreeBSD.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите <frdp@FreeBSD.org.ua>.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру