7.6. Виртуальные диски: сетевые, файловые системы в памяти и на основе файлов Network, Memory, and File-Based Filesystems

Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - виртуальные диски.

Сюда могут быть отнесены сетевые файловые системы, такие, как Network Filesystem и Coda, а также файловые системы с организацией в памяти, такие, как md и файловые системы, созданные в файле с помощью vnconfig.

7.6.1. vnconfig: файловая система в файле

vnconfig(8) конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. vnode представляет собой файл и отвечает за работу с файлом. Это означает, что vnconfig(8) использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы.

Чтобы смонтировать имеющийся образ файловой системы:

Example 7-1. Использование vnconfig для монтирования имеющегося образа файловой системы

    # vnconfig vn0 diskimage
    # mount /dev/vn0c /mnt
    	

Для создания нового образа файловой системы с помощью vnconfig:

Example 7-2. Создание нового диска в файле с помощью vnconfig

    # dd if=/dev/zero of=newimage bs=1k count=5k
    5120+0 records in
    5120+0 records out
    # vnconfig -s labels -c vn0 newimage
    # disklabel -r -w vn0 auto
    # newfs vn0c
    Warning: 2048 sector(s) in last cylinder unallocated
    /dev/rvn0c:	10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
    	5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
    super-block backups (for fsck -b #) at:
     32
    # mount /dev/vn0c /mnt
    # df /mnt
    Filesystem  1K-blocks	  Used	  Avail Capacity  Mounted on
    /dev/vn0c	 4927	     1	   4532     0%	  /mnt
    	

7.6.2. md: Файловая система в памяти

md это простой и эффективный способ создания файловых систем в оперативной памяти.

Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, vnconfig(8) и:

Example 7-3. Диск md в памяти

    # dd if=newimage of=/dev/md0
    5120+0 records in
    5120+0 records out
    # mount /dev/md0c /mnt
    # df /mnt
    Filesystem  1K-blocks	  Used	  Avail Capacity  Mounted on
    /dev/md0c	 4927	     1	   4532     0%	  /mnt