parted 创建了一个 XFS 分区,而我要求使用 ext4。为什么?

parted 创建了一个 XFS 分区,而我要求使用 ext4。为什么?

我将一个新的硬盘驱动器连接到我的计算机(Ubuntu 14.04.4 LTS x64),我可以使用以下命令查看它sudo lshw -C disk

  *-disk
       description: ATA Disk
       product: ST6000NM0024-1HT
       vendor: Seagate
       physical id: 0.0.0
       bus info: scsi@1:0.0.0
       logical name: /dev/sdb
       version: SN05
       serial: Z4D90E30
       size: 5589GiB (6001GB)
       configuration: ansiversion=5 sectorsize=4096

我在其上创建了一个 GUID 分区表 (GPT) sudo parted /dev/sdb mklabel gpt,我可以看到:

username@server:~$     sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

然后,我ext4使用sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB.我可以看到新标签:

username@server:~$     sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB  xfs          primary

为什么文件系统是xfs我要求的那样ext4

当我随后使用 创建分区时sudo mkfs.ext4 /dev/sdb1,该分区被标记为ext4,但我想知道这是如何xfs出现的。

答案1

Parted 实际上并不创建文件系统。它仅创建分区。您传递到的文件系统类型mkpart不会记录在任何地方。

当您要求parted打印信息时,它会查看分区的内容。看起来您曾经在一个分区中有一个 xfs 文件系统,该分区与当前分区号 1 的位置相同。由于您尚未向该分区写入任何内容,因此旧内容仍然存在,如果 xfs 文件系统是小于 6001GB,并且如果那里确实存在文件系统而不是巧合(例如文件系统映像文件的开头恰好位于该位置),那么它甚至仍然有效并且可以安装。

那么为什么要在运行时指定文件系统类型呢mkpart?影响取决于分区格式。和GPT分区时,文件系统类型用于确定分区类型。ntfs将分区类型设置为 Windows 使用的 GUID、swap将分区类型设置为交换的 GUID 等。 xfs 和 ext4 都映射到的默认设置是为 Linux 数据设置 GUID。无论文件系统类型如何,这都是相同的 GUID,这是有道理的,因为GUID应该指示分区上存储的内容(例如 Linux 文件),而不是它们的组织方式。

相关内容