マニュアルによると:
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()
)を使用しても行われ、この回答の時点では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