스마트 도구가 아닌 여러 도구를 사용하면 3TB 디스크의 실제 크기가 약 800GB로 표시되는 이유는 무엇입니까?

스마트 도구가 아닌 여러 도구를 사용하면 3TB 디스크의 실제 크기가 약 800GB로 표시되는 이유는 무엇입니까?

시스템 디스크가 고장 나기 시작해서 종료 시간 10분전에 하드가 다 떨어져 새 하드를 구입했습니다 :/ 32비트 시스템 디스크입니다. 비교적 초기에 저는 Seagate Barracuda 2TB를 검토했지만 영업사원의 설득으로 3TB WD Red NAS 드라이브를 예비용으로 구입했습니다.많은의 고객이 지난 몇 달 동안 오류가 있는 Seagate 디스크를 반품했습니다. Seagate는 다양한 색상으로 제공됩니다. 비용과 잠재의식 때문에 2TB에서 3TB로 이동그 리그– 그리고 강제로 GPT를 실행합니다. 예를 들어, NAS 디스크는 OS 디스크로 작동해야 합니다. 예를 들어, 연중무휴 24시간 실행되고 인코딩 등(예: 낮은 I/O)과 같은 많은 활동이 있고 게임이 없고 카메라 라인 변환과 같은 일부 미디어 처리, 렌더링(그러나 이는 대부분 클러스터에 의해 수행됩니다.

내 주요 질문은 다양한 도구를 사용하는 디스크 크기에 관한 것입니다.

(f) 디스크:

#fdisk -l
#disk -l

Disk /dev/sdc: 801.6 GB, 801569726464 bytes
255 heads, 63 sectors/track, 97451 cylinders, total 1565565872 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
Disk identifier: 0x00000000

lsblk:

#lsblk
sdc      8:32   0 746.5G  0 disk

창사:

#lshw -class disk
*-disk
     description: SCSI Disk
     physical id: 0.0.0
     bus info: scsi@2:0.0.0
     logical name: /dev/sdc
     size: 746GiB (801GB)
     configuration: sectorsize=512
  • 둘 다 764GiB를 생성하는 이유는 무엇입니까? 문제가 있을까요?

  • 여기에는 GPT가 필요하므로 주의해야 할 사항이 있나요? 예를 들어 32비트에 문제가 있나요?

영리한:

모두 완료되었으며 smartctl -t <conveyance|short>결과는 괜찮습니다.

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%         0         -
# 2  Conveyance offline  Completed without error       00%         0         -

SMART는 또한 정확한 치수를 생성합니다(분명히).

# smartctl --info /dev/sdc
smartctl 5.43 2012-06-30 r3573 [i686-linux-3.5.0-51-generic] (local build)

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD30EFRX-68EUZN0
Serial Number:    WD-XXXXXXXXXXXX
LU WWN Device Id: X XXXXXX XXXXXXXXX
Firmware Version: 82.00A82
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ACS-2 (revision not indicated)
Local Time is:    Sat Jan 10 18:40:58 2015 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

그다지 관련성은 없지만 다양한 테스트 등에 1시간을 사용하면 다음과 같은 결과가 나옵니다.

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   253   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   100   253   021    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       1
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       6
194 Temperature_Celsius     0x0022   131   125   000    Old_age   Always       -       19
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

하위 질문:

위의 모든 사항이 정상이라면 디스크에 OS를 설치하기 전에 수행해야 할 다른 조치가 있습니까?

답변1

Debian-Ubuntu 기반 시스템(예: Linux Mint)을 사용하는 경우 fdisk (util-linux 2.20.1)GPT를 이해하지 못할 것입니다.

parted -l드라이브 파티셔닝/포맷을 시도해야 합니까 ? gparted(GUI를 사용하는 경우) 사용하기가 더 쉬울 수 있습니다.

잘 모르겠습니다 lsblk. 에서 읽는다고 합니다 sysfs. 드라이브에 작은 파티션만 있거나 이상한 MBR/GPT가 있을 수 있습니다.

그러나 Cristian Ciupitu의 의견과 Seagate의 링크는 매우 유망해 보이지만 Windows 드라이버에 관한 것 같습니다...

수색"분리 오류: /dev/sdc: 인식할 수 없는 디스크 레이블"이 링크를 열면 원하는 대로 작동하는 것 같습니다.Linux에서 Parted GPT를 사용하여 크기가 2TB보다 큰 파티션을 만드는 방법. 굵게 표시했습니다(과장된?) 오류 메시지는 GPT가 생성된 후에 사라져야 합니다. ( gparted비슷하거나 사용하기 더 쉬울 것이라고 확신합니다 .)

아래와 같이 parted의 mklabel 명령을 사용하여 디스크 레이블을 GPT로 설정합니다.

# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print

Error: /dev/sdb: unrecognised disk label

(parted) mklabel gpt

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

[그런 다음 계속해서 파티션을 생성하지만 위의 명령이 가장 관련성이 있어 보입니다.]

Parted mkpart를 사용하여 >2TB 파티션 생성

2TB보다 큰 파티션을 생성하려면 아래와 같이 parted의 mkpart 명령을 사용하십시오. 이 예에서는 약 6TB 크기의 파티션을 생성합니다.

# parted /dev/sdb

(parted) mkpart primary 0GB 5909GB

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5909GB  5909GB               primary

GPT 생성 시도가 실패하면 검색할 수 있는 몇 가지 좋은 오류 메시지가 있어야 합니다. 또는 여전히 크기가 800GB만 보고되면 디스크에 문제가 있을 수 있다고 의심하기 시작하지만 SMART에서는 괜찮다고 생각하므로 Linux 드라이버/커널이 남습니다.

당신은요아니요일종의 외부 USB 인클로저를 사용합니까? 내장 하드 드라이브처럼 컴퓨터에 직접 연결됩니까?

답변2

당신은 당신 자신의 커널을 구축한 것 같은데, 그것은 32비트 전용입니다. 2TB가 넘는 디스크에 액세스하려면 활성화해야 합니다.CONFIG_LBDAF(대형(2TB+) 블록 장치 및 파일 지원) 그러나 그것이 없으면 크기는 32비트 모듈로로 래핑하는 대신 2TB로 제한될 것이라고 확신할 수 있습니다.

답변3

게시하다"답변", 이 정보를 사용하면 질문이 약간 혼란스럽고 길어질 수 있기 때문에 이는 관찰에 가깝습니다.

몇 가지 테스트를 더 수행했습니다. 및 를 사용하는 간단한 ioctl()C 코드입니다 lseek().

ioctl BLKGETSIZE64  : 801569726464 (Same value as the tools)
ioctl BLKGETSIZE    :   1565565872 (Same as sectors reported by fdisk)
lseek Size          : 801569726464

소스 코드를 잠깐 살펴보면 모두 sysfs를 사용하여 크기 데이터를 얻는다는 lsblk것을 알 수 있습니다 . (가져가다fdisklshwioctl()"그들은 사용한다"몇 가지 온라인 리소스를 살펴봤기 때문에 여기서는 매우 간단합니다. )

lsblk섹터( /sys/block/sdc/size)를 사용하여 왼쪽으로 9만큼 이동합니다. (× 512 또는 × 2^9라고도 함)

Sectors: 1565565872                      (From printout in Q)
         1565565872 << 9 = 801569726464

보고서 크기를 자세히 살펴보고 내 두뇌를 십진수 대신 이진수로 전환하는 것도 금방 깨달았습니다.

3000592982016 = 00101011101010100001010001110110000000000000 (44-bits (48))
 801569726464 =     1011101010100001010001110110000000000000 (40-bits)

또한:

Size by SMART - Size by tools (in effect kernel)
3000592982016 - 801569726464 = 2199023255552 == 2^32 * 512 or 2^32 << 9

fdisk일부 컨트롤러 문제를 나타낼 수 있는 SMART의 4096과 달리 물리적 섹터 크기도 512로 보고됩니다.

답변4

나에게 문제는 외부 USB 인클로저와 함께 (동일한 드라이브 모델)을 사용하고 있다는 것입니다. SATA 커넥터에 직접 꽂았더니 3TB로 인식되기 시작하더군요. 동일한 문제가 발생하고 USB 커넥터를 사용하여 드라이브를 연결하는 경우 드라이브를 SATA 연결에 직접 연결해 보십시오.

@phuclv가 지적했듯이 SuperUser는 이에 대해 잘 설명합니다.https://superuser.com/questions/1101839/why-would-a-3tb-disk-show-as-being-746gib

관련 정보