¿Cómo pasar múltiples opciones a `tune2fs -E mount_opts`?

¿Cómo pasar múltiples opciones a `tune2fs -E mount_opts`?

Según el manual:

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.

Si intento configurar una sola opción, funciona:

$ tune2fs -E mount_opts=data=writeback /dev/sde2
tune2fs 1.43.5 (04-Aug-2017)
Setting extended default mount options to 'data=writeback'

Pero si intento configurar varias opciones, parece entrar en conflicto con tune2fsmi propio mecanismo de análisis:

$ 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

¿Cómo pasar una cadena con múltiples opciones en 'mount_opts'?

Respuesta1

Como dice Thomas, sparated by commases una opción extendida para la separación. Sin embargo, mount_optsla separación de opciones también se realiza mediante ,(consulte el kernel de Linux fs/ext4/super.c:parse_options()) y, a partir de esta respuesta e2fsprogs, 'mke2fs y tune2fsno logran distinguir semánticamente uno del otro.

AIntercambio de correo con Theodore Y. Ts'o revela:

Sí, esto es un defecto de tune2fs.

No existe una sintaxis para lograr esto utilizando las extherramientas de manipulación comunes. En cambio, Ts'o recomienda utilizar debugfscomo solución alternativa:

Puede configurar opciones de montaje extendidas usando debugfs:
debugfs -w -R "set_super_value mount_opts foo,bar" /dev/sda1

En este caso, necesitarías debugfs -w -R "set_super_value mount_opts data=writeback,noatime" /dev/sde2, peroesto no tiene el efecto que esperas.

Al montarlo, el ext4módulo del kernel se quejará de un Unrecognized mount option "noatime" or missing value; de hecho, sólo es posible especificar extopciones específicas, y noatimeno es posible (consulte el mismo archivo fuente del kernel, las opciones disponibles se enumeran en la tokensmatriz). La coincidencia funcionalmente más cercana eslazytime.

Entonces, usa debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sde2.

Respuesta2

Se sparated by commasrelaciona con las diferentes opciones extendidas como clear_mmp,, hash_algetc.mount_opts

Entonces la sintaxis correcta sería la siguiente.

tune2fs -E mount_opts="data=writeback noatime" /dev/sde1

información relacionada