Como passar múltiplas opções para `tune2fs -E mount_opts`?

Como passar múltiplas opções para `tune2fs -E mount_opts`?

De acordo com o 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.

Se eu tentar definir uma única opção, funciona:

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

Mas se eu tentar definir várias opções, parece haver conflito com tune2fso próprio mecanismo de análise:

$ 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

Como passar uma string com múltiplas opções em ‘mount_opts’?

Responder1

Como diz Thomas, sparated by commasé para uma separação estendida de opções. Porém, mount_optsa separação de opções também é feita usando ,(veja Kernel Linux fs/ext4/super.c:parse_options()), e a partir desta resposta e2fsprogs'mke2fs e tune2fsnão conseguem distinguir semanticamente um do outro.

Atroca de correspondência com Theodore Y. Ts'o revela:

Sim, esta é uma deficiência do tune2fs.

Não há sintaxe para conseguir isso usando as extferramentas de manipulação comuns. Em vez disso, Ts'o aconselha usar debugfscomo solução alternativa:

Você pode definir opções de montagem estendidas usando debugfs:
debugfs -w -R "set_super_value mount_opts foo,bar" /dev/sda1

Neste caso, você precisaria debugfs -w -R "set_super_value mount_opts data=writeback,noatime" /dev/sde2, masisso não tem o efeito que você espera.

Após a montagem, o ext4módulo do kernel irá reclamar de um Unrecognized mount option "noatime" or missing value; na verdade, só é possível especificar extopções específicas, e noatimenão é (veja o mesmo arquivo fonte do kernel, as opções disponíveis estão listadas no tokensarray). A correspondência funcionalmente mais próxima élazytime.

Então, use debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sde2.

Responder2

O sparated by commasestá relacionado às diferentes opções estendidas como clear_mmp,, etc.hash_algmount_opts

Portanto, a sintaxe correta seria a seguinte.

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

informação relacionada