2012年12月10日月曜日

3TB ディスクから CentOS 6.3 をブート

バックアップ用に 3TB のディスク (WD30EZRX/K) を購入しました。

まずは、Windows 7 で採取した CrystalDiskInfo の結果です。
ZALMAN ZM-HE350 U3E というケースに格納し、ThinkPad T510 に eSATA 接続しています。WD30EZRX/K は NCQ に対応していますが、このケース経由だと NCQ が使えません (他のドライブでも確認・経験済み) 。その点はちょっと残念。

さて、CentOS 6.3 ならば、UEFI 非対応のマシン (ThinkPad T510 も勿論非対応) でも、3TB ディスクからブート可能という情報がありましたので、実際にやってみました。他のドライブが繋がっているとヤヤコシイので、一旦 3TB ディスク以外は外してインストールしました。その後に、内臓 SSD などを戻しています。また、ThinkPad の BIOS でブートオーダーを変更して起動しました。
# parted -s /dev/sdc print
Model: ATA WDC WD30EZRX-00D (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name                  Flags
 1      1049kB  211MB   210MB   ext4                                  boot
 2      211MB   21.2GB  21.0GB  ext4
 3      21.2GB  23.3GB  2097MB  linux-swap(v1)
 4      23.3GB  3001GB  2977GB  ntfs            Basic data partition

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdc2             20158332   4737476  14396856  25% /
tmpfs                  3986236       260   3985976   1% /dev/shm
/dev/sdc1               198337     51449    136648  28% /boot

# ls -l /dev/root
lrwxrwxrwx. 1 root root 4 Dec  9 22:10 /dev/root -> sdc2

# uname -a
Linux xxxx 2.6.32-279.14.1.el6.i686 #1 SMP Tue Nov 6 21:05:14 UTC 2012 i686 i686 i386 GNU/Linux
このように、うまく動作しました。
Fedora 16 以降なら、grub2 を使って GPT ラベルを付与したディスクからブート可能とは知ってましたが、grub1 でも対応パッチがあるようで、CentOS 6.3 の grub に取り込まれていたようです。

2012年12月1日土曜日

中古 SSD の SecureErase

某ショップにて中古の Intel SSD 320 600G を入手しました。GB単価が安かった(約50円)ため、思わず衝動買い。

中古ということで、総書き込み量はそれなりかと思っていたのですが、初回接続時にWindows7からCrystalDiskInfoで見てみると、次のような具合でした。
注: DeLOCK 42492 という eSATA/USB3.0 両対応のケースを使ったのですが、そのケース経由だと NCQ が使えないようです。下の CentOS6 のデータは、ケースから取り出して eSATA-SATA ケーブルで接続した場合です。SATA 電源は USB から供給。DeLOCK ケースはちょっと残念。

次は、CentOS6 で起動後の smartctl および hdparm のデータです。
# uname -a
Linux xxx 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

# dmesg | egrep 'ata5|sdc'
ata5: SATA max UDMA/133 irq_stat 0x00400040, connection status changed irq 29
ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata5.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata5.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata5.00: ATA-8: INTEL SSDSA2CW600G3, 4PC10362, max UDMA/133
ata5.00: 1172123568 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata5.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata5.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata5.00: configured for UDMA/133
ata5.00: configured for UDMA/133
ata5: EH complete
sd 5:0:0:0: [sdc] 1172123568 512-byte logical blocks: (600 GB/558 GiB)
sd 5:0:0:0: [sdc] Write Protect is off
sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc:
sd 5:0:0:0: [sdc] Attached SCSI disk

# smartctl -a /dev/sdc
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.14.1.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Intel 320 Series SSDs
Device Model:     INTEL SSDSA2CW600G3
Serial Number:    CVPR??????????????
LU WWN Device Id: 5 001517 bb28?????
Firmware Version: 4PC10362
User Capacity:    600,127,266,816 bytes [600 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Fri Nov 30 22:03:19 2012 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Error SMART Thresholds Read failed: scsi error aborted command
Smartctl: SMART Read Thresholds failed.

=== 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:      (  17) The self-test routine was aborted by
     the host.
Total time to complete Offline 
data collection:   (    1) seconds.
Offline data collection
capabilities:     (0x75) SMART execute Offline immediate.
     No Auto Offline data collection support.
     Abort Offline collection upon new
     command.
     No Offline surface scan supported.
     Self-test supported.
     Conveyance Self-test supported.
     Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
     power-saving mode.
     Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
     General Purpose Logging supported.
Short self-test routine 
recommended polling time:   (   1) minutes.
Extended self-test routine
recommended polling time:   (   1) minutes.
Conveyance self-test routine
recommended polling time:   (   1) 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: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   ---    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   ---    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   ---    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   ---    Old_age   Always       -       1
 12 Power_Cycle_Count       0x0032   100   100   ---    Old_age   Always       -       5
170 Reserve_Block_Count     0x0033   100   100   ---    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   ---    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   ---    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0030   100   100   ---    Old_age   Offline      -       0
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   ---    Old_age   Always       -       0
192 Unsafe_Shutdown_Count   0x0032   100   100   ---    Old_age   Always       -       1
199 UDMA_CRC_Error_Count    0x0030   100   100   ---    Old_age   Offline      -       0
225 Host_Writes_32MiB       0x0032   100   100   ---    Old_age   Always       -       17887
226 Workld_Media_Wear_Indic 0x0032   100   100   ---    Old_age   Always       -       20
227 Workld_Host_Reads_Perc  0x0032   100   100   ---    Old_age   Always       -       94
228 Workload_Minutes        0x0032   100   100   ---    Old_age   Always       -       116
232 Available_Reservd_Space 0x0033   100   100   ---    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   100   100   ---    Old_age   Always       -       0
241 Host_Writes_32MiB       0x0032   100   100   ---    Old_age   Always       -       17887
242 Host_Reads_32MiB        0x0032   100   100   ---    Old_age   Always       -       3

SMART Error Log Version: 1
No Errors Logged

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


Note: selective self-test log revision number (0) not 1 implies that no selective self-test has ever been run
SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

# hdparm -I /dev/sdc

/dev/sdc:

ATA device, with non-removable media
 Model Number:       INTEL SSDSA2CW600G3                     
 Serial Number:      CVPR??????????????  
 Firmware Revision:  4PC10362
 Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
 Used: unknown (minor revision code 0x0029) 
 Supported: 8 7 6 5 
 Likely used: 8
Configuration:
 Logical  max current
 cylinders 16383 16383
 heads  16 16
 sectors/track 63 63
 --
 CHS current addressable sectors:   16514064
 LBA    user addressable sectors:  268435455
 LBA48  user addressable sectors: 1172123568
 Logical  Sector size:                   512 bytes
 Physical Sector size:                   512 bytes
 device size with M = 1024*1024:      572325 MBytes
 device size with M = 1000*1000:      600127 MBytes (600 GB)
 cache/buffer size  = unknown
 Nominal Media Rotation Rate: Solid State Device
Capabilities:
 LBA, IORDY(can be disabled)
 Queue depth: 32
 Standby timer values: spec'd by Standard, no device specific minimum
 R/W multiple sector transfer: Max = 16 Current = 16
 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
      Cycle time: min=120ns recommended=120ns
 PIO: pio0 pio1 pio2 pio3 pio4 
      Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
 Enabled Supported:
    * SMART feature set
      Security Mode feature set
    * Power Management feature set
    * Write cache
    * Look-ahead
    * Host Protected Area feature set
    * WRITE_BUFFER command
    * READ_BUFFER command
    * NOP cmd
    * DOWNLOAD_MICROCODE
      SET_MAX security extension
    * 48-bit Address feature set
    * Device Configuration Overlay feature set
    * Mandatory FLUSH_CACHE
    * FLUSH_CACHE_EXT
    * SMART error logging
    * SMART self-test
    * General Purpose Logging feature set
    * WRITE_{DMA|MULTIPLE}_FUA_EXT
    * 64-bit World wide name
    * IDLE_IMMEDIATE with UNLOAD
    * WRITE_UNCORRECTABLE_EXT command
    * {READ,WRITE}_DMA_EXT_GPL commands
    * Segmented DOWNLOAD_MICROCODE
    * Gen1 signaling speed (1.5Gb/s)
    * Gen2 signaling speed (3.0Gb/s)
    * Native Command Queueing (NCQ)
    * Phy event counters
      Device-initiated interface power management
    * Software settings preservation
    * SMART Command Transport (SCT) feature set
    * SCT LBA Segment Access (AC2)
    * SCT Error Recovery Control (AC3)
    * SCT Features Control (AC4)
    * SCT Data Tables (AC5)
    * Data Set Management TRIM supported
    * reserved 69[5]
    * Deterministic read after TRIM
Security: 
 Master password revision code = 65534
  supported
 not enabled
 not locked
 not frozen
 not expired: security count
  supported: enhanced erase
 2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5001517bb28?????
 NAA  : 5
 IEEE OUI : 001517
 Unique ID : bb28?????
Integrity word not set (found 0x0000, expected 0x4fa5)


おそらくは、ゼロ書き込みによるデータ消去後であろう?とは思いましたが、せっかくの機会 (中古SSDは初挑戦) なので、オールゼロになっているのか確認してみたところ、SSD 上に残っていた文字列は、次の3行のみでした。
Delete End
2012/09/21/11:46:19
某ショップの会社名
さて、それなら SecureErase を実施したほうが、性能上良いはずなので、実際やりました。
# cat /sys/block/sdc/device/model 
INTEL SSDSA2CW60

# hdparm --user-master u --security-set-pass password /dev/sdc
security_password="password"

/dev/sdc:
 Issuing SECURITY_SET_PASS command, password="password", user=user, mode=high
# hdparm --user-master u --security-erase-enhanced password /dev/sdc
security_password="password"

/dev/sdc:
 Issuing SECURITY_ERASE command, password="password", user=user
SecureErase は1分ぐらい (ちょっとよそ見している間) で終わってしまいました。

ちなみに、Win7 上の Intel SSD Toolbox も試してみたのですが、わたしの環境では、どうしても frozen 状態が解除できず、実行できませんでした。

ThinkPad T510 に eSATA 接続の環境ですが、Toolbox の指示に従って、eSATA の先の SSD 電源を落としたり、刺しなおしたりしてみましたが、ダメでした。それなのに、デュアルブートにしてある CentOS6 では、frozen にはならず、簡単に SecureErase できました。

■関連記事
SecureErase を実施してみた
SecureErase のために frozen 状態を解除する方法
人気ブログランキングへ にほんブログ村 IT技術ブログへ