Мне нужно создать и отформатировать блок-устройство и скопировать все файлы в подкаталог в него. В идеале для форматированного блочного устройства будет достаточно места для размещения файлов. Не имеет значения, если он не подходит, но он должен быть достаточно близок - в идеале, в десятках мегабайт.Как создать блочное устройство, которое «просто подходит» в подкаталоге?
Но это не так просто, как кажется. Сначала мне нужно измерить размер файлов в подкаталоге, а затем создать блок-устройство.
Но блок-устройство не может быть того же размера, что и файлы, потому что некоторое пространство будет занято форматированием информации, которую я предполагаю. Также будет занято некоторое пространство, потому что предположительно файлы не обязательно используют все доступное пространство в каждом блоке диска.
Я не думаю, что важно, какое устройство блока я создаю, но если вы считаете, что это важно, я создаю том EBS на Amazon EC2.
У кого-нибудь есть комментарии о том, как лучше всего это сделать?
Вот мой Python код для вычисления размера каталога:
def get_directory_size(start_path=None):
print(start_path)
total_size = 0
for dirpath, dirnames, filenames in os.walk(start_path):
for f in filenames + dirnames:
fp = os.path.join(dirpath, f)
if os.path.islink(fp):
# ignore symbolic links
continue
total_size += os.path.getsize(fp)
return total_size
Использование какой-либо файловой системы? – duskwuff
Если я должен был быть конкретным, ext2 или ext4. –