2

Эти следующие разделы ext3 содержат идентичные данные. Как мы видим, чем больше размер раздела, тем больше места требуется для тех же файлов:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop11            3965777    561064   3199964  15% [...]
/dev/loop19             573029    543843     29186  95% [...]

Filesystem            Size  Used Avail Use% Mounted on
/dev/loop11           3.8G  548M  3.1G  15% [...]
/dev/loop19           560M  532M   29M  95% [...]

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/loop11          1024000    1656 1022344    1% [...]
/dev/loop19          1024000    1656 1022344    1% [...]

Я начинаю с раздела фиксированного размера, который, возможно, занимал много места, и я хочу создать раздел, который может хранить эти данные, но с (почти) минимальным размером. Как я могу надежно рассчитать минимальный размер раздела, необходимый для хранения определенного объема данных? Количество данных меняется со временем, и мне нужно автоматизировать эти расчеты.

2 ответа2

4

Вот процедура, которую вы можете попробовать:

  • Создайте образ диска немного больше, чем вам нужно.
  • Создайте файловую систему прямо в образе. Вы можете установить параметры файловой системы, как предполагает billc.cn.
  • Зациклируйте образ и скопируйте ваши файлы. Размонтируйте.
  • Уменьшите изображение до минимального размера, используя resize2fs -M. Если вы предпочитаете, используйте Gparted в качестве графического интерфейса.

По сути, resize2fs может выполнять необходимые вычисления динамически, учитывая фактическое пространство, используемое файлами.

Если вы просто хотите вычислить минимальный размер, а не изменять его размер, используйте вместо этого resize2fs -P .

Поскольку ваши данные составляют всего несколько сотен мегабайт, вы можете создать промежуточный образ диска в ОЗУ (tmpfs), чтобы сэкономить время в любой файловой системе со свободным пространством (например, /tmp), изменить его размер и затем dd его на жесткий диск.

Если ваши данные не меняются после записи, вам следует рассмотреть возможность использования SquashFS или аналогичной файловой системы, которая будет более компактной, чем ext3. В противном случае рассмотрим ext2, что позволяет избежать накладных расходов на журналирование.

2

Вы можете использовать опцию -b mkfs (или mke2fs), чтобы явно установить размер блока, или вы можете использовать опцию -T чтобы указать тип файлов. Проверьте страницу руководства для деталей.

Вы также можете убедиться, что число инодов и размер журнала соответствуют.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .