Как правильно создать виртуальную файловую систему?

10

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

Я должен создать файл размером 10 МБ, все биты которого установлены в значение 0, отформатировать его как ext3 и смонтировать. Вот как я это сделал:

dd if=/dev/zero of=~/filesyst bs=10485760 count=1
sudo mkfs.ext3 ~/filesyst
sudo mount –o loop ~/filesyst /media/fuse

Несмотря на то, что я использовал /dev/zeroфайл, я все еще полон тарабарских символов (в основном в знаках). Разрешения на /media/fuseэто drw-rw-rw-(которые хорошо), но разрешения на файлы внутри него что - то вроде этого:

d????????? ? ? ? ?          ? lost+found
-????????? ? ? ? ?          ? secret_bin

Где я ошибся?

Павел
источник
Я думаю, что проблема связана с вашей командой mkfs.ext3. IIRC, Есть разные аргументы, которые нужно использовать при выполнении этого файла, а не устройства.
user606723
1
Может быть, я не прав, согласно adamsinfo.com/… Вы делаете это правильно. Можете ли вы попробовать выполнить точные команды по этому URL и посмотреть, есть ли у вас проблемы?
user606723
Также попробуйтеmkfs.ext3 -F ~/filesyst
user606723
@ user606723 Спасибо, я решил. Проблема была bsи в countаргументах. Если я напишу bs=1MiB count=10, как в той ссылке, которую вы разместили, это работает.
Пол
1
Кстати, вам не нужно заполнять файл нулями. Вы можете просто создать пустой файл произвольного размера с помощью truncate -s 400m filesyst. Разница в том, что до тех пор, пока вы на самом деле не записываете данные в файл, он не использует места на диске, поэтому вы можете создать виртуальную файловую систему, которая будет больше, чем весь ваш диск, при условии, что вы фактически не пытаетесь заполнить ее. , Вы можете видеть, сколько места фактически использует файл du -h filesyst.
psusi

Ответы:

6

Хммм ... правильный способ сделать это:

dd if=/dev/zero of=./filesyst bs=10485760 count=1
sudo losetup /dev/loop0 ./filesyst
sudo mkfs.ext3 /dev/loop0
sudo mount /dev/loop0 /tmp/lalla

и это работает:

(0)romano-asus:~/tmp% ls -l /tmp/lalla
total 12
drwx------ 2 root root 12288 2011-12-20 22:21 lost+found
(0)romano-asus:~/tmp% df /tmp/lalla
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop0                9911      1121      8278  12% /tmp/lalla

Вы должны проверить первое устройство петли бесплатно с losetup -f.

Rmano
источник