`/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 成员替换等事情变得更加困难设备似乎有点太小了。

相关内容