воскресенье, 30 марта 2008 г.

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

STEP 1 (Создать 10MB файл)
$ dd if=/dev/zero of=/tmp/disk-image count=20480

По-умолчанию dd использует блоки в 512 байт, поэтому размер получится равным 20480*512

STEP 2 (Создание файловой системы ext3 или ext2)
$ mke2fs -q
или если вы хотите ext3
$ mkfs -t ext3 -q /tmp/disk-image
да, вы можете использовать даже reiser, но тогда придется создать образ диска большего размера.
Что-то вроде "dd if=/dev/zero of=/tmp/disk-image count=50480".
$ mkfs -t reiserfs -q /tmp/disk-image

STEP 3 (Создание директории "virtual-fs" и монтирование. Это нужно делать как root)
$ mkdir /virtual-fs
$ mount -o loop=/dev/loop0 /tmp/disk-image /virtual-fs

Примечание: Если вы монтируете второе устройство, вы должны увеличить номер loop-устройства: loop=/dev/loop1, loop=/dev/loop2, ... loop=/dev/loopn
(Можно не указывать /dev/loopn вообще, но не забывайте, что устройства могут закончиться (по умолчанию их всего 8: loop0...loop7))
Теперь это работает как любой диск. Виртуальная ФС может быть смонтирована и автоматически, при старте системы, если добавить в /etc/fstab такую строчку:

/tmp/disk-image /virtual-fs ext2 rw,loop 0 0

Тогда ее можно будет монтировать, просто написав:
$ mount /virtual-fs

STEP 4 (когда закончите работу с ВФС, отмонтируйте ее)
$ umount /virtual-fs

(Основано на переводе TIP4 с http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm)

Этот же метод, только с модификациями, можно использовать для создания шифрованных дисков. Для этого нужно, чтобы поддержка шифрования была включена в ядре, были включены в ядре же алгоритмы шифрования и использовались достаточно свежие версии losetup и mount (не помню пакет, в котором это лежит).
Теперь к делу:
STEP 1 - также, как и в оригинале.
STEP 1.1 (здесь мы конфигурируем кольцевое устройство, у нас спросят пароль для создания ключа шифрования. ВНИМАНИЕ! Пароль спросят только один раз, изменить его потом нельзя!):

$ losetup -e aes /dev/loop0 /tmp/disk-image

STEP 2:

$ mkfs -t reiserfs /dev/loop0

далее по тексту. при монтировании указываем в опциях:

mount -o loop,encryption=aes ...

[Vasily Shmelev aka vs-adm]

Комментариев нет: