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