重新格式化/分区对齐后硬盘显示已满,该怎么办?

重新格式化/分区对齐后硬盘显示已满,该怎么办?

我有一个 8 TB 的驱动器,以前是 Windows 格式化的 NTFS 驱动器。在这个驱动器上,我有一个大文件,大小为 7 TB(7.696.581.394.432 字节)。

我将操作系统切换为 Linux,发现fdisk -l系统提示分区未对齐。我使用正确的对齐方式和 ext4 文件系统格式重新格式化了驱动器。

我使用 将所有文件移回驱动器rsync。我没有发现任何异常。它没有出现任何警告或错误。

现在我的驱动器显示已满,可用空间为 0 字节。驱动器显示有 7.937.399.177.216 字节。除了上述大文件外,我从驱动器中移走了约 200 GB 的文件。但驱动器仍然显示已满。我无法向驱动器写入任何内容。我担心我的数据被损坏了,因为这里有些不对劲。

任何关于发生了什么以及我能做什么的建议都非常好。我已经镜像了那个驱动器,所以没有其他备份……我不想丢失我的图像和文档。

输出df -HT /dev/sda1

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      ext4  8,0T  7,7T     0 100% /media/archive

输出du -h -s /media/archive/*

7,1T    /media/archive/data
16K     /media/archive/lost+found

输出sudo fdisk -l

Disk /dev/sda: 7,28 TiB, 8001563222016 bytes, 15628053168 sectors
Disk model: ST8000AS0002-1NA
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt

Device     Start         End     Sectors  Size Type
/dev/sda1   2048 15628053134 15628051087  7,3T Linux filesystem

输出df -i

Filesystem        Inodes  IUsed     IFree IUse% Mounted on
/dev/sda1      244191232     12 244191220    1% /media/archive

输出sudo lsof +L1

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NLINK  NODE NAME
pulseaudi  816  spe    6u   REG    0,5 67108864     0 30384 /memfd:pulseaudio (deleted)
pulseaudi  823  gdm    6u   REG    0,5 67108864     0 31009 /memfd:pulseaudio (deleted)
Xorg      1029  gdm   23u   REG    0,5        4     0 33053 /memfd:xshmfence (deleted)

答案1

文件系统中有一些空间是为 root 进程保留的。这意味着,如果您是 root,您可能会看到 100% 且可用空间为 0,但实际上还有空间可供使用。

所以,如果我理解了您的问题,您可以做的就是以 root 身份复制其余文件。

如果你想知道为什么为 root 保留了空间,请检查这个问题,其中甚至引用了内核开发人员对此问题的论述。

因此,您仍然有一些剩余空间,但不是供普通用户使用的。当磁盘使用率为 94% 时,您将能够看到一些供普通用户使用的可用空间。

您可以通过创建文件系统并填充它来检查这一点,例如:

# create a 10M disk
dd if=/dev/zero of=mytestdisk bs=1M count=10

# format it to ext4
/usr/sbin/mkfs -t ext4 mytestdisk

# mount it
sudo mount mytestdisk MOUNTPOINT

# put a big (disk-wise) file in
dd if=/dev/zero of=/MOUNTPOINT/fillitup.txt bs=1M count=8

如果你现在运行,df你会看到以下内容:

S.ficheros     bloques de 1K   Usados Disponibles Uso% Montado en
[...]
/dev/loop0              8887     8364           0 100% /MOUNTPOINT

尽管这可以工作(以 root 身份):

sudo date > /MOUNTPOINT/date.txt

虽然这不会(作为普通用户):

date > /MOUNTPOINT/date.txt

答案2

我将操作系统切换为 Linux,发现 fdisk -l 告诉我分区未对齐。我使用正确的对齐方式和 ext4 文件系统格式重新格式化了驱动器。

对齐是在分区上操作的过程。格式化不会修复对齐不匹配问题,因为它是在分区内操作。您应该描述您实际做了什么。

相关内容