使用“df”无法看到正确的磁盘大小

使用“df”无法看到正确的磁盘大小

我的电脑包含 250GB 的 SSD 和 1 TB 的 HDD。当我运行时,fdisk -l我得到所述 HDD 的以下输出:

Disk /dev/sda: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST1000LM035-1RK1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

这表明它有 1 TB 的空间。然而当我跑步时

df /dev/sda -H
Filesystem      Size  Used Avail Use% Mounted on
udev            8.3G     0  8.3G   0% /dev

它只显示8.3GB的容量。如何访问该 HDD 的剩余 990 GB 空间?感谢您提前的帮助!

答案1

您使用方法df不正确。请参阅手册页:

If an argument is the absolute file name of a disk device node containing
a mounted file system, df shows the space available on that file system
rather than on the file system containing the node.

显示的文件系统是udev安装在 上/dev并且您访问的节点位于 上/dev

您在访问 HDD 上的数据(即读取或写入)时遇到问题吗?

尝试运行:sudo fdisk -l /dev/sda.这将显示整个硬盘,包括其所有分区。

答案2

您需要指定磁盘内的分区号才能显示可用空间:

df -h /dev/sda1

答案3

从各种评论中的讨论来看,您可能根本没有使用硬盘。查看 的输出lsblk以验证是否sda没有与其关联的分区、加密设备或 LVM 卷,即只有一行提及sda并且其 TYPE 值为disk

首先,建议分割磁盘。即使您将整个磁盘用作单个分区,磁盘上的有效分区表也会向其他操作系统表明该磁盘正在使用中。如果您需要将磁盘移动到另一个系统(例如出于迁移或恢复目的),这会很有帮助。

其次,一旦磁盘分区,您将需要实际创建一个文件系统在您创建的分区上。 (在 Windows 中,这将称为“格式化”。)在 Linux 中,有多种可能的文件系统类型:ext4可能是最著名的,但XFS对于多 TB 文件系统来说可能是首选。

如果您使用类似 的 GUI 工具gparted,它可以为您执行这两个步骤。在命令行上,您可以使用fdisk /dev/sdacfdisk /dev/sda创建分区,例如mkfs.ext4 /dev/sda1mkfs.xfs /dev/sda1在其上创建文件系统。

创建文件系统后,您需要在您选择的位置为其创建一个安装点。挂载点只是一个空目录。例如:mkdir /bigdata

之后,您可能应该创建一行/etc/fstab来自动安装文件系统。假设您使用了xfs,该行可能是:

/dev/sda1 /bigdata xfs defaults 0 0

对于 ext4,该行可能是:

/dev/sda1 /bigdata ext4 defaults 0 2

(该行的最后一个字段确定文件系统是否在启动时自动检查。ext4需要这样的例行检查,同时xfs在文件系统处于活动状态时在后台处理例行完整性检查,而不是作为单独的启动时步骤。)

现在你终于可以挂载文件系统了:

mount /bigdata

成功安装文件系统后,您应该做的第一件事是将其所有权和权限设置为对您有意义的值。例如,如果这是您的个人计算机,您可以将访问权限分配给您的常规用户帐户:

chown <your_username>: /bigdata

现在您将在 处获得增加的可用磁盘空间/bigdata

答案4

当您购买磁盘时,它可能已经针对 Windows 进行了分区,但您的磁盘还没有。 fdisk 允许您创建分区,但可能不是最现代的 fdisk 实用程序。还有分区编辑器、命令行或 GUI(parted、gparted)。你可以选择你的选择。

相关内容