本博客倡导开放源代码,在此公布之程序源代码如无特别声明均采用GNU通用公共 许可证(GPL)

乐在其中

分享学习Linux的乐趣

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

假设我们要改的文件是/etc/hosts,可按下面的步骤操作:

1. 把新的hosts文件放在/tmp下。当然也可放在硬盘或U盘上。
2. mount --bind /tmp/hosts /etc/hosts

测试完成了执行 umount /etc/hosts 断开绑定。

如果我需要在/etc下面增加一个exports文件怎么办?原来没有这个文件,不能直接bind。我们有两个方法:

方法1:绑定整个/etc目录,绑定前先复制/etc
# cp -/etc /tmp
# mount 
--bind /tmp/etc /etc
此时的/etc目录是可写的,所做修改不会应用到原来的/etc目录,可以放心测试。

方法2:挂载ramfs到/etc,同样要先复制/etc
挂载ramfs
# mkdir 
/tmp/etc
# mount 
-t ramfs none /tmp/etc

复制
/etc,这里我们不能用cp -a,改用tar
# cd 
/etc
# tar cf 
- . |(cd /tmp/etc; tar xf -)
# cd 
/

覆盖
/etc
# mount 
--move /tmp/etc /etc
测试完了记着 umount /etc

posted on 2010-04-21 13:42 gouzhuang 阅读(40924) 评论(6)  编辑 收藏 引用 所属分类: 嵌入式Linux

评论

# re: mount --bind 的妙用 2010-06-12 11:52 快播
回家装个linux试下  回复  更多评论
  

# re: mount --bind 的妙用 2010-10-08 12:28 usli
mount --bind 跟 mount 自己有什么不同?试了一下好像没区别啊?
  回复  更多评论
  

# re: mount --bind 的妙用 2010-10-21 16:04 ccbcfan
mount --bind /mnt/usbmounts/sda1/bin /usr/local/bin
运行Dvdplayer后,再stopall ,
umount /usr/local/bin 提示无法umount ,
只能重启umount?  回复  更多评论
  

# re: mount --bind 的妙用 2010-10-22 09:40 gouzhuang
@ccbcfan
看一下是否有什么进程没有退出。如果有fuser命令可执行fuser -m /usr/local/bin查看有什么进程在使用它。也可尝试用umount -l /usr/local/bin。  回复  更多评论
  

# re: mount --bind 的妙用 2012-05-27 23:11 adgj
真是太妙了,太妙了!  回复  更多评论
  

# re: mount --bind 的妙用 2012-07-15 07:52 jzm
强大  回复  更多评论
  

只有注册用户登录后才能发表评论。