直接在块设备上创建文件系统,没有分区?

问题描述:

我的印象是,在/dev下列出了一个块设备,例如/dev/xvdf,并且文件系统位于分区所在的块设备后面所列的分区上,如/dev/xvdf1,并且所有文件系统都必须住在一个分区上。直接在块设备上创建文件系统,没有分区?

我正在运行CentOS,并且作为课程的一部分,我必须创建文件系统,分区和安装文件系统。在本课程中,我已经在设备文件/ dev/xvdf上创建了一个文件系统,并且已经安装了该文件系统。除此之外,我还在/ dev/xvdf上创建了一个分区,其文件名为/ dev/xvdf1,并在该分区上创建了文件系统,并安装了此文件系统。这使我困惑,我有一些问题:

  1. 我是否正确,您不必在块设备上创建分区,但您可以直接在块设备上创建文件系统而不需要分区?
  2. 如果是这样,为什么有人想这样做?
  3. 在/ dev/xvdf上创建文件系统后,我使用fdisk创建了/ dev/xvdf1分区,并将最大块分配给这个新分区。但是,/ dev/xvdf上的文件系统未被删除,并且上面仍有一个文件。如果/ dev/xvdf上的所有块已经分配给/ dev/xvdf1分区,这怎么可能?
+0

嗨,你是如何直接在块设备文件上创建文件系统的?市场上的许多SD卡都是这样格式化的。 – Daniele

+0

@Daniele,它在云服务器上。我通过'mkfs -t ext2/dev/xvdf'创建了文件系统。 – Tom

问题#1:你是对的。文件系统只需要一个连续的空间。您还可以在内存中创建文件系统(虚拟磁盘)。

问题#2:有分区表的可能性是一件好事,但是为什么如果你不需要破解一个磁盘(或其他块设备),为什么要使用它?

关于问题#3,我认为你忽视了某些东西 - 可能是某处出现了错误,而你没有注意到,或者将来会出现一些错误。即使你有印象,它也无法工作。挂载的文件系统认为拥有它保留的所有空间,同样fdisk认为它使用的块“可以使用”。顺便说一句,那是什么“/ dev/xvdf”?这是一个真正的设备或其他?

+0

谢谢你的回答。这是我从www.linuxacademy.com获得的服务器,它运行在亚马逊云中。有linuxacademy附加/ dev/xvdf设备。 如果您没有分区表,那么设备上就有一个文件系统。后来你想创建一个分区表。如何在不丢失存储在初始文件系统中的文件的情况下做到这一点? – Tom

+1

...通过将文件复制到别处... :-) – linuxfan

+0

好吧,但是在创建分区/ dev/xvdf1后,分区的最大大小,/ dev/xvdf文件系统上的文件仍然存在。所以它没有中断,但是可以在/ dev/xvdf1分区上的文件系统没有警告的情况下覆盖这些块? – Tom