df가 거대한 외부 디스크 공간을 보고하는 이유

df가 거대한 외부 디스크 공간을 보고하는 이유

32GB 외장디스크를 연결하고 마운트했습니다. 모든 세부 정보는 다음 명령에 제공됩니다.

# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  32G  0 disk /storage/1

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb         64Z   64Z   32G 100% /storage/1

# df
Filesystem                1K-blocks                 Used Available Use% Mounted on
/dev/sdb       73786976294837417744 73786976294804701208  32700152 100% /storage/1

# du -sh /storage/1
4.0K    /storage/1

# mount | grep /dev/sdb
/dev/sdb on /storage/1 type ext4 (ro,relatime,errors=continue,data=ordered)

# grep /dev/sdb /etc/fstab
/dev/sdb /storage/1 ext4 rw,noatime,nodiratime 0 0

# findmnt
TARGET                                SOURCE      FSTYPE      OPTIONS
/                                     /dev/sda1   ext4        rw,relatime,errors=remount-ro,stripe=32592,data=ordered
`-/storage/1                          /dev/sdb    ext4        ro,relatime,errors=continue,data=ordered

질문:

출력을 보면 df디스크의 크기가 매우 이상하고 거대하다는 것을 알 수 있습니다. 디스크가 전혀 사용되지 않습니다. df(아래 Avail)는 디스크 크기인 32GB로 보고합니다. 또한 du보고서는 4KB입니다.

df그래서 나는 이 장치의 출력에 어떤 문제가 있을 수 있는지 이해할 수 없습니다 .

Google 검색 중 하나는 /dev/sdb파티션을 만든 다음 포맷하는 것보다 포맷하는 것이 /dev/sdb1문제일 수 있다고 제안했습니다. 그러나 동일한 규칙을 따르는 서버가 많이 있는데 그 중 어느 것도 이 문제가 없습니다.

고쳐 쓰다:

@Stephen이 제안한 것처럼 파일 시스템이 건강하지 않은 것 같습니다.

# dumpe2fs /dev/sdb
dumpe2fs 1.43.4 (31-Jan-2017)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb
Couldn't find valid filesystem superblock.

이것 은 실패 했습니다 dumpe2fs. 또한 dmesg해당 디스크에 대한 몇 가지 오류가 기록되는 것을 확인했습니다.

[Tue Sep 21 15:52:28 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm ls: lblock 0 mapped to illegal pblock 9253 (length 1)
[Tue Sep 21 15:52:28 2021] EXT4-fs error (device sdb) in ext4_reserve_inode_write:5460: Corrupt filesystem
[Tue Sep 21 15:52:30 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm ls: lblock 0 mapped to illegal pblock 9253 (length 1)
[Tue Sep 21 15:52:34 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #8: block 4227126: comm jbd2/sdb-8: lblock 54 mapped to illegal pblock 4227126 (length 1)
[Tue Sep 21 15:52:34 2021] jbd2_journal_bmap: journal block not found at offset 54 on sdb-8
[Tue Sep 21 15:52:34 2021] Aborting journal on device sdb-8.
[Tue Sep 21 15:53:41 2021] systemd[1]: apt-daily-upgrade.timer: Adding 33min 33.126422s random time.
[Tue Sep 21 15:53:41 2021] systemd[1]: apt-daily.timer: Adding 2h 35min 49.981791s random time.
[Tue Sep 21 15:53:55 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm du: lblock 0 mapped to illegal pblock 9253 (length 1)
[Tue Sep 21 15:53:59 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm ls: lblock 0 mapped to illegal pblock 9253 (length 1)
[Tue Sep 21 15:54:01 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm du: lblock 0 mapped to illegal pblock 9253 (length 1)
[Tue Sep 21 16:18:49 2021] systemd[1]: apt-daily-upgrade.timer: Adding 38min 44.297529s random time.
[Tue Sep 21 16:18:49 2021] systemd[1]: apt-daily.timer: Adding 3h 34min 3.596906s random time.
[Wed Sep 22 17:03:22 2021] EXT4-fs (sdb): error count since last fsck: 7
[Wed Sep 29 02:50:32 2021] EXT4-fs (sdb): initial error at time 1632219748: ext4_map_blocks:567: inode 2: block 9253
[Wed Sep 29 02:50:32 2021] EXT4-fs (sdb): last error at time 1632219841: ext4_map_blocks:567: inode 2: block 9253
[Thu Sep 30 04:28:24 2021] EXT4-fs (sdb): error count since last fsck: 7
[Fri Oct  1 06:06:15 2021] EXT4-fs (sdb): initial error at time 1632219748: ext4_map_blocks:567: inode 2: block 9253
[Fri Oct  1 06:06:15 2021] EXT4-fs (sdb): last error at time 1632219841: ext4_map_blocks:567: inode 2: block 9253
[Fri Oct  1 13:11:23 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm du: lblock 0 mapped to illegal pblock 9253 (length 1)
[Fri Oct  1 13:11:23 2021] EXT4-fs error (device sdb): ext4_journal_check_start:56: Detected aborted journal
[Fri Oct  1 13:11:23 2021] EXT4-fs (sdb): Remounting filesystem read-only
[Fri Oct  1 13:17:35 2021] EXT4-fs error (device sdb): ext4_map_blocks:567: inode #2: block 9253: comm du: lblock 0 mapped to illegal pblock 9253 (length 1)

이 상자에서(위의 dmesg 오류에 표시된 대로):

# hostname -i && dmesg -T | grep 'inode 2: block 9253' | wc -l
10.53.242.33
18

그래서 클러스터에 있는 다른 유사한 서버 2개를 살펴보았습니다.클릭하우스 데이터베이스이 클러스터에서) 동일한 문제가 관찰됩니다.

# hostname -i && dmesg -T | grep 'inode 2: block 9253' | wc -l
10.52.115.33
610

# hostname -i && dmesg -T | grep 'inode 2: block 9253' | wc -l
10.53.98.72
171

그래서 3개의 서버가 모두 별도의 32GB 장치에 연결되어 있는데 어떻게 정확히 동일한 inode와 블록에 대해 불평할 수 있는지 궁금합니다.

문제를 무시하고 이 상자에서 내 디스크가 불량하다고 말할 수 있습니다. 이는 충분히 합리적인 결론이지만 동일한 inode와 블록을 가진 다른 서버에서 똑같은 오류가 발생하는 것은 약간 혼란스럽습니다. 또한 두 서버 모두 dumpe2fs동일한 "잘못된 매직 넘버" 오류를 보고하지 못합니다 .

답변1

파티션 테이블이 손상되었습니다. 데이터에 관심이 없다면 파티션을 마운트 해제하고 디스크를 다시 파티션하세요. 물리적으로 손상될 수도 있으므로 폐기해야 합니다.

나는 이렇게 할 것이다:

umount /storage/1
cat /dev/zero > /dev/sdb
fdisk /dev/sdb (or any other tool, including parted, gparted, gdisk, etc.)
mkfs.[whatever] /dev/sdbX

관련 정보