linux中aufs的使用

aufs (another union file system), 从名字上就可以看出, 它的作用是合并几个文件夹到一个目录中, 使得这些文件夹(分散或者不是分散的)合并到同一个目录中。更神奇的是, 可以改变文件夹的属性, 将只读的变成可写(只是看起来可写, 修改的东西被保存在另外的地方, 不会对原来的只读文件夹造成损害。

先看一个例子, 参考了http://www.linuxfans.org/bbs/thread-173965-1-2.html

mkdir /tmp/rwdir /tmp/union
mount -t  aufs -o br:/tmp/rwdir:/home=ro none /tmp/union

上面mount的命令解释如下, 以aufs的格式将none(这里通常是一个设备名,比如/dev/sda, 或者一个iso文件等,none表示空设备) 挂载到/tmp/union目录底下

-o 后面跟的是aufs对应的选项, br表示分支(branch, 也就是要合并的文件夹, 格式为br: BRANCH[:BRANCH], 其中的BRANCH实际上是一个文件夹加选项(选项可以忽略), 从上面的例子对应来看, BRANCH 可以当当是文件夹/tmp/rwdir, 也可以是文件夹加属性/home=ro, 其中=ro表示/home挂载为只读(这样对home作的改变都不会真正出现在home中)

命令执行往后, union底下不是出现了rwdir跟home两个目录, 而是rwdir跟home底下的内容都变成union底下的内容, 比如rwdir只有file1, home只有file2, 那么union底下出现的内容是file1跟file2

现在假设home底下有svn目录,目录底下有文件file3

 cd union
touch file4
rm svn/file3
sudo umount union


对union进行了一些读写操作后, 将union umount掉, 现在再来看rwdir跟home的变化
home被挂载为只读,所以在union中删了它的文件,实际上它并没有改变, 等下我们会说它的改变保存在哪里
rwdir可写, 我们发现它下面多了file4, 以及svn目录, 如果你用ls -a, 会发现一个隐藏文件, 对了,这个隐藏文件就是上面删除对应的记录

总的来说, 我们可以将一个只读文件夹跟一个可写文件夹用aufs合并到另外一个文件夹, 这样我们就可以对只读文件夹进行操作, 并把修改的内容保存在另外一个文件中

开始可能只挂载了一些目录,我们可以进行追加操作

 mount -t aufs -o br:/tmp/rwdir none /tmp/union

现在我们想将home追加上, 可以这么做

mount -o remount,append:/home=ro /tmp/union


append:BRANCH 是aufs的选项, 这样的结果跟上面一致

一些问题:
mount -t aufs -o br:/home=ro:/tmp/rwdir none /tmp/union会造成段错误, 暂时不知道原因

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值