スマートツールではなく複数のツールを使用すると、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

レポートのサイズを詳しく見て、私の脳を10進数ではなく2進数に変換することもすぐに気づきました。

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

関連情報