Notice
Please scroll down for the answer (it has few points but it is the correct one). The problem is solved by a patch that will be in kernel 3.12.7 and up; I hope it will back-ported to earlier ones, too.
My laptop is a Samsung Chronos serie s 7. Ubuntu Gnome Remix 13.04, with Intel updated drivers.
I have a problem with the internal SSD drive (8G capacity). It fails with COMRESET and input/output errors. I am quite convinced that the problem is hardware; unfortunately I do not have Windows installed in the laptop to check if it's a matter of SSD configuration or whatever.
The problem is that the disk is recognized by udev:
KERNEL[9.515930] add /devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb (block)
ACTION=add
DEVNAME=sdb
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb
DEVTYPE=disk
MAJOR=8
MINOR=16
SEQNUM=1785
SUBSYSTEM=block
UDEV_LOG=3
and after that it fails in a lot of checks, delaying boot, delaying shutdown, and making (I think) suspend impossible.
Is it possible to tell Linux to completely ignore anything on the ata2 link? I tried adding this line to /etc/udev/rules.d/10-local.rules
SUBSYSTEMS=="pci" DRIVERS=="ahci" KERNELS=="ata2" OPTIONS=="ignore_device"
but it doesn't work.
On the other hand, if anyone knows how to reset the SSD if it was left in "cache" mode without using Windows… or to boot a "live" windows to do the same…
Thanks!
Data added:
Full udevadm info -a -n /dev/sdb
pasted to http://paste.ubuntu.com/6186145/
smartctl -i /dev/sdb -T permissive
gives:
root@samsung-romano:/home/romano# smartctl -i /dev/sdb -T permissive
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-31-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
Vendor: /1:0:0:0
Product:
User Capacity: 600,332,565,813,390,450 bytes [600 PB]
Logical block size: 774843950 bytes
>> Terminate command early due to bad response to IEC mode page
which is clearly wrong. Nevertheless:
root@samsung-romano:/home/romano# fdisk -b 512 -C 970 -H 256 -S 63 /dev/sdb
fdisk: unable to read /dev/sdb: Input/output error
(SSD data from http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
ADDITIONAL THOUGHT:
Could all this being a side effect of the Intel Smart Response Technology not being disabled before installing Linux? If yes, how can I check it short of reinstalling a windows on the machine? Or this is a shot in the dark? (In the bios the SSD drive doesn't show and there is nothing about Intel SRT).
ABOUT MARKING AS DUPLICATE:
I changed the title of the question; I do not think that the linked question answers my problem. I positively know that the SSD is failing. I am asking if it's possible to tell the linux kernel to not probe for it at all.
Best Answer
Two solutions here: one is fast to apply, although solves the problem only partially, the other one is the complete one but requires you to compile your own kernel.
The correct answer is a kernel patch.
Robin H. Johnson wrote a patch for the SATA kernel driver (find it in Unix/Linux stack exchange site) which hides completely the drive.
Update 1 The patch is now upstream (at least in 3.12.7 stable kernel), see the git repository. I asked for backport in the Ubuntu launchpad.
Update 2 The patch is in the standard kernel for Ubuntu Trusty Thar 14.04; so now only the following addition to boot parameter is needed.
Once the patch is installed, adding
to the kernel boot parameters will hide the disk from the Linux kernel. Double check that the number is correct; searching for the device name can help:
To add a kernel parameter (bot temporarily and permanently) you can check this Q&A: How do I add a kernel boot parameter?
Workaround
At least the problem of enabling suspend-resume has been solved by by Unix StackExchange user Emmanuel in https://unix.stackexchange.com/a/103742/52205. As root, issue the command:
before suspend.
To make it permanent, add the following file in
/etc/pm/sleep.d/
and make it executable:with content:
...and now the system suspends (and resume) correctly.