Linux系统的目录绑定配置

举报
江湖有缘 发表于 2023/02/03 12:12:30 2023/02/03
【摘要】 Linux系统的目录绑定配置

@TOC

一.源目录与目标目录情况

1、源目录文件及inode

[root@docker data]# pwd
/data
[root@docker data]# ll
total 140648
-rw-r--r-- 1 root root       205 Dec 11 13:59 backdata.tar.gz
-rw-r--r-- 1 root root         0 Dec 11 13:54 file1
-rw-r--r-- 1 root root         0 Dec 11 13:54 file10
-rw-r--r-- 1 root root         0 Dec 11 13:54 file2
-rw-r--r-- 1 root root         0 Dec 11 13:54 file3
-rw-r--r-- 1 root root         0 Dec 11 13:54 file4
-rw-r--r-- 1 root root         0 Dec 11 13:54 file5
-rw-r--r-- 1 root root         0 Dec 11 13:54 file6
-rw-r--r-- 1 root root         0 Dec 11 13:54 file7
-rw-r--r-- 1 root root         0 Dec 11 13:54 file8
-rw-r--r-- 1 root root         0 Dec 11 13:54 file9
-rw------- 1 root root 144015872 Dec 11 14:11 web01.tar
[root@docker data]# ls -lid /data
2401630 drwxr-xr-x. 2 root root 177 Dec 11 14:11 /data


2、目标目录的文件及inode

[root@docker backup]# pwd
/backup
[root@docker backup]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 17 17:00 test1
-rw-r--r-- 1 root root 0 Dec 17 17:00 test2
[root@docker backup]# ls -lid /backup/
38821596 drwxr-xr-x 2 root root 32 Dec 17 17:00 /backup/
[root@docker backup]# 

二、将两个目录进行绑定

1.moun --bind进行绑定

将test1挂载到test2上,inode号都变为test1的inode
root@docker backup]# mount --bind /data/ /backup/

2.检查绑定后的两个目录情况

[
[root@docker backup]# ls /data/
backdata.tar.gz  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  web01.tar
[root@docker backup]# ls /backup/
backdata.tar.gz  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  web01.tar
[root@docker backup]# lls -lid /data/ /backup/
bash: lls: command not found...
Similar command is: 'ls'
[root@docker backup]# ls -lid /data/ /backup/
2401630 drwxr-xr-x. 2 root root 177 Dec 11 14:11 /backup/
2401630 drwxr-xr-x. 2 root root 177 Dec 11 14:11 /data/

3.moun --bind绑定注意事项

#注意,mount --bind重启后会丢失挂载,包括/dev/shm目录重启后也会清空,要解决该问题,可以添加开机自启脚本
#添加到/etc/rc.local文件中

三、解挂载

1.对两个目录进行解挂载

[root@docker /]# umount /backup

2.查看解挂载后的情况

[root@docker ~]# ls /data
backdata.tar.gz  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  web01.tar
[root@docker ~]# ls /backup/
test1  test2
[root@docker ~]# ls -lid /data /backup/
38821596 drwxr-xr-x  2 root root  32 Dec 17 17:00 /backup/
 2401630 drwxr-xr-x. 2 root root 177 Dec 11 14:11 /data

四、应用场景

1.场景描述

在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改。这时候mount --bind就是你的好帮手。 

2.测试系统文件

[root@docker ~]# mount -o ro /dev/sdb1 /soft
[root@docker ~]# cd /soft/
[root@docker soft]# touch file1
touch: cannot touch 'file1': Read-only file system
[root@docker soft]# 

[root@docker soft]# mount --bind /test/ /soft/
[root@docker soft]# cd /test
[root@docker test]# touch test{1..10}.txt
[root@docker test]# ls
test10.txt  test1.txt  test2.txt  test3.txt  test4.txt  test5.txt  test6.txt  test7.txt  test8.txt  test9.txt
[root@docker test]# ls /soft/
test10.txt  test1.txt  test2.txt  test3.txt  test4.txt  test5.txt  test6.txt  test7.txt  test8.txt  test9.txt
[root@docker test]# 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。