mount --bind 的妙用

CentOS 6.5基于DHCP的PXE自动化安装系统过程中遇到这样一个问题?

 到这里我们还没有完成、他还不能让我们的系统自动化安装,因为我们还没有ks自动应答文件,也没有安装树、在安装时必须提供所依赖的各种rpm包,我们知道HTTP可以向外提供安装树、那就用到我们的httpd了、我这里已经安装好了httpd服务了、如果没有就得安装哦,httpd的服务路径在/var/www/htmp下、这时我们可以绑定我们之前挂载好的光盘到这里来、这样不就有安装树了么,当然在html下创建个目录会好点,这里我们创建成centos:
   # mkdir /var/www/html/centos6.5
   # mount --bind /media/cdrom/ /var/www/html/centos6.5/

   wKiom1McLf7yoXsLAAFvIIHuYHM956.jpg

其中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 -/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


你可能感兴趣的:(media,开发,光盘)