我有一个 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 文件系统格式重新格式化了驱动器。
对齐是在分区上操作的过程。格式化不会修复对齐不匹配问题,因为它是在分区内操作。您应该描述您实际做了什么。