mount --bind 的妙用

 

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

时间: 2024-09-27 00:05:27

mount --bind 的妙用的相关文章

mount --bind 重启后失效的解决办法

vsftp不支持软链接,可以用mount来支持不同的目录结构 mount --bind /home/www/web/ROOT/img/upload /ftp/private/upload 重启后失效. 解决办法: 编辑fstab,重启后自动mount vi /etc/fstab /home/www/web/ROOT/img/upload /ftp/private/upload none bind 0 0

mount --bind使用方法

我们可以通过mount --bind命令来将两个目录连接起来,mount --bind命令是将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个目录的访问,如下所示: ## test1 test2为两个不同的目录 linux-UMLhEm:/home/test/linux # ls test1 11.test 1.test linux-UMLhEm:/home/test/linux # ls test2 22.test 2.test linux-UMLhEm:/home/tes

mount -l 的妙用

场景描述:在研究livecd 启动之后,将光盘挂载到/dev/.initramfs/live目录之下,使用umount 命令无法卸载,一直设备正忙,按道理根文件系统已经成功运行在内存中,应该不需要光盘的协助.然后查看init脚本,进行挂载的情况,从中显示确实调用umount -l /dev/.initramfs/live,进行了卸载,这个-l的参数是延迟关闭使用,直到所有的资源不被占用才释放.结果终于卸载成功. 研究的过程中,发现对于光盘的内容使用losetup进行操作,但是确切的含义尚未知晓.

Bind Mounts and File System Mount Order

     When you use the bind option of the mount command, you must be sure that the file systems are mounted in the correct order. In the following example, the /var/log directory must be mounted before executing the bind mount on the /tmp directory: #

Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)

storage driver 和 data volume 是容器存放数据的两种方式,上一节我们学习了 storage driver,本节开始讨论 Data Volume. Data Volume 本质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容器的文件系统中.Data Volume 有以下特点: Data Volume 是目录或文件,而非没有格式化的磁盘(块设备). 容器可以读写 volume 中的数据. volume 数据可以被永久的保存,即使使用它的容器

mount的bind选项

  mount 的 bind 选项将第一个目录克隆到第二个.一个目录中的改变将会在另一个中出现 - 毕竟,它是同一磁盘上的同一个块. 使用 bind 与对同一设备进行两次挂载的区别在于,您就可以挂载子目录而无需挂载整个文件系统. 绑定挂载(bind mount)允许从任何其他位置访问任何文件或目录. 范例七:将 /home 这个目录暂时挂载到 /mnt/home 底下: [[email protected] ~]# mkdir /mnt/home [[email protected] ~]# m

【转载】linux下的mount命令详解;

以下内容来自:http://blog.csdn.net/clozxy/article/details/5299054 http://linux.chinaunix.net/techdoc/system/2007/06/17/960372.shtml http://tutu.spaces.eepw.com.cn/articles/article/item/70737 umount: 功能:正好与mount的功能相反,卸载设备,umount后面跟挂载点或设备名(如/dev/sda5),不可以跟LAB

linux mount/umount挂载命令解析。

如果想在运行的Linux下访问其它文件系统中的资源的话,就要用mount命令来实现. 2.      mount的基本用法是?格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统.-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统.-n 不把安装记录在/etc/mtab 文件中.-r 讲文件系统安装为只读.-v 详细显示安装信息.-w 将文件系统安装为可写,为命令默认情况.-t  指定设备的文件系统

[文件系统]文件系统学习笔记(五)---mount系统调用(1)

1,mount命令各个参数的含义 mount命令各个参数含义   2,mount系统调用中flag参数的含义#define MS_RDONLY 1  /* Mount read-only */#define MS_NOSUID 2  /* Ignore suid and sgid bits */#define MS_NODEV  4  /* 在已经安装文件系统上禁止访问设备文件 */#define MS_NOEXEC 8  /* 在已经安装文件系统上不允许程序运行 */#define MS_SY