`tune2fs -E mount_opts` に複数のオプションを渡すにはどうすればいいですか?

`tune2fs -E mount_opts` に複数のオプションを渡すにはどうすればいいですか?

マニュアルによると:

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

Thomasが言うように、sparated by commasは拡張オプション分離用です。ただし、mount_optsオプション分離は,(Linuxカーネルを参照fs/ext4/super.c:parse_options())を使用しても行われ、この回答の時点ではe2fsprogsmke2fs そして tune2fs意味的に区別できない。

セオドア・Y・ツォとのメールのやり取りで明らかになった:

はい、これは 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_mmphash_algmount_opts

したがって、正しい構文は次のようになります。

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

関連情報