Wie übergebe ich mehrere Optionen an „tune2fs -E mount_opts“?

Wie übergebe ich mehrere Optionen an „tune2fs -E mount_opts“?

Laut Handbuch:

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.

Wenn ich versuche, eine einzelne Option festzulegen, funktioniert es:

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

Wenn ich jedoch versuche, mehrere Optionen festzulegen, scheint es zu Konflikten mit dem tune2fseigenen Analysemechanismus zu kommen:

$ 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

Wie übergebe ich eine Zeichenfolge mit mehreren Optionen an „mount_opts“?

Antwort1

Wie Thomas sagt, sparated by commasdient es zur erweiterten Optionentrennung. mount_optsDie Optionentrennung erfolgt jedoch auch mit ,(siehe Linux-Kernel fs/ext4/super.c:parse_options()), und ab dieser Antwort e2fsprogs'mke2fs Und tune2fsgelingt es nicht, das eine semantisch vom anderen zu unterscheiden.

AMail-Austausch mit Theodore Y. Ts'o enthüllt:

Ja, das ist ein Mangel von tune2fs.

Es gibt keine Syntax, um dies mit den üblichen extManipulationstools zu erreichen. Ts'o empfiehlt stattdessen debugfsals Workaround:

Sie können erweiterte Mount-Optionen mit debugfs festlegen:
debugfs -w -R "set_super_value mount_opts foo,bar" /dev/sda1

In diesem Fall bräuchten Sie debugfs -w -R "set_super_value mount_opts data=writeback,noatime" /dev/sde2, aberDies hat nicht den erwarteten Effekt.

Beim Mounten ext4beschwert sich das Kernelmodul über ein Unrecognized mount option "noatime" or missing value; tatsächlich ist es nur möglich, ext-spezifische Optionen anzugeben, und noatimeist nicht (siehe dieselbe Kernel-Quelldatei, die verfügbaren Optionen sind im tokensArray aufgelistet). Die funktional beste Entsprechung istlazytime.

Verwenden Sie also debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sde2.

Antwort2

Dies sparated by commasbezieht sich auf die verschiedenen erweiterten Optionen wie clear_mmp, hash_alg, mount_optsusw.

Die korrekte Syntax wäre also wie folgt.

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

verwandte Informationen