Как я могу использовать опцию сжатия Btrfs при установке Linux?

Я пробовал Btrfs с SSD-накопителем и мне понравилась опция сжатия, которая установлена ​​в fstab.

Однако это относится только к файлам, созданным после того, как я установил операционную систему и изменил файл fstab.

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

Кто-нибудь знает, как я могу применить изменения ко всем файлам до или после установки?

3 ответа

Решение

Я считаю, что вы должны бежать

btrfs fi defragment

после монтажа ФС со сжатием.

Проверьте это: https://askubuntu.com/questions/129063/will-btrfs-automatically-compress-existing-files-when-compression-is-enabled

При установке вы можете оформить:

mount -o remount,compress=lzo

Часто вам нужно будет это сделать, как только установщик начнет установку чего-либо (возможно, вы пропустите файл или 2., но не важная персона). Вы можете проверить, установил ли установщик файловую систему непосредственно перед этапом установки.

Также убедитесь, что вы обновили / etc / fstab в установленной системе. Я использую следующие опции, которые дают некоторые другие улучшения:

compress=lzo,ssd,relatime,space_cache,inode_cache,autodefrag

Вы также можете попробовать использовать сжатие-сила = lzo для установки, а не сжатие = lzo, это гарантирует, что даже файлы, которые не сжимаются так хорошо, все еще сжимаются. Это сделает запись медленнее, но так как это однократная установка, которая может стоить того. Но я не уверен, улучшает ли это чтение или нет.

Я видел другой способ, который включает в себя переименование двоичного файла mount.btrfs и замену его скриптом, но когда я делал это в Ubuntu, он испортился, как обычно, в subvolumes @ и @home, но все просто было сброшено в корень файловой системы.,

В качестве альтернативы вы можете установить и затем использовать дефрагментацию, но вы должны дефрагментировать каждый файл отдельно, так как команда не является рекурсивной. Это может пригодиться для обновления до новых методов сжатия, которые могут появиться в более новых версиях btrfs, snappy и lz4. Запустите следующее из каталога /.

find -xdev -type f -exec btrfs fi defrag '{}' \;

Как и многие вопросы с программным обеспечением - ответы меняются в зависимости от того, КОГДА их спрашивают / отвечают. Я освежаю ответ, чтобы помочь кому-нибудь погуглить свой путь в тему.:)

Правильный ответ для btrfs 3.12 и выше для сжатия директорий / точек монтирования POST (требуемая рекурсивная опция для дефрагментации была добавлена ​​в btrfs 3.12, выпущенной в ноябре 2013 года):
btrfs filesystem defragment -c -r MOUNTPOINT

Вот текущие опции из cli версии btrfs 4.4:
Дефрагментация файловой системы btrfs
использование: дефрагментация файловой системы btrfs [опции] | [|...]

Defragment a file or a directory

-v             be verbose
-r             defragment files recursively
-c[zlib,lzo]   compress the file while defragmenting
-f             flush data to disk immediately after defragmenting
-s start       defragment only from byte onward
-l len         defragment only up to len bytes
-t size        target extent size hint

BTRFS Use Case из их вики для использования рекурсивного параметра для дефрагментации каталогов / точек монтирования

Запись журнала изменений BTRFS для версии 3.12

Другие вопросы по тегам