我在chroot环境中安装了几个目录(bind mount),但它们在CentOS 6和7上的表现不同 – 完全相同的命令.

例:

我的chroot env / chroot / base.

然后我将它挂载到每个用户:

mount –bind / chroot / base / chroot / $user

然后我在同一用户的chroot中挂载/ home / $user:

mount –bind / home / $user / chroot / $user / home / $user

在CentOS 6上它工作正常,它正好安装那些目录,但在CentOS 7上我得到这样的东西:

/dev/mapper/cl_cp-home /chroot/user1/home/user1 xfs rw,relatime,attr2,inode64,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user2/home/user1 xfs rw,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user3/home/user1 xfs rw,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user2/home/user2 xfs rw,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user3/home/user2 xfs rw,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user1/home/user2 xfs rw,usrquota 0 0
/dev/mapper/cl_cp-home /chroot/user3/home/user3 xfs rw,usrquota 0 0

每个用户的homedir都安装在其他用户的chroot环境中.

为什么会这样? CentOS6 / 7之间可能导致这种情况发生了什么变化?

编辑:

例如,在user1的文件夹上运行ls(123user1是一个简单的touch / home / user1 / 123user1文件):

root@server:~# ls /chroot/user1/home/user1/
123user1
root@server:~# ls /chroot/user2/home/user1/
123user1
root@server:~# ls /chroot/user3/home/user1/
123user1

更奇怪的是:

root@server:~# ls /chroot/base/home/user1/
123user1

我没有在任何阶段安装这个

行为的来源似乎是共享子树操作的更改默认值.内核文档Documentation / sharedsubtree.txt提到private是默认值,而实际上它是共享的,可以通过在使用–bind挂载目录后查看/ proc / self / mountinfo来获取.
root@localhost ~]# mount --bind /chroot/base /chroot/test
[root@localhost ~]# grep test /proc/self/mountinfo
234 62 253:1 /chroot/base /chroot/test rw,relatime shared:1 - xfs /dev/vda1 rw,noquota

这会导致/ chroot / test下的挂载传播回/ chroot / base,然后影响从/ chroot / base派生的其他绑定挂载.

要恢复旧的行为,必须在/ etc / fstab中明确指定–make-private作为挂载选项.

[root@localhost ~]# umount /chroot/test
[root@localhost ~]# mount --bind --make-private /chroot/base /chroot/test
[root@localhost ~]# grep test /proc/self/mountinfo
234 62 253:1 /chroot/base /chroot/test rw,relatime - xfs /dev/vda1 rw,noquota

我认为将私有选项应用于您想要旧行为的任何绑定装载都是保存的.

更新

内核默认仍然是私有的,但systemd将文件系统重新分配为共享,因为更好的容器支持.从systemd github site:

Mark the root directory as shared in regards to mount propagation. The kernel defaults to “private”,but we think it makes more sense to have a default of “shared” so that nspawn and the container tools work out of the Box. If specific setups need other settings they can reset the propagation mode to private if needed. Note that we set this only when we are invoked directly by the kernel. If we are invoked by a container manager we assume the container manager kNows what it is doing (for example,because it set up some directories with different propagation modes).

绑定装载 – 在CentOS 6和CentOS 7上有不同的结果的更多相关文章

  1. 使用xib创建自定义视图

    但是,您必须接受您的XIB将包含根视图或其他内容,这些视图将作为子视图添加到放入Placement的类的实例中.这样,你应该有类似的东西:XIB与您的自定义视图内容:添加XIB的位置:由于添加到展示位置的视图实例与XIB中的文件所有者相同,因此您可以在XIB和Placement中设置出口和操作.只是不要忘记你的XIB中的根视图不是UIKit将创建放置到Placement的实例.为方便起见,请在下面找到我的代码,该代码是基类,以便于创建此类视图:

  2. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  3. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  4. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  5. 防止序列为空

    作者:EricaSadun,原文链接,原文日期:2016-05-11译者:pucca;校对:wiilen;定稿:CMB昨天在Swift-Users有人提问如何防止序列为空。这个问题来源于如何在断言中测试一个序列,由此引发的问题是如果序列为空,会返回true来满足断言。我们先不考虑这种处理是否有问题,JeremyPereira提出了一个相当巧妙的解决方案:但从此讨论中延伸出的另一个大问题是“如何优雅地判断一个序列是否为空?”。本文由SwiftGG翻译组翻译,已经获得作者翻译授权,最新文章请访问http://

  6. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  7. 使用 Swift语言进行 Hadoop 数据流应用程序开发

    如果您发现了问题,或者希望为改进本文提供意见和建议,请在这里指出.在您开始之前,请参阅目前待解决的问题清单.简介本项目包括两类Hadoop流处理应用程序:映射器mapper和总结器reducer。如上所示,在Hadoop上编写流处理程序是一个很简单的工作,也不需要依赖于特定的软件体系。

  8. 为什么在Swift中甚至需要便利关键字?

    由于Swift支持方法和初始化程序重载,因此可以将多个init放在一起,并使用任何您认为方便的:那么为什么便利关键字也存在呢?`我在thisanswer年轻微触及它,其中我详细地覆盖了Swift的初始化规则,但主要关注的是所需的词。因为Swift不允许未初始化的变量,所以不能保证从你继承的类继承所有(或任何)初始化器。所以方便关键字做的是告诉我们哪些初始化器可以被添加没有默认值的实例变量的子类继承。它只意味着Inheritor只有一个指定的初始化器。

  9. swift – 检查Hashable一致性

    我有一个基本协议(模型),一些结构符合.它们也符合Hashable我有一个函数,它接受一个符合Model的对象数组.如何将[Model]传递给需要Hashables而不制作ModelHashable的函数?我试图避免这种情况因为当我这样做时,我得到“模型不能用作通用约束……”

  10. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部