Прочие файловые системы FreeBSD


Онлайн без отправки смс невероятные: gaminatorsslot.ru, игровой автомат.

Допустим, что вам требуется получить файл размером 1 Гбайт. Не забывайте, что 1k обозначает один килобайт. Один мегабайт — это тысяча килобайт, а один гигабайт — одна тысяча мегабайт. Если использовать блоки размером 1 байт, а количество перемещений задать равным одному 1g, вашей системе придется совершить 1 073 741 824 рейсов, чтобы переместить песок. Каждый рейс будет очень легким, но их будет слишком много! С другой стороны, если выбрать размер блока равным 1g, а счетчик равным 1, тогда системе придется переместить всю кучу за один рейс. Я думаю, ее это не обрадует. Впрочем, как и вас. Вообще говоря, при размере блока 1m и небольшом числе рейсов конечная цель будет достигнута достаточно быстро, причем без особого перенапряжения системы. Если использовать размер блока, равный 1m, то счетчик будет обозначать размер файла в мегабайтах. При счетчике, равном 1k, будет создан файл, размером 1 Гбайт, при счетчике, равном 2k, — 2 Гбайт, при счетчике, равном 32, — 32 Мбайт и т. д.

Таблица 8.2. Сокращения, которые распознает команда dd

Символ Значение Множитель
b Дисковый блок 512
k Кило 1024
m Мега 1048576
g Гига 1073741824
w Целое Размер целого числа в байтах на вашей платформе

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

Чтобы создать файловую систему в файле, для начала необходимо связать файл с устройством диска памяти файлового типа. Делается это точно так же, как и в предыдущем разделе:

# mdconfig -a -t vnode -f filesystem.file
md0

Теперь можно создавать файловую систему на этом устройстве. Сама процедура очень напоминает создание файловой системы FFS на дискете с помощью команды newfs(8). Механизм Soft Updates весьма благоприятно сказывается при работе с файловыми системами, расположенными внутри файлов, поэтому желательно указать ключ -U, который активирует этот механизм.

# newfs -U /dev/md0
/dev/md0: 1024.0MB B097152 sectors) block size 16384, fragment size 2048
        using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920

Утилита newfs(8) вывела такие основные сведения о диске, как размеры блоков и фрагментов, а также число индексных дескрипторов.

Теперь, когда файловая система создана, ее можно монтировать:

# mount /dev/md0 /mnt

Поздравляю! Теперь в вашем распоряжении имеется файловая система, расположенная внутри файла, размером 1 Гбайт. В нее можно копировать файлы, можно создать резервную копию этой файловой системы на магнитной ленте и делать все то, что можно делать с любой другой файловой системой. Но, кроме того, ее можно перемещать из каталога в каталог, подобно любому другому файлу. Мы будем использовать такую возможность, когда в следующей главе будем рассматривать клетки, которые играют важную роль при создании собственных встроенных систем.

Файловые системы внутри файлов и /etc/fstab

Файловые системы, расположенные внутри файлов, можно монтировать автоматически, во время загрузки системы, если добавить соответствующую строку в /etc/fstab, точно так же, как в случае с другими дисками памяти. Для этого нужно просто указать имя файла с ключом -F и добавить ключ -P, чтобы предотвратить создание новой файловой системы и использовать уже существующую. Следующая строка предполагает автоматическое монтирование созданной выше файловой системы, находящейся внутри файла, в каталог /mnt во время загрузки. (Я предупреждал вас, что нам доведется увидеть примеры строк в /etc/fstab, которые делают его еще более трудночитаемым, не так ли?)

md    /mnt   mfs   rw,-P,-F/home/mwlucas/filesystem.file   0     0

Прочие файловые системы

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

devfs(5) — это файловая система устройств, которая располагается в каталоге /dev. В этой файловой системе нельзя хранить обычные файлы, она поддерживает только файлы устройств. Содержимым этой файловой системы напрямую управляют ядро и демон файловой системы устройств — devd(8).

procfs(5) — это файловая система процессов, она содержит огромный объем информации о процессах. Эта файловая система представляет угрозу безопасности и потому не рекомендуется к использованию в современных версиях FreeBSD. Однако при наличии монтированной файловой системы процессов можно узнать много интересного о процессах. Некоторые старые приложения требуют, чтобы эта файловая система была смонтирована в каталог /ргос — если приложение сервера требует наличия procfs, попробуйте найти аналогичное приложение, которое не предъявляет таких требований.

При использовании режима совместимости с Linux (глава 12) может потребоваться монтировать файловую систему linprocfs(5). Значительная часть программного обеспечения для Linux требует наличия файловой системы процессов и при выборе режима совместимости с Linux операционная система FreeBSD предлагает установить linprocfs в каталог /compat/linux/proc. Я рекомендую устанавливать linprocfs, только если имеется программное обеспечение, требующее ее присутствие.

fdescfs(5), файловая система дескрипторов, предоставляет возможность просматривать дескрипторы файлов для каждого процесса. Существуют программы, требующие наличия fdescfs(5). Она представляет меньшую угрозу безопасности, чем procfs, тем не менее использовать ее нежелательно.

Комментарии запрещены.