我们可以在一个分区上创建两个不同的文件系统吗?

Ala*_*a S 2 filesystem partitioning storage

我目前在我的机器上使用 Ubuntu 20.04。

  1. 我们可以在一个分区上创建两个不同的文件系统吗?为什么?
  2. 另外,如果在分区中创建的文件系统的大小小于分区大小,我们将来可以扩展文件系统的大小吗?

Art*_*ild 13

免责声明:对 @Raffa 的答案超出范围的内容进行了一些哲学阐述。

正如技术进步的情况一样,旧定义的清晰边界仍然变得更加模糊。传统上,一个分区使用一个文件系统进行格式化 - 现在仍然是这种情况。

然而,新技术带来新机遇。以下是一些:

  • 虚拟机在其他文件中托管虚拟文件系统,因此可以通过这种方式拥有多个嵌套文件系统。
  • 即使包含 CD 或 DVD 介质磁盘映像的文件也以类似的方式嵌套和虚拟文件系统.iso.img
  • 对于容器来说也是如此。例如,Docker 容器在静态容器映像(文件)之上有一个单独的覆盖文件系统(具有特殊安装的特殊文件系统)。
  • ZFS 可以使用文件作为块设备 - 因此您可以再次在另一个文件系统之上创建一个“嵌套”ZFS 文件系统(对于测试目的来说主要是有意义的)。
  • 我确信还有很多我不知道的其他例子。

与此同时,LVM(以及 ZFS)等其他技术的存在也起到了相反的作用——让单个文件系统跨越多个分区或块设备。

因此,最终,只有想象力才能限制使用正确工具的可能性。困难的部分是清楚地确定您的需求,并找到合适的工具来实现它。


Raf*_*ffa 5

假设,通过“分区”,你的意思是硬盘上定义的最后一个级别和连续的物理扇区组......这是一个拗口,我知道......但分区实际上可以是其他分区的容器,例如扩展分区(包含逻辑分区)或 LVM 物理卷(包含逻辑卷)...这些超出了本答案的范围...本答案的范围仅限于那些可以使用文件系统“裸机/扇区”不在另一个文件系统上)并作为数据(目录结构下的文件)存储卷安装在操作系统下。

我们可以在一个分区上创建两个不同的文件系统吗?为什么?

,(我的意思是:操作系统用户实际上可以使用......不包括研究/取证/数据恢复情况)。

要创建和利用(安装和使用)文件系统,必须通过分区表或实际的整个磁盘边界来定义/识别物理/逻辑边界(是的,可以在没有任何分区的情况下格式化、安装和使用硬盘)完全...尽管在这种情况下,您可能需要在安装时指定文件系统类型)...内核读取磁盘上的分区表来决定分区边界、分区类型和文件系统...等等...分区表可能只包含每个分区的一种文件系统类型...当安装分区时,内核需要有一个用于该分区上的文件系统类型的模块/驱动程序,否则它将无法使用...内核只能每个分区/安装点关联一个文件系统模块/驱动程序。

另外,如果在分区中创建的文件系统的大小小于分区大小,我们将来可以扩展文件系统的大小吗?

是的,这是一种常见的做法,例如,当手动扩大具有现有文件系统的底层分区以利用未使用的相邻磁盘扇区/空间时...然后可以扩展文件系统以填充分区中新的额外空间...但是,需要使用文件系统特定工具来完成此任务,例如resize2fsext2、ext3 和 ext4 文件系统。