427 Star 1.5K Fork 1.6K

GVPopenEuler/kernel

 / 详情

【openEuler 22.09】Add sysfs file to overlayfs to display mount information

已完成
开源之夏2023
创建于  
2022-10-19 13:42

评论 (3)

hiixfj 创建了开源之夏2022 2年前

验证记录:

运行环境:QEMU Debian GNU/Linux 10 debian ttyS0

挂载 overlayfs 文件系统:

root@debian:~# mount -t overlay -o lowerdir=lower,upperdir=upper,workdir=work overlay merge
root@debian:~# mount -t overlay -o \
lowerdir=testdir/lower:testdir/ller,\
upperdir=testdir/upper, \
workdir=testdir/work, \
overlay testdir/rename

测试添加到 /sys/fs/overlayfs 目录下的 sysfs 文件:

root@debian:~# cat /sys/fs/overlayfs/merge_0_46/upper
upper
root@debian:~# cat /sys/fs/overlayfs/merge_0_46/lower
lower
root@debian:~# cat /sys/fs/overlayfs/merge_0_46/merge
/root/merge
root@debian:~# cat /sys/fs/overlayfs/merge_0_46/work
work
root@debian:~# cat /sys/fs/overlayfs/merge_0_48/upper
testdir/upper
root@debian:~# cat /sys/fs/overlayfs/merge_0_48/lower
testdir/lower:testdir/ller
root@debian:~# cat /sys/fs/overlayfs/merge_0_48/merge
/root/testdir/rename
root@debian:~# cat /sys/fs/overlayfs/merge_0_48/work
testdir/work

在文件系统的挂载点下使用 umount -l 卸载文件系统,之后再次查看 sysfs 文件:

root@debian:~# cd merge/
root@debian:~/merge# umount -l .
root@debian:~/merge# cat /sys/fs/overlayfs/merge_0_46/upper
upper
root@debian:~/merge# cat /sys/fs/overlayfs/merge_0_46/lower
lower
root@debian:~/merge# cat /sys/fs/overlayfs/merge_0_46/merge
/root/merge
root@debian:~/merge# cat /sys/fs/overlayfs/merge_0_46/work
work

sysfs 文件未被删除,
退出挂载点目录后:

root@debian:~/merge# cd ..
root@debian:~# cat /sys/fs/overlayfs/merge_0_46/work
cat: /sys/fs/overlayfs/merge_0_46/work: No such file or directory
root@debian:~# ls /sys/fs/overlayfs/
merge_0_48

sysfs 文件被删除,

符合预期

hiixfj 修改了描述 2年前
hiixfj 修改了标题 2年前

边界条件测试

运行环境:QEMU Debian GNU/Linux 10 debian ttyS0

  1. 测试 mergedir 路径长但在4096范围内的情况
    shell脚本:
#!/bin/bash
  
tmpmerge="mergedir/"
merge="mergedir/"
while ((${#merge} < 2048))
do
        mkdir $merge
        if ((${#merge} + 9 >= 2048))
        then
                break
        fi
        merge=$merge$tmpmerge
done
echo mergelength ${#merge}

lower=""
tmplower="lowerdir/lower"
lowerbias=0
mkdir lowerdir
for ((i=0;i<200;i++))
do
        tmp=$tmplower$lowerbias
        ((lowerbias += 1))
        mkdir $tmp
        lower=$lower$tmp
        if ((i == 199))
        then
                break
        fi
        lower=$lower":"
done

echo lower length ${#lower}

mkdir upper
mkdir work

mount -t overlay -o upperdir=upper,lowerdir=$lower,workdir=work overlay $merge

查看 sysfs 文件内容:

root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/upper
upper
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/work
work
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/lower
lowerdir/lower0:lowerdir/lower1:lowerdir/lower2:lowerdir/lower3:lowerdir/lower4:lowerdir/lower5:lowerdir/lower6:lowerdir/lower7:lowerdir/lower8:lowerdir/lower9:lowerdir/lower10:lowerdir/lower11:lowerdir/lower12:lowerdir/lower13:lowerdir/lower14:lowerdir/lower15:lowerdir/lower16:lowerdir/lower17:lowerdir/lower18:lowerdir/lower19:lowerdir/lower20:lowerdir/lower21:lowerdir/lower22:lowerdir/lower23:lowerdir/lower24:lowerdir/lower25:lowerdir/lower26:lowerdir/lower27:lowerdir/lower28:lowerdir/lower29:lowerdir/lower30:lowerdir/lower31:lowerdir/lower32:lowerdir/lower33:lowerdir/lower34:lowerdir/lower35:lowerdir/lower36:lowerdir/lower37:lowerdir/lower38:lowerdir/lower39:lowerdir/lower40:lowerdir/lower41:lowerdir/lower42:lowerdir/lower43:lowerdir/lower44:lowerdir/lower45:lowerdir/lower46:lowerdir/lower47:lowerdir/lower48:lowerdir/lower49:lowerdir/lower50:lowerdir/lower51:lowerdir/lower52:lowerdir/lower53:lowerdir/lower54:lowerdir/lower55:lowerdir/lower56:lowerdir/lower57:lowerdir/lower58:lowerdir/lower59:lowerdir/lower60:lowerdir/lower61:lowerdir/lower62:lowerdir/lower63:lowerdir/lower64:lowerdir/lower65:lowerdir/lower66:lowerdir/lower67:lowerdir/lower68:lowerdir/lower69:lowerdir/lower70:lowerdir/lower71:lowerdir/lower72:lowerdir/lower73:lowerdir/lower74:lowerdir/lower75:lowerdir/lower76:lowerdir/lower77:lowerdir/lower78:lowerdir/lower79:lowerdir/lower80:lowerdir/lower81:lowerdir/lower82:lowerdir/lower83:lowerdir/lower84:lowerdir/lower85:lowerdir/lower86:lowerdir/lower87:lowerdir/lower88:lowerdir/lower89:lowerdir/lower90:lowerdir/lower91:lowerdir/lower92:lowerdir/lower93:lowerdir/lower94:lowerdir/lower95:lowerdir/lower96:lowerdir/lower97:lowerdir/lower98:lowerdir/lower99:lowerdir/lower100:lowerdir/lower101:lowerdir/lower102:lowerdir/lower103:lowerdir/lower104:lowerdir/lower105:lowerdir/lower106:lowerdir/lower107:lowerdir/lower108:lowerdir/lower109:lowerdir/lower110:lowerdir/lower111:lowerdir/lower112:lowerdir/lower113:lowerdir/lower114:lowerdir/lower115:lowerdir/lower116:lowerdir/lower117:lowerdir/lower118:lowerdir/lower119:lowerdir/lower120:lowerdir/lower121:lowerdir/lower122:lowerdir/lower123:lowerdir/lower124:lowerdir/lower125:lowerdir/lower126:lowerdir/lower127:lowerdir/lower128:lowerdir/lower129:lowerdir/lower130:lowerdir/lower131:lowerdir/lower132:lowerdir/lower133:lowerdir/lower134:lowerdir/lower135:lowerdir/lower136:lowerdir/lower137:lowerdir/lower138:lowerdir/lower139:lowerdir/lower140:lowerdir/lower141:lowerdir/lower142:lowerdir/lower143:lowerdir/lower144:lowerdir/lower145:lowerdir/lower146:lowerdir/lower147:lowerdir/lower148:lowerdir/lower149:lowerdir/lower150:lowerdir/lower151:lowerdir/lower152:lowerdir/lower153:lowerdir/lower154:lowerdir/lower155:lowerdir/lower156:lowerdir/lower157:lowerdir/lower158:lowerdir/lower159:lowerdir/lower160:lowerdir/lower161:lowerdir/lower162:lowerdir/lower163:lowerdir/lower164:lowerdir/lower165:lowerdir/lower166:lowerdir/lower167:lowerdir/lower168:lowerdir/lower169:lowerdir/lower170:lowerdir/lower171:lowerdir/lower172:lowerdir/lower173:lowerdir/lower174:lowerdir/lower175:lowerdir/lower176:lowerdir/lower177:lowerdir/lower178:lowerdir/lower179:lowerdir/lower180:lowerdir/lower181:lowerdir/lower182:lowerdir/lower183:lowerdir/lower184:lowerdir/lower185:lowerdir/lower186:lowerdir/lower187:lowerdir/lower188:lowerdir/lower189:lowerdir/lower190:lowerdir/lower191:lowerdir/lower192:lowerdir/lower193:lowerdir/lower194:lowerdir/lower195:lowerdir/lower196:lowerdir/lower197:lowerdir/lower198:lowerdir/lower199
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/merge
mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/mergedir/
  1. 测试 mergedir 路径过长的情况
    shell脚本:
#!/bin/bash
  
tmpmerge="mergedir/"
merge="mergedir/"
while ((${#merge} < 4096))
do
        mkdir $merge
        if ((${#merge} + 9 >= 4096))
        then
                break
        fi
        merge=$merge$tmpmerge
done
echo mergelength ${#merge}

lower=""
tmplower="lowerdir/lower"
lowerbias=0
mkdir lowerdir
for ((i=0;i<200;i++))
do
        tmp=$tmplower$lowerbias
        ((lowerbias += 1))
        mkdir $tmp
        lower=$lower$tmp
        if ((i == 199))
        then
                break
        fi
        lower=$lower":"
done

echo lower length ${#lower}

mkdir upper
mkdir work

mount -t overlay -o upperdir=upper,lowerdir=$lower,workdir=work overlay $merge

查看 sysfs 文件内容:

root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/upper
upper
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/work
work
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/merge
mergedir
root@debian:~/extreme# 
root@debian:~/extreme# cat /sys/fs/overlayfs/merge_0_46/lower
lowerdir/lower0:lowerdir/lower1:lowerdir/lower2:lowerdir/lower3:lowerdir/lower4:lowerdir/lower5:lowerdir/lower6:lowerdir/lower7:lowerdir/lower8:lowerdir/lower9:lowerdir/lower10:lowerdir/lower11:lowerdir/lower12:lowerdir/lower13:lowerdir/lower14:lowerdir/lower15:lowerdir/lower16:lowerdir/lower17:lowerdir/lower18:lowerdir/lower19:lowerdir/lower20:lowerdir/lower21:lowerdir/lower22:lowerdir/lower23:lowerdir/lower24:lowerdir/lower25:lowerdir/lower26:lowerdir/lower27:lowerdir/lower28:lowerdir/lower29:lowerdir/lower30:lowerdir/lower31:lowerdir/lower32:lowerdir/lower33:lowerdir/lower34:lowerdir/lower35:lowerdir/lower36:lowerdir/lower37:lowerdir/lower38:lowerdir/lower39:lowerdir/lower40:lowerdir/lower41:lowerdir/lower42:lowerdir/lower43:lowerdir/lower44:lowerdir/lower45:lowerdir/lower46:lowerdir/lower47:lowerdir/lower48:lowerdir/lower49:lowerdir/lower50:lowerdir/lower51:lowerdir/lower52:lowerdir/lower53:lowerdir/lower54:lowerdir/lower55:lowerdir/lower56:lowerdir/lower57:lowerdir/lower58:lowerdir/lower59:lowerdir/lower60:lowerdir/lower61:lowerdir/lower62:lowerdir/lower63:lowerdir/lower64:lowerdir/lower65:lowerdir/lower66:lowerdir/lower67:lowerdir/lower68:lowerdir/lower69:lowerdir/lower70:lowerdir/lower71:lowerdir/lower72:lowerdir/lower73:lowerdir/lower74:lowerdir/lower75:lowerdir/lower76:lowerdir/lower77:lowerdir/lower78:lowerdir/lower79:lowerdir/lower80:lowerdir/lower81:lowerdir/lower82:lowerdir/lower83:lowerdir/lower84:lowerdir/lower85:lowerdir/lower86:lowerdir/lower87:lowerdir/lower88:lowerdir/lower89:lowerdir/lower90:lowerdir/lower91:lowerdir/lower92:lowerdir/lower93:lowerdir/lower94:lowerdir/lower95:lowerdir/lower96:lowerdir/lower97:lowerdir/lower98:lowerdir/lower99:lowerdir/lower100:lowerdir/lower101:lowerdir/lower102:lowerdir/lower103:lowerdir/lower104:lowerdir/lower105:lowerdir/lower106:lowerdir/lower107:lowerdir/lower108:lowerdir/lower109:lowerdir/lower110:lowerdir/lower111:lowerdir/lower112:lowerdir/lower113:lowerdir/lower114:lowerdir/lower115:lowerdir/lower116:lowerdir/lower117:lowerdir/lower118:lowerdir/lower119:lowerdir/lower120:lowerdir/lower121:lowerdir/lower122:lowerdir/lower123:lowerdir/lower124:lowerdir/lower125:lowerdir/lower126:lowerdir/lower127:lowerdir/lower128:lowerdir/lower129:lowerdir/lower130:lowerdir/lower131:lowerdir/lower132:lowerdir/lower133:lowerdir/lower134:lowerdir/lower135:lowerdir/lower136:lowerdir/lower137:lowerdir/lower138:lowerdir/lower139:lowerdir/lower140:lowerdir/lower141:lowerdir/lower142:lowerdir/lower143:lowerdir/lower144:lowerdir/lower145:lowerdir/lower146:lowerdir/lower147:lowerdir/lower148:lowerdir/lower149:lowerdir/lower150:lowerdir/lower151:lowerdir/lower152:lowerdir/lower153:lowerdir/lower154:lowerdir/lower155:lowerdir/lower156:lowerdir/lower157:lowerdir/lower158:lowerdir/lower159:lowerdir/lower160:lowerdir/lower161:lowerdir/lower162:lowerdir/lower163:lowerdir/lower164:lowerdir/lower165:lowerdir/lower166:lowerdir/lower167:lowerdir/lower168:lowerdir/lower169:lowerdir/lower170:lowerdir/lower171:lowerdir/lower172:lowerdir/lower173:lowerdir/lower174:lowerdir/lower175:lowerdir/lower176:lowerdir/lower177:lowerdir/lower178:lowerdir/lower179:lowerdir/lower180:lowerdir/lower181:lowerdir/lower182:lowerdir/lower183:lowerdir/lower184:lowerdir/lower185:lowerdir/lower186:lowerdir/lower187:lowerdir/lower188:lowerdir/lower189:lowerdir/lower190:lowerdir/lower191:lowerdir/lower192:lowerdir/lower193:lowerdir/lower194:lowerdir/lower195:lowerdir/lower196:lowerdir/lower197:lowerdir/lower198:lowerdir/lower199

符合预期

hiixfj 通过合并 Pull Request !149: [openEuler-22.09] Add sysfs file for overlayfs任务状态待办的 修改为已完成 2年前

登录 后才可以发表评论

状态
负责人
项目
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
预计工期 (小时)
开始日期   -   截止日期
-
置顶选项
优先级
分支
参与者(2)
5329419 openeuler ci bot 1632792936 hiixfj-hiixfj
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助