Utwórz kontener obrazu pliku

23

Chciałbym utworzyć plik 100 GB, który będzie używany jako system plików. Plik zostanie zapisany na zaszyfrowanym woluminie, więc sam plik / system plików nie musi być (dalej) szyfrowany. Wyszukiwanie ujawniło wiele różnych metod robienia tego. Niektórzy używają losetup, inni nie. Czy stosowanie następującej metody jest dopuszczalne?

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10240
$ mkfs.ext4 ~/theFile.img   # will prompt about block special device
$ sudo mount -o loop ~/theFile.img /media/mountPoint
SabreWolfy
źródło
3
Poza tym, utworzenie pliku 10 GB zamiast 100 GB, dziękuję bardzo, zmiana liczby na 102400 spełniła moje potrzeby :)

Odpowiedzi:

9
  1. BS i COUNT powinny być małe:

    dd if=/dev/zero of=~/theFile.img bs=1M count=10240

  2. musisz utworzyć katalog / media / MountPoint, jeśli jeszcze nie istnieje:

    sudo mkdir -p /media/MountPoint

Oprócz tych dwóch rzeczy, to, co tam masz, powinno działać.

Zwykle lepiej jest być jawnym niż polegać na zachowaniu niejawnym, więc możesz zmienić linię montowania na:

sudo mount -t ext4 -o loop ~/theFile.img /media/mountPoint

cas
źródło
2
Dzięki za poprawki. Było to Mw 1Mktóry miał być wielkimi literami. Nie wiem dlaczego kładę bsi countwielkimi literami też. Dzięki za ulepszenie mount.
SabreWolfy,
Zaakceptowałem sugerowaną edycję mojego pytania, aby poprawić błąd pisany dużymi literami i wyraźnie określić urządzenie pętli w pliku mount.
SabreWolfy,
5

Z wyjątkiem wielkich liter w ddopcjach i nie włączając loopopcji w mount, uważam to za całkowicie poprawne. mkfsostrzega, że ​​nie używa urządzenia blokowego, aby upewnić się, że wiesz, co robisz.

W każdym razie na końcu będziesz używać urządzenia pętlowego:

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10
$ /sbin/mkfs.ext4 theFile.img
$ sudo mount -o loop theFile.img /mnt/tmp/
$ df -h

/dev/loop0            9,7M  1,1M  8,1M  12% /mnt/tmp
rpet
źródło
1
-o loopMogą lub nie mogą być wymagane ... zależy od wersji zamontować. Moja obecna wersja tego nie wymaga, ale pamiętam, że musiałem to określać w przeszłości. Mimo to, jak już powiedziałem - lepiej jest być wyraźnym niż domyślnym w skryptach, służy jako dokumentacja WTF Czy myślałem, kiedy to zrobiłem?
cas
Zgoda. (Uwaga: używam mount 2.17.2-9 z bieżącej stabilnej wersji Debiana)
rpet