Согласно руководству:
mount_opts=mount_option_string
Set a set of default mount options which will be used when the file
system is mounted. Unlike the bitmask-based default mount options
which can be specified with the -o option, mount_option_string is an
arbitrary string with a maximum length of 63 bytes, which is stored in
the superblock.
Если я попытаюсь задать одну опцию, то это сработает:
$ tune2fs -E mount_opts=data=writeback /dev/sde2
tune2fs 1.43.5 (04-Aug-2017)
Setting extended default mount options to 'data=writeback'
Но если я попытаюсь задать несколько параметров, это, по-видимому, конфликтует с tune2fs
собственным механизмом синтаксического анализа:
$ tune2fs -E mount_opts=data=writeback,noatime /dev/sde2
tune2fs 1.43.5 (04-Aug-2017)
Bad options specified.
Extended options are separated by commas, and may take an argument which
is set off by an equals ('=') sign.
Valid extended options are:
clear_mmp
hash_alg=<hash algorithm>
mount_opts=<extended default mount options>
stride=<RAID per-disk chunk size in blocks>
stripe_width=<RAID stride*data disks in blocks>
test_fs
^test_fs
Как передать строку с несколькими параметрами в «mount_opts»?
решение1
Как говорит Томас, sparated by commas
это для расширенного разделения опций. Однако mount_opts
разделение опций также выполняется с помощью ,
(см. Linux kernel fs/ext4/super.c:parse_options()
), и на данный момент ответ e2fsprogs
'mke2fs
и tune2fs
не могут семантически отличить одно от другого.
Апереписка с Теодором Й. Цо раскрывает:
Да, это недостаток tune2fs.
Синтаксиса для достижения этого с помощью обычных инструментов манипуляции нет ext
. Вместо этого Ts'o советует использовать debugfs
в качестве обходного пути:
Вы можете задать расширенные параметры монтирования с помощью debugfs:
debugfs -w -R "set_super_value mount_opts foo,bar" /dev/sda1
В этом случае вам понадобится debugfs -w -R "set_super_value mount_opts data=writeback,noatime" /dev/sde2
, ноэто не имеет ожидаемого эффекта.
При монтировании ext4
модуль ядра выдаст сообщение об ошибке Unrecognized mount option "noatime" or missing value
; на самом деле, можно указать только ext
-specific опции, а noatime
не (см. тот же исходный файл ядра, доступные опции перечислены в tokens
массиве). Функционально наиболее близким соответствием являетсяlazytime
.
Итак, используйте debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sde2
.
решение2
Относится sparated by commas
к различным расширенным опциям, таким как , clear_mmp
и т.д.hash_alg
mount_opts
Поэтому правильный синтаксис будет следующим.
tune2fs -E mount_opts="data=writeback noatime" /dev/sde1