如何在 Debian 上将 /run 硬链接到 /var/run?(我应该这么做吗?)

如何在 Debian 上将 /run 硬链接到 /var/run?(我应该这么做吗?)

我正在尝试复制 Debian 不稳定系统的根文件系统。执行此操作时,我收到以下警告:

gw:/# cp -xar / /mnt/1.tmp/
cp: will not create hard link `/mnt/1.tmp/var/run' to directory `/mnt/1.tmp/run'
cp: will not create hard link `/mnt/1.tmp/var/lock' to directory `/mnt/1.tmp/run/lock'

现在,根据我对 UNIX 工作方式的记忆,硬链接目录是被禁止的,事实上它也不允许我这样做:

ln: `run': hard link not allowed for directory

所以,我的问题是:

  1. 这些硬链接真的应该存在吗?
  2. 它们最初是如何被创造出来的?
  3. 如何在新文件系统上重新创建它们?

編輯:

看起来这些硬链接报告的是cp实际上不存在,这两个目录是用 --bind 挂载的,并且 cp 看到相同的 inode 编号并认为它是一个硬链接。

我仍然不完全理解所有这些 /run 东西应该如何工作,例如这个系统上没有安装 tmpfs。

无论如何,我将继续这一行动,除非发生一些有趣的事情或者有人给出更好的解释,否则我会接受 MealstroM 的回答,因为它对理解正在发生的事情有一定帮助。

答案1

你不应该这样做。这应该是这样的。检查一下为什么这样做 http://lists.fedoraproject.org/pipermail/devel/2011-March/150031.html

/run 现在是一个 tmpfs,而 /var/run 被绑定挂载到它。/var/lock 被绑定挂载到 /run/lock。应用程序可以像使用 /var/run 一样使用 /run。由于后者是 FHS/LSB,大多数应用程序应该只使用后者,目前只有早期启动的东西应该使用 /run。拥有适用此情况的软件包的人已经被告知

mount --bind /dir1 /dir2如果你的问题没有在文章中通过链接描述,你可以尝试使用它来达到你的目的

相关内容