Ken*_*nny 2 filesystems partition mount
在阅读挂载点时,我认为 Linux 中的文件管理如下:
/ 是树的主体/a是主体/a/b的分支,是分支的/a分支c到挂载点/a/b意味着“挂”/c到/a/b分支上,导致/a/b/c我有一些问题:
我们可以只挂载整个分区,还是可以挂载该分区的一部分?请详细说明。
我们是否将一个分区挂载到另一个已经挂载的分区上?例如,某些d安装/mnt,现在我可以安装另一个/e上d,创造/mnt/d/e?或者我们可以/应该只挂载到“固定分支”,例如/,/mnt?如果可能的话,如果我们卸载会发生什么/d,也会/e自动卸载?
我们可以挂载到具有不同文件系统的东西上吗?例如,/a有文件系统 F1,我可以将/b文件系统 F2挂载到a并创建/a/b吗?
假设一个设备sda有 2 个分区sda1, sda2。在通常的实践中,人们会在他们想要的任何挂载点挂载,例如/sda1to /a/sda1、sda2to /b/c/sda2,还是挂载到同一目录?
在 Linux(例如 Fedora 22)中,如何创建一些虚拟或临时分区/文件系统来测试和学习挂载和挂载点?
第一:你不挂载分区。挂载的东西是filesystem。文件系统可能存在于一个分区上,但不一定如此;文件系统通常存在:
内部文件(例如 ISO 映像),
完全在 RAM 中(例如 /tmp 有时是这样创建的),
内核内部(/sys 和 /proc 以这种方式工作),
或作为网络服务(NFS 和 Samba 以这种方式工作)。
将分区 c 挂载到挂载点 /a/b 意味着将 /c“挂”到 /a/b 分支上,导致 /a/b/c
这是不正确的。
首先,有很多方法可以引用文件系统(例如,最常见——在大多数情况下也是最安全的——方法是使用 UUID,尝试lsblk -o +UUID,LABEL以普通用户身份运行以查看内核知道的 ID)但它们都没有影响在实际结果路径上。
因此,在挂载时,您需要提供一个路径(该路径称为挂载点并且必须已经存在)。挂载文件系统后,它的根目录就可以在您提供的路径中访问——而不是它的子目录。
- 我们可以只挂载整个分区,还是可以挂载该分区的一部分?请详细说明。
从理论上讲,您可以在单个分区上拥有多个文件系统,但是您需要特定的软件才能在那里找到它(truecrypt 用于执行此操作,IIRC)。
如果您只想挂载文件系统的一部分,那么同样,理论上这是可能的,但内核不会这样做。从理论上讲,您可以设计一个只允许部分挂载的文件系统,然后为其编写驱动程序,但我想这将是困难的和不可能的。AFAIK,没有一个常用的文件系统支持这一点。
- 我们是否将一个分区挂载到另一个已经挂载的分区上?
是的,你可以做到。您可以在同一路径上挂载任意数量的文件系统,并以任何顺序卸载它们。但是,只有最后安装的文件系统可以访问。
实际上,某些程序通常会这样做,例如出于安全原因:挂载文件系统,在其上打开文件,然后在同一路径上挂载其他内容。现在没有其他进程可以访问第一个文件。
例如,某些 d 安装在 /mnt 上,现在我可以将另一个 /e 安装到 d 上,创建 /mnt/d/e 吗?或者我们可以/应该只挂载到“固定分支”,例如 /, /mnt ?如果可能,如果我们卸载 /d 会发生什么,/e 也会自动卸载吗?
如果您在 /mnt 上挂载文件系统,并且该文件系统恰好包含例如。目录 'foo',那么你可以使用这个目录来挂载另一个文件系统。但是内核不会让您卸载正在使用的文件系统。打开一个文件,让进程 chdir 到一个目录,并使用一个目录作为挂载点都算作“正在使用”。
挂载到“固定分支”,例如 /,
哦,顺便说一句,永远不要这样做。不要将任何东西直接挂载到 /; 这很可能会立即破坏您的系统。
- 我们可以挂载到具有不同文件系统的东西上吗
是的。事实上,对于任何常见的发行版,当您进入登录屏幕时,您有大约 5 个不同的文件系统(嘿,现在我的 Fedora 机器上有 16 个)安装在 / 下的某个位置。
运行mount以查看当前安装了哪些文件系统。
- 假设设备 sda 有 2 个分区 sda1、sda2。在通常的实践中,人们会在他们想要的任何挂载点进行挂载,例如 /sda1 到 /a/sda1 ,sda2 到 /b/c/sda2 ,还是挂载到同一目录?
据我所知,唯一的要求是挂载点(即目录)必须已经存在。除此之外,您可以提出任何适合您需求的方案。文件系统位于同一磁盘上这一事实没有任何限制。
毕竟,您甚至可以稍后将文件系统移动到不同的介质并重新安装它。例如,如果磁盘出现故障或您需要更多空间,您会这样做。
关于命名,这是一个为什么首先需要文件系统的问题。通常有一个单独的(大)文件系统只用于用户主目录。主目录的自然位置是 /home,所以诀窍是将该文件系统挂载到此路径。对于服务器,以这种方式分隔 /var 通常是有利的。但是,如果您只想要一个单独的存储空间,您始终可以将其挂载到任何未使用的路径(例如 /finance),只要该路径对您的用户来说是唯一且有意义的(我猜 /sda1 不会只是 YMMV ;)) .
- [...] 如何创建一些虚拟或临时分区/文件系统来测试和学习挂载和挂载点?
参见 Archemar 的回答。(顺便说一下,它应该适用于任何常见的 GNU/Linux 发行版,而不仅仅是 Fedora 22。)