システムディスクが故障し始め、終了時間の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
。 (持っていくfdisk
lshw
ioctl()
「彼らは使う」いくつかのオンラインリソースを見たので、ここでは非常に簡単です。 )
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