Eu tenho um problema estranho com o meu Lenovo T450s. Em dezembro, o SSD que foi incorporado a ele começou a funcionar. Eu notei quando meu arquivo /boot/initramfs-linux.img
estava corrompido e não podia mais ser iniciado. Através de um shell de recuperação, consegui reparar o arquivo e recuperei o sistema. O SMART não mostrou nenhum erro. Alguns dias depois, ele quebrou completamente - eu ainda via o GRUB, mas nem o Linux nem o Windows inicializavam mais, parecia que as tabelas de partição estavam corrompidas dessa vez. Usando a varredura de hardware integrada da Lenovo, também vi muitos erros de disco.
Então eu peguei um novo SSD, configurei e usei por ~ 2 semanas. Agora hoje eu tenho um segfault de "má instrução" ao executar mysqld --version
. Reinstalar mariadb
corrigiu isso. Então, algum tempo depois, um problema semelhante ocorreu, desta vez eu prestei mais atenção:
$ kmail
kmail: error while loading shared libraries: /usr/lib/libx264.so.148: invalid ELF header
$ md5sum /usr/lib/libx264.so.148
2a56d1c8db30bc67086aa5f6a2f82b74 /usr/lib/libx264.so.148
$ file /usr/lib/libx264.so.148
/usr/lib/libx264.so.148: data
$ ls -latr /usr/lib/libx264.so.148
-rwxr-xr-x 1 root root 1027784 Jun 27 2017 /usr/lib/libx264.so.148
$ cp /usr/lib/libx264.so.148 /tmp
$ pacman -Qoo /usr/lib/libx264.so.148
/usr/lib/libx264.so.148 is owned by libx264 2:148.20170521-1
$ sudo pacman -S libx264
warning: libx264-2:148.20170521-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) libx264-2:148.20170521-1
Total Download Size: 0.36 MiB
Total Installed Size: 1.05 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
libx264-2:148.20170521-1-x86_64 369.6 KiB 89.1K/s 00:04 [####################################################################] 100%
(1/1) checking keys in keyring [####################################################################] 100%
(1/1) checking package integrity [####################################################################] 100%
(1/1) loading package files [####################################################################] 100%
(1/1) checking for file conflicts [####################################################################] 100%
(1/1) checking available disk space [####################################################################] 100%
:: Processing package changes...
(1/1) reinstalling libx264 [####################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
$ ls -latr /usr/lib/libx264.so.148
-rwxr-xr-x 1 root root 1027784 Jun 27 2017 /usr/lib/libx264.so.148
$ md5sum /usr/lib/libx264.so.148
32ef6d83b64fa4ab508c0ab565f426eb /usr/lib/libx264.so.148
$ file /usr/lib/libx264.so.148
/usr/lib/libx264.so.148: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=06887d32d7c6bafc62ec7093c2527ebeaba115e3, stripped
$ xxd /usr/lib/libx264.so.148 > /tmp/after.hex
$ xxd /tmp/libx264.so.148 > /tmp/before.hex
$ diff -u /tmp/before.hex /tmp/after.hex
--- /tmp/before.hex 2018-01-09 22:56:52.027209874 +0100
+++ /tmp/after.hex 2018-01-09 22:58:36.527221442 +0100
-1,43267 +1,43267 @@
-00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
+00000010: 0300 3e00 0100 0000 307f 0000 0000 0000 ..>.....0.......
+00000020: 4000 0000 0000 0000 08a8 0f00 0000 0000 @...............
+00000030: 0000 0000 4000 3800 0700 4000 1b00 1a00 [email protected]...@.....
+00000040: 0100 0000 0500 0000 0000 0000 0000 0000 ................
...
Mais partes do arquivo são quebradas dessa maneira, ou seja, zero-out.
Estou perplexo - em todos os anos, nunca vi tal problema. O fato de que isso está acontecendo tão rapidamente depois que eu recebi um novo SSD me faz acreditar que o SSD não está realmente em falta. O que poderia ser? Alguém já viu algo assim?
Estou executando o kernel ArchLinux 4.14.12-1 mais recente. Veja algumas informações de hardware:
$ grep "model name" /proc/cpuinfo
Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
$ lspci
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-LM (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #6 (rev e3)
00:1c.1 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1c.4 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #5 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
00:1f.6 Signal processing controller: Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
03:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)
04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940M] (rev a2)
$ sudo smartctl -a /dev/sda
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.14.12-1-ARCH] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Samsung based SSDs
Device Model: Samsung SSD 850 PRO 512GB
Serial Number: S39FNX0J612952B
LU WWN Device Id: 5 002538 d420b9653
Firmware Version: EXM04B6Q
User Capacity: 512,110,190,592 bytes [512 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Jan 9 23:24:18 2018 CET
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: ( 0) seconds.
Offline data collection
capabilities: (0x53) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No 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: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 265) 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
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 109
12 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 26
177 Wear_Leveling_Count 0x0013 099 099 000 Pre-fail Always - 1
179 Used_Rsvd_Blk_Cnt_Tot 0x0013 100 100 010 Pre-fail Always - 0
181 Program_Fail_Cnt_Total 0x0032 100 100 010 Old_age Always - 0
182 Erase_Fail_Count_Total 0x0032 100 100 010 Old_age Always - 0
183 Runtime_Bad_Block 0x0013 100 100 010 Pre-fail Always - 0
187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0032 067 055 000 Old_age Always - 33
195 ECC_Error_Rate 0x001a 200 200 000 Old_age Always - 0
199 CRC_Error_Count 0x003e 100 100 000 Old_age Always - 0
235 POR_Recovery_Count 0x0012 099 099 000 Old_age Always - 1
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 1665945979
SMART Error Log Version: 1
No Errors Logged
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% 107 -
SMART Selective self-test log data structure revision number 1
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
255 0 65535 Read_scanning was never started
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.
$ mount | grep /dev/sda
/dev/sda3 on / type ext4 (rw,noatime,discard,data=ordered)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
Editar: Eu executei todos os testes de hardware disponíveis através da verificação de hardware da Lenovo. Nada foi encontrado em lugar algum ...