何时以及为何需要对块设备进行分区?

何时以及为何需要对块设备进行分区?

可能的重复:
无分区文件系统的优点

所以我有一个块设备,比如说/dev/sda/dev/loop0。显然,如果我想从前者启动,或者我想将其细分为具有单独文件系统的段,我需要对其进行分区。但假设我没有这些需求。相反,我只是计划使用我的整个块设备作为存储。也许我会使其成为 raid 卷的一部分,或者也许我会使用 cryptsetup 对其进行加密,或者也许我会使其成为 LVM 的 PV。或者也许我只是想直接在其上安装文件系统。至少在其中一些情况下,使用未分区的设备似乎不存在任何技术障碍。这就是我们通常对由 losetup 生成的块设备所做的事情,并且对普通硬盘也可以这样做。我知道,因为我已经做到了。

现在,这样做存在危险。例如,如果你继续跑步fdisk /dev/sda,你将看不到任何有意义的东西。您可能会不小心将分区表或类似的内容写入您的设备,然后未分区设备上的数据将被传输。也许如果你在连接了设备的情况下启动Windows,它就会被淹没。人们讲可怕的故事。

但我只是想了解,如果该设备仅连接到您的 Unix 设置(为了简单起见,我们只使用 Linux),并且您从未尝试向其写入分区表或 MBR 或类似内容那么,使用未分区的存储设备还有其他缺点吗?我不建议这样做;我只是想了解不这样做的真正原因是什么。

另一方面,对块设备进行分区是否有任何障碍或缺点/dev/loop0?也许这样做并没有什么好处。但我希望它会起作用,不是吗?在这里,我提出这个问题也只是因为我想了解我们标准做法背后的原因。

答案1

内核和其他程序有时会在磁盘上查找分区,例如在启动时。如果你有一个分区表:那就太好了,它会找到它们,你可以把任何事物你想在那个分区里面。

但如果你有分区,那么你必须小心不要将某些东西放入磁盘中可能看起来就像一个分区!否则,在后续引导时,该数据可能会无意中被解释为分区表。

为了安全起见,我总是会制作一个分区表。

答案2

一般情况下不需要分区。对于引导设备,只需要 a) 允许通过 BIOS API 访问引导分区(以允许 MBR 引导加载程序正确加载 grub 或其他引导加载程序(如果后者安装到分区上))和 b) 允许引导分区可由 grub 或其他引导加载程序读取(例如,lilo 无法读取 LVM)

从所有其他角度来看,没有必要对设备进行分区,除非有某种原因。

答案3

分区只是块设备的逻辑细分(或者让我们使用大容量存储空间)。

除了限制等之外,您根本不必细分它。但是,如果您打算在那里放置文件系统,那就是另一回事了。

您可以在不分区的情况下进行格式化,只需创建文件系统结构即可。现在,如果您希望可以通过 BIOS 或其他低级内容访问此分区,那么最好使用分区表和 MBR,并在某些点保留它们的副本(分区和格式化工具可以为您做到这一点)。

这基本上是实际分区的唯一原因,除了用户(即您)的逻辑细分(无论出于何种原因)。

这可能超出了您的问题,但拥有系统分区和用户分区的优点是您可以格式化一个分区,而不会丢失另一个分区。您可能会比用户目录更频繁地格式化系统。您不需要将所有用户数据保存在外部驱动器或其他设备上。此外,您还可以使用该分区来备份一些系统设置。

相关内容