Jak poprawnie utworzyć wirtualny system plików?

10

Zadanie w mojej pracy domowej wymaga ode mnie stworzenia wirtualnego systemu plików, zamontowania go i wykonania na nim pewnych operacji.

Mam utworzyć plik o rozmiarze 10 MB, którego bity są ustawione na 0, sformatować go jako ext3 i zamontować. Oto jak to zrobiłem:

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

Mimo że użyłem /dev/zero, plik nadal jest pełen bełkotliwych znaków (głównie znaków). Uprawnienia do /media/fusedrw-rw-rw-(które są w porządku), ale uprawnienia do znajdujących się w nim plików są mniej więcej takie:

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

Gdzie popełniłem błąd?

Paweł
źródło
Myślę, że problem dotyczy twojego polecenia mkfs.ext3. IIRC, Istnieją różne argumenty, których należy użyć, robiąc to na pliku zamiast na urządzeniu.
user606723,
1
Może się mylę, na adamsinfo.com/… , robisz to poprawnie. Czy możesz spróbować wykonać dokładne polecenia z tego adresu URL i sprawdzić, czy nadal występują problemy?
user606723,
Spróbuj takżemkfs.ext3 -F ~/filesyst
user606723,
@ user606723 Dzięki, rozwiązałem to. Problem był bsi countargumenty. Jeśli piszę bs=1MiB count=10, tak jak w tym linku, który opublikowałeś, działa.
Paul,
1
Nawiasem mówiąc, tak naprawdę nie musisz wypełniać pliku zerami. Możesz po prostu utworzyć pusty plik o dowolnym rozmiarze truncate -s 400m filesyst. Różnica polega na tym, że dopóki nie zapiszesz danych do pliku, nie zajmuje on miejsca na dysku, dzięki czemu możesz stworzyć wirtualny system plików, który jest większy niż cały dysk, o ile nie spróbujesz go zapełnić . Możesz zobaczyć, ile miejsca zajmuje plik du -h filesyst.
psusi

Odpowiedzi:

6

Hmmm ... poprawny sposób to zrobić:

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

i działa:

(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

Powinieneś sprawdzić pierwsze urządzenie w pętli za pomocą losetup -f.

Rmano
źródło