`/proc/partitions` 和/或 `fdisk -l /dev/sdX` 是否為我提供了可靠的裝置大小?

`/proc/partitions` 和/或 `fdisk -l /dev/sdX` 是否為我提供了可靠的裝置大小?

我有兩個3TB的磁碟,我希望是尺寸完全相同。這意味著我可以用來dd複製它們而不會短或超過一些位元組。

因此我試圖找出 HDD 區塊設備的容量/大小,並為此使用

fdisk /dev/sdX -l | grep "Disk /dev/sdX"

在我的情況下,這兩個設備可以通過/dev/sda/dev/sdb並使用我收到的上面的命令進行訪問

Disk /dev/sda: 3000.6GB, 3000592982016

Disk /dev/sdb: 3000.6GB, 3000592982016

令我欣慰的是,這兩款設備的尺寸似乎完全相同。這是它們具有確切的位元組數。

我的問題

這個資訊可信嗎?特別是我想知道硬碟設備在一段時間內保持字節數恆定(即既不會丟失也不會增加一些字節,即由於壞扇區等)是否至少是常見的做法/習慣?

答案1

2 個 HDD 隨著時間的推移執行的任何調整都是為了保持其可用空間(未損壞或損壞)具有相同的位元組數。所有這些都發生在您(硬碟的用戶)的較低層級上,因此我希望兩個硬碟隨著時間的推移會報告相同的容量。

筆記:所有現代硬碟都包含額外的空間儲備,當磁區出現缺陷或磨損時,可以從中提取空間。 HDD 認識到這些磁區發生故障或損壞,將從保留中重新分配,將故障磁區標記為不可用,以便它不再是可用磁區總池的一部分。

假設沒有其他災難性類型的故障,HDD 應繼續正常運行,直到該空間耗盡。一旦空間用完,硬碟將被迫修復剩餘的壞扇區。它將嘗試將這些失敗的資料重新定位到好扇區,但在此過程中將開始出現 I/O 錯誤。

筆記:您可以使用 SMART 監控 HDD 在整個生命週期中的預留空間。在看著智慧屬性我懷疑這個計數將是#5:

5-重新分配的扇區數未使用的備用扇區的數量。當遇到讀取/寫入/檢查錯誤時,設備會將壞扇區重新對應到從特殊保留池中取得的「健康」扇區。此屬性的標準化值隨著可用備件數量的減少而減少。在 SSD 上,原始值表示故障快閃記憶體區塊的數量。

您可以使用smartctl該包中通常包含的工具smartmontools(無論如何,Fedora 20 上是這樣稱呼的)來檢查這一點。

$ sudo smartctl --all /dev/sda

此輸出中有很多有用的信息:

smartctl 6.2 2014-07-16 r3952 [x86_64-linux-3.16.3-200.fc20.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     LITEONIT LMT-256M3M
Serial Number:    002244119905
LU WWN Device Id: 5 000000 000000000
Firmware Version: VZJ4
User Capacity:    256,060,514,304 bytes [256 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS, ATA/ATAPI-7 T13/1532D revision 4a
SATA Version is:  SATA 3.0, 6.0 Gb/s
Local Time is:    Fri Oct 10 12:32:12 2014 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (   10) seconds.
Offline data collection
capabilities:            (0x15) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Abort Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    No Selective Self-test supported.
SMART capabilities:            (0x0002) Does not save SMART data before
                    entering power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x00) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  10) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 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     0x0003   100   100   070    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0003   100   100   000    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0002   100   100   000    Old_age   Always       -       2248
 12 Power_Cycle_Count       0x0002   100   100   000    Old_age   Always       -       706
171 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
173 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       12
174 Unknown_Attribute       0x0030   000   000   000    Old_age   Offline      -       126
178 Used_Rsvd_Blk_Cnt_Chip  0x0003   100   100   000    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0002   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0003   100   100   000    Pre-fail  Always       -       126
230 Unknown_SSD_Attribute   0x0032   100   100   000    Old_age   Always       -       24851
232 Available_Reservd_Space 0x0003   100   100   010    Pre-fail  Always       -       2784
241 Total_LBAs_Written      0x0003   100   100   000    Pre-fail  Always       -       86211
242 Total_LBAs_Read         0x0003   100   100   000    Pre-fail  Always       -       25145

SMART Error Log Version: 0
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Selective Self-tests/Logging not supported

我所指的資訊位於最後一個表中,ID #5。

參考

答案2

如果你想知道裝置的大小(以位元組為單位),你可以使用 blockdev:

# blockdev --getsize64 /dev/sde
2000398934016

在這個例子中/dev/sde是一個 2TB 的磁碟,或者至少,這是核心看到的。當然,fdiskparted和其他人應該顯示相同的訊息。

這個尺寸不會改變。由於壞扇區而失去容量是不可能的,這會導致無窮無盡的問題;重新分配磁區使用內部儲備,驅動器通常在用完之前就完全失效了。你應該在事情變得那麼糟糕之前更換。

有些人喜歡在磁碟末尾留下一些未分割的小空間(幾兆),因為替換磁碟的大小可能與舊磁碟的大小不完全相同,並且如果新磁碟的大小可能會使RAID 成員替換等事情變得更加困難設備似乎有點太小了。

相關內容