Создать файл изображения контейнера

23

Я хотел бы создать файл размером 100 ГБ для использования в качестве файловой системы. Файл будет храниться на зашифрованном томе, поэтому сам файл / файловая система не нуждается в (дальнейшем) шифровании. Поиск выявил много разных способов сделать это. Некоторые используют losetup, некоторые нет. Является ли следующий приемлемый метод?

$ 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
источник
3
Помимо создания файла 10 ГБ вместо 100 ГБ, большое спасибо, изменение счетчика на 102400 удовлетворило мои потребности :)

Ответы:

9
  1. BS и COUNT должны быть в нижнем регистре:

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

  2. вам нужно создать каталог / media / MountPoint, если он еще не существует:

    sudo mkdir -p /media/MountPoint

Помимо этих двух вещей, что у вас там должно работать.

Обычно лучше быть явным, чем полагаться на неявное поведение, поэтому вы можете изменить строку монтирования на:

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

саз
источник
2
Спасибо за исправления. Это было Mв 1Mтом , что должно было быть в верхнем регистре. Не знаю, почему я поставил bsи countв верхнем регистре тоже. Спасибо за улучшение mount.
SabreWolfy
Я принял предлагаемое изменение моего вопроса, чтобы исправить ошибку в верхнем регистре и явно указать устройство цикла в mount.
SabreWolfy
5

За исключением заглавных букв в ddопциях и не включая loopопцию в mount, я считаю, что это совершенно правильно. mkfsпредупреждает вас, что не использует блочное устройство, чтобы убедиться, что вы знаете, что делаете.

В любом случае, в конце вы будете использовать петлевое устройство:

$ 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
источник
1
-o loopМожет или не может потребоваться ... зависит от версии монтажа. Моя текущая версия не требует этого, но я не забываю указывать это в прошлом. Тем не менее, как я уже сказал - лучше быть явным, чем неявным в сценариях, служит документацией WTF. Думаю ли я, когда это сделал?
Cas
Согласовано. (Примечание: я использую монтирование 2.17.2-9 из текущей стабильной версии Debian)
rpet