ext4-fs: 기하학 오류: 블록 수가 장치 크기를 초과합니다.

ext4-fs: 기하학 오류: 블록 수가 장치 크기를 초과합니다.

노트북에 사용하는 2TB 디스크가 있습니다. 디스크가 ext4로 포맷되어 있고 내 노트북에서는 제대로 작동하지만, (sata-usb 어댑터를 통해) 데스크탑에 연결하면 다음 오류로 인해 마운트할 수 없습니다.

데스크탑에서:

# mount /dev/sdd1 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sdd1, missing codepage or helper program, or other error.
# dmesg | grep sdd
[ 6978.692452] sd 11:0:0:0: [sdd] 3907029166 512-byte logical blocks: (2.00 TB/1.82 TiB)
[ 6978.692604] sd 11:0:0:0: [sdd] Write Protect is off
[ 6978.692606] sd 11:0:0:0: [sdd] Mode Sense: 03 00 00 00
[ 6978.692799] sd 11:0:0:0: [sdd] No Caching mode page found
[ 6978.692803] sd 11:0:0:0: [sdd] Assuming drive cache: write through
[ 6978.789625]  sdd: sdd1
[ 6978.789631] sdd: p1 size 3907027120 extends beyond EOD, enabling native capacity
[ 6978.792344]  sdd: sdd1
[ 6978.792346] sdd: p1 size 3907027120 extends beyond EOD, truncated
[ 6978.793299] sd 11:0:0:0: [sdd] Attached SCSI disk
[ 7002.085079] EXT4-fs (sdd1): bad geometry: block count 488378390 exceeds size of device (488378389 blocks)

# fdisk -l /dev/sdd
Disk /dev/sdd: 1.8 TiB, 2000398932992 bytes, 3907029166 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa3bf120c

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdd1        2048 3907029167 3907027120  1.8T 83 Linux

노트북에서:

# dmesg | grep sdb
[    6.747344] sd 1:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
[    6.747347] sd 1:0:0:0: [sdb] 4096-byte physical blocks
[    6.747369] sd 1:0:0:0: [sdb] Write Protect is off
[    6.747372] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    6.747407] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    6.769650]  sdb: sdb1
[    6.770587] sd 1:0:0:0: [sdb] Attached SCSI disk
[   14.128886] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: data=ordered
here I tried remount it, and it worked fine:
[  286.189504] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)

# fdisk -l /dev/sdb
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
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: dos
Disk identifier: 0xa3bf120c

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdb1        2048 3907029167 3907027120  1.8T 83 Linux

내 질문은: 한 컴퓨터가 다른 컴퓨터와 디스크의 섹터 수를 다르게 표시하는 이유는 무엇입니까? 불량 블록이 있는지 확인했는데 아무것도 발견되지 않았습니다.

답변1

이는 USB 인터페이스 어댑터에 결함이 있을 때 발생합니다. 어댑터 오류의 가능한 원인:

  • 어댑터가 너무 오래되었습니다.

  • 저렴한 어댑터

  • 어댑터 펌웨어 오류

이러한 오류는 다음과 같이 더 자주 발생합니다.고급 형식운전사.

일부 어댑터는 레거시 형식 드라이브를 에뮬레이트하기 위해 AF 드라이브 상호 작용을 "변환"하려고 시도합니다.

이는 다음을 수행할 수 있음을 의미합니다.

  1. USB 어댑터를 사용하여 드라이브를 포맷하고 두 컴퓨터 모두에서 USB 어댑터를 계속 사용하십시오.

  2. 드라이브를 포맷할 필요가 없도록 더 나은 USB 어댑터를 구입하세요.

  3. 두 컴퓨터 모두에서 내부 SATA 커넥터를 사용하십시오.

포맷하면 드라이브의 모든 데이터가 삭제됩니다.

답변2

보고된 크기의 차이는 매우 작습니다. 3907029166과 3907029168(2개 섹터 = 1KB)에 불과합니다. 노트북을 데스크탑 시스템으로 이동하기 전에 노트북의 파일 시스템과 파티션을 축소하여(더 큰 크기 보고) 이를 달성할 수 있습니다.

첫째, resize2fs파일 시스템을 1블록씩 축소할 수 있습니다. 이 정도면 충분할 수 있습니다.

그러나 파티션 테이블이 작성되는 방식에 따라 파티션을 그렇게 작은 양으로 축소하지 못할 수도 있습니다(예: 전체 트랙 또는 1MB 등이 필요할 수 있음). 이런 경우에는 parted이러한 세부 사항을 알고 있는 이와 같은 것을 사용하는 것이 더 나을 수도 있습니다.

USB 어댑터가 서로 다른 크기를 보고하는 데는 여러 가지 이유가 있습니다. 어댑터는 단순 반올림을 사용하거나 내부 디스크 레이블을 추가할 수 있습니다.

관련 정보