`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이 확장된 옵션 분리를 위한 것입니다. 그러나 옵션 분리는 (Linux 커널 참조 )을 mount_opts사용하여 수행되며 이 답변에서는 ',fs/ext4/super.c:parse_options()e2fsprogsmke2fs 그리고 tune2fs의미론적으로 서로 구별하지 못합니다.

Theodore Y. Ts'o와의 메일 교환 공개:

예, 이것은 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특정 옵션 만 지정할 수 있지만 noatime그렇지 않습니다(동일 커널 소스 파일 참조, 사용 가능한 옵션이 배열에 나열되어 있음 tokens). 기능적으로 가장 가까운 일치는 다음과 같습니다.lazytime.

따라서 debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sde2.

답변2

는 , 등과 sparated by commas같은 다양한 확장 옵션과 관련이 있습니다 clear_mmp.hash_algmount_opts

따라서 올바른 구문은 다음과 같습니다.

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

관련 정보