典型的Linux系统上存在哪些安装点?


32

我有两个问题。

  1. 在Linux安装期间,我们为2个安装点指定了内存空间-root和swap。是否在没有用户通知的情况下创建了其他挂载点?
  2. 这句话是正确的吗:“只有在处理不同的分区时,挂载才会出现。也就是说,除非是/ proc,否则除非它是另一个分区,否则无法挂载”?

1
+1问题标题!如果所有新手都这么天真地问...
Caleb,

哈哈,正是我的想法呢!+1。
boehj 2011年

2
@约翰:不建议一人问两个问题。由于现在有涵盖这两个问题的答案,我想我们可以顺其自然,但是下次请分别提出不同的问题。您很难找到一个好标题(不,您的标题不是问题的一个很好的总结)是由于尝试将多个问题合并为一个问题。
吉尔(Gilles)'所以

Answers:


47

您的问题背后有误解。

  1. 未安装交换。
  2. 安装不仅限于分区。

分区

一个分区是中专门为特定目的磁盘空间slice¹。这是分区的一些常见用途。

  • 一个文件系统,即文件组织成目录树,并存储在一个格式如ext2,ext3的,FFS,FAT,NTFS,...
  • 交换空间,即用于分页(和存储休眠图像)的磁盘空间。
  • 直接应用程序访问。一些数据库将数据直接存储在分区上而不是文件系统上,以提高性能。(文件系统还是一种数据库。)
  • 其他分区的容器。例如,PC扩展分区,包含BSD分区的磁盘LVM物理卷(最终包含逻辑卷,这些逻辑卷本身也可以视为分区),…

文件系统

文件系统以分层结构表示信息。以下是一些常见的文件系统:

  • 磁盘支持的文件系统,例如ext2,ext3,FFS,FAT,NTFS等
    • 如上所示,支持不必直接在磁盘分区上。例如,这可以是LVM逻辑卷或循环安装
  • 内存支持的文件系统,例如Solaris和Linux的tmpfs
  • 提供来自内核的信息的文件系统,例如procsysfs Linux Linux。
  • 网络文件系统,例如NFSSamba ……
  • 由应用程序支持的文件系统,其中FUSE具有大量的资源。由应用程序支持的文件系统几乎可以做任何事情:使FTP服务器显示为文件系统,为文件系统提供备用视图,在该视图中文件名不区分大小写或转换为其他编码,将归档内容显示为目录,就好像它们…

安装

Unix将文件呈现在一个单一的层次结构中,通常称为“文件系统”(但在这个答案中,我不会使用“文件系统”一词来保持混乱)。必须将单个文件系统移植到该层次结构中才能访问它们。³

您可以通过挂载使文件系统可访问。挂载将要挂载的文件系统的根目录与文件层次结构中的现有目录相关联。具有这种关联的目录称为安装点。

  • 例如,根文件系统是在引导时(内核启动任何进程²之前)挂载到 /目录的。
  • 在proc文件系统上挂载了一些unix变体(例如Solaris和Linux)来公开有关进程的信息/proc,以便在proc文件系统上/proc/42/environ指定文件/42/environ,该文件系统(至少在Linux上是)包含进程环境的只读视图。 42号。
  • 如果您有一个单独的文件系统,例如for /home,则/home/john/myfile.txt指定路径/john/myfile.txt从主文件系统根目录开始的文件。

在Linux下,由于bind mounts,可以通过多个路径访问同一文件系统。

典型的Linux文件系统具有许多已挂载的文件系统。(这是一个示例;不同​​的发行版,版本和设置将导致装入不同的文件系统。)

  • /:根文件系统,在内核加载第一个进程之前挂载。引导加载程序告诉内核将什么用作根文件系统(通常是磁盘分区,但也可能是其他内容,例如NFS导出)。
  • /procproc文件系统,包含进程和内核信息。
  • /syssysfs文件系统,包含有关硬件设备的信息。
  • /dev:内存文件系统,udev根据可用的硬件自动创建设备文件
  • /dev/pts:专用文件系统,包含用于运行终端仿真器的设备文件。
  • /dev/shm:一个内存文件系统,供系统的标准库用于内部目的。
  • 根据您正在运行的系统组件,您可能会看到其他专用文件系统,例如binfmt_misc(由外部可执行文件格式内核子系统使用),fusectl(由FUSE使用),nfsd(由内核NFS服务器使用),…
  • 在引导过程中装入了在/etc/fstab(未标记为noauto)中明确提到的任何文件系统。
  • 插入可移动设备(如USB密钥)后,由HAL自动挂载的任何文件系统(或等效功能)。
  • 使用该mount命令显式挂载的任何文件系统。

¹ 在这里非正式地发言。
² initrd和如超出这个答案的范围。
³ 这与Windows不同,Windows对每个文件系统都有单独的层次结构,例如c:\\hostname\sharename


5
+10 Gilles您在哪里得到时间?我唯一的评论是,我必须给人们一些关于交换问题的懈怠,因为在/etc/fstab不挂载交换分区时将交换分区列在列表中会令人流血。
Caleb

绝对是一个愚蠢的问题...但无法阻止自己。您说“安装将目录与文件系统的根相关联。” 那么“ /”目录在哪里?
约翰,

2
@John:根本不是一个愚蠢的问题,“文件系统”和“根”这两个词在这里有两个不同的含义:有单独的文件系统(每个都有其根),还有整个目录层次结构(有它的根即/目录) 。我已经将答案的这一部分改写了,希望现在应该更清楚了。
吉尔(Gilles)'所以

这个答案非常有用-百科全书。我也希望我可以在这里+10。很棒的答案。
boehj 2011年

13
  1. 每个linux发行版都有其自己的默认分区安排。其中一些使用数十个分区,有些仅使用一个分区。3和4是相当普遍的安排(/ boot,/,swap和/ home)。一些较旧的布局通常在单独的分区上具有/ var,而极端系统则会在单独的分区上将/ var / *和/ opt / *中的所有内容都包含在内!在回答您的问题时,我能做出的最好的概括是,在没有用户注意或无法更改的情况下,unix世界无法完成任何工作
  2. 您可以挂载不是分区的东西。例如,/ proc通常不是分区,它是内核提供的伪文件系统,允许您读取和写入有关正在运行的进程的数据,就好像它们是文件一样。您还可以使用环回设备挂载文件(例如ISO的文件),就好像它们是驱动器一样,将挂载文件夹绑定到其他位置,以及执行其他各种忍者技巧。

1
引导时自动挂载的所有分区都在中/etc/fstab。如果您在此处添加分区,则下次启动时该分区就会存在。
LawrenceC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.