我有点困惑(即使读完之后这)关于 *nix 分区如何工作的帖子。
据我了解,sda
通常指的是磁盘sda1
,sda2
、 等,指的是位于磁盘上的第一个、第二个分区等。这似乎合乎逻辑,但后来我也读到了一些目录(或者我认为它们是目录),实际上是分区,例如/boot/
、/var
和/tmp
。
这些分区位于哪里?如果sda
是磁盘并且 lsblk 显示上仅有的分区sda
-sda1
并且sda8
这 8 个分区从头开始一直到磁盘的末尾,那么这些其他分区可能存在于哪里?
- 目录就像
/boot
分区/var
一样吗? - 如果是,它们相对于分区位于磁盘上的什么位置
sdaX
? - 我似乎无法从parted、fdisk 或lsblk 中找到有关这些目录/分区的任何信息。我怎样才能在我的机器上找到有关这些的更多信息?
- 如果
/dev/sda
是磁盘,那么 是什么/
,它在哪里sda
?
答案1
/dev
不包含任何分区。/dev
是一个事实上的标准地方来保存所有设备节点。最初,/dev
它是根文件系统中的一个普通目录(因此创建的设备节点在系统重新启动后仍然存在)。如今,大多数 Linux 发行版都使用 RAM 支持的特殊虚拟文件系统。
对于特定分区上的某些文件系统或所需的分区总数,没有任何类型的标准。
不过,有许多良好实践/特定于发行版的标准可以将系统的各个部分放置在单独的分区上。
您可以找到一个占用单个分区来满足其所有需求的 Linux 安装。
在多分区安装中,“/boot”通常是一个单独的分区,以保持 BIOS 和/或引导加载程序的可读性。此外,某些引导加载程序和内核对要使用的根文件系统类型有限制。
在大多数情况下,剩下的取决于您,因此您可以根据需要将磁盘拆分为分区(数据存储要求、临时文件、日志等)
答案2
文件系统中的文件或目录实际上不需要与磁盘上的任何内容相对应。例如,您可以让一个文件系统(及其文件)或其一部分完全存在于内存中。
但它们根本不必是文件,至少在我们通常使用该术语的意义上是这样。将文件系统及其“文件”视为抽象接口。几乎所有文件都将简单地对应于磁盘(或其他存储设备)上某处的文件,但理论上它可以对应于任何可以处理流格式数据的文件。当然,除了管道和套接字等特殊东西之外,在 /dev 目录之外很少看到这种东西。
例如,虽然这可能有点过于简单化,但您的计算机上可能有一个名为 /dev/someport 的端口,并且将字符串“foo”写入此“文件”实际上会通过该端口发送字符串“foo”,而无需触摸任何磁盘上的任何内容。
答案3
唯一类似于分区的/dev/
是udev
它是一个用于动态设备分配的伪文件系统,这是一个内核功能,可以使设备文件灵活且易于使用。
您在 中看到的/dev/
设备文件实际上指的是真实设备,包括硬盘驱动器(/dev/sda
)及其分区(/dev/sda1
)。
分区安装在所谓的安装点上:分区在现有文件系统树中链接的位置。
/
是主(根)分区安装点。 /boot/
通常是引导分区的安装点。 /var
通常不是挂载点。 /tmp
通常是tmpfs
专门为处理内存中的临时文件而设计的文件系统。
要列出已安装的分区,请使用mount
。预定义的安装点在 中定义/etc/fstab
。
答案4
/boot
并且/var
不一定在自己的分区上,但您可以在安装 *nix 操作系统时这样做...我个人/home
有自己的分区
这些文件夹真正包含的数据位于实际硬盘驱动器的某些部分,并且我猜这些/dev/sda*
文件只是有关实际磁盘分区的信息(例如它在磁盘上的开始和结束,它的文件系统......)
您没有获得有关这些假定分区的信息,也许只是您没有它们。您可能在安装 Ubuntu(或 *nix)时跳过了此选项。
所以/dev/sda
不是磁盘本身,而是描述硬盘驱动器的文件。
如果您有引导分区,/
通常是您的分区/dev/sda2