매뉴얼에 따르면:
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()
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
특정 옵션 만 지정할 수 있지만 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