Я написал более быструю альтернативу ratarmount , которая "у меня работает", потому что эта проблема продолжала беспокоить меня.
Вы можете установить и использовать его следующим образом:
pip3 install --user ratarmount
ratarmount my-huge-tar.tar mount-folder
ls -la mount-folder # will show the contents of the tar top-level
Когда вы закончите, вы можете демонтировать его, как любое крепление FUSE:
fusermount -u mount-folder
Это зависит от того, что вы измеряете.
Вот эталонный показатель занимаемой памяти и требуемого времени для первого монтирования, а также времени доступа для простой команды cat
и простой команды find
.
Были созданы папки, содержащие по 1 тыс. файлов, и количество папок варьировалось.
Нижний левый график показывает планки погрешностей, указывающие минимальное и максимальное измеренное время для cat
для 10 случайно выбранных файлов.
ratarmount -P 0
на большинстве современных процессоров, потому что archivemount использует только одно ядро для декодирования bzip2. indexed_bzip2
поддерживает блочное параллельное декодирование начиная с версии 1.2.0.--gzip-seek-point-spacing
, чтобы уменьшить общее количество точек и, следовательно, генерируемых данных. mmap
для открытия. Память, используемая mmap
, даже не считается используемой памятью при отображении использования памяти с помощью free
или htop
. find
в точке монтирования, как правило, более чем на порядок медленнее по сравнению с archivemount, вероятно, из-за Python и Слой SQLite в отличие от реализации на чистом C или потому, что я использую FUSE в режиме одного потока -. Дополнительные сведения о -тестах глубины см. на странице Github .
из/etc/sudoers.d/README
:
Рекомендуется использовать visudo , потому что это предотвратит внесение изменений в случае ошибок, а также он будет иметь дело с новым файловым режимом(0440).
что означает, что вашему сценарию инициализации требовалось только изменение режима -для нового созданного файла (/etc/sudoers.d/someuser)
chmod 0440 /etc/sudoers.d/someuser;
Но решение, которое вы нашли здесь , лучше,
echo 'someuser ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo
Visudo здесь будет использовать tee
вместо nano
для добавления нового контента без взаимодействия , и это магия, которую я упустил!