Today I switched to
+my
+new laptop. I've previously written about the problems I had with
+my new Thinkpad X230, which was delivered with an
+180
+GB Intel SSD disk with Lenovo firmware that did not handle
+sustained writes. My hardware supplier have been very forthcoming in
+trying to find a solution, and after first trying with another
+identical 180 GB disks they decided to send me a 256 GB Samsung SSD
+disk instead to fix it once and for all. The Samsung disk survived
+the installation of Debian with encrypted disks (filling the disk with
+random data during installation killed the first two), and I thus
+decided to trust it with my data. I have installed it as a Debian Edu
+Wheezy roaming workstation hooked up with my Debian Edu Squeeze main
+server at home using Kerberos and LDAP, and will use it as my work
+station from now on.
+
+
As this is a solid state disk with no moving parts, I believe the
+Debian Wheezy default installation need to be tuned a bit to increase
+performance and increase life time of the disk. The Linux kernel and
+user space applications do not yet adjust automatically to such
+environment. To make it easier for my self, I created a draft Debian
+package ssd-setup to handle this tuning. The
+source
+for the ssd-setup package is available from collab-maint, and it
+is set up to adjust the setup of the machine by just installing the
+package. If there is any non-SSD disk in the machine, the package
+will refuse to install, as I did not try to write any logic to sort
+file systems in SSD and non-SSD file systems.
+
+
I consider the package a draft, as I am a bit unsure how to best
+set up Debian Wheezy with an SSD. It is adjusted to my use case,
+where I set up the machine with one large encrypted partition (in
+addition to /boot), put LVM on top of this and set up partitions on
+top of this again. See the README file in the package source for the
+references I used to pick the settings. At the moment these
+parameters are tuned:
-- Add desktop entry in /usr/share/autostart/ causing a program
-hw-support-handlerd to start when the user log in.
+- Set up cryptsetup to pass TRIM commands to the physical disk
+ (adding discard to /etc/crypttab)
-- This program listen for kernel events about new hardware (directly
-from the kernel like udev does), not using HAL dbus events as I
-initially did.
+- Set up LVM to pass on TRIM commands to the underlying device (in
+ this case a cryptsetup partition) by changing issue_discards from
+ 0 to 1 in /etc/lvm/lvm.conf.
-- When new hardware is inserted, look up the hardware modalias in
-the APT database, a database
-available
-via HTTP and a database available as part of the package.
+- Set relatime as a file system option for ext3 and ext4 file
+ systems.
-- If a package is mapped to the hardware in question, the package
-isn't installed yet and this is the first time the hardware was
-plugged in, show a desktop notification suggesting to install the
-package or packages.
+- Tell swap to use TRIM commands by adding 'discard' to
+ /etc/fstab.
-- If the user click on the 'install package now' button, ask
-aptdaemon via the PackageKit API to install the requrired package.
+- Change I/O scheduler from cfq to deadline using a udev rule.
-- aptdaemon ask for root password or sudo password, and install the
-package while showing progress information in a window.
+- Run fstrim on every ext3 and ext4 file system every night (from
+ cron.daily).
+
+- Adjust sysctl values vm.swappiness to 1 and vm.vfs_cache_pressure
+ to 50 to reduce the kernel eagerness to swap out processes.
-
I still need to come up with a better name for the system. Here
-are some screen shots showing the prototype in action. First the
-notification, then the password request, and finally the request to
-approve all the dependencies. Sorry for the Norwegian Bokmål GUI.
-
-
-
-
-
-

-
-
The prototype still need to be improved with longer timeouts, but
-is already useful. The database of hardware to package mappings also
-need more work. It is currently compatible with the Ubuntu way of
-storing such information in the package control file, but could be
-changed to use other formats instead or in addition to the current
-method. I've dropped the use of discover for this mapping, as the
-modalias approach is more flexible and easier to use on Linux as long
-as the Linux kernel expose its modalias strings directly.
-
-
Update 2013-01-21 16:50: Due to popular demand,
-here is the command required to check out and build the source: Use
-'svn checkout
-svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
-hw-support-handler; debuild'. If you lack debuild, install the
-devscripts package.
-
-
Update 2013-01-23 12:00: The project is now
-renamed to Isenkram and the source moved from the Debian Edu
-subversion repository to a Debian collab-maint git repository. See
-build
-instructions for details.
+
During installation, I cancelled the part where the installer fill
+the disk with random data, as this would kill the SSD performance for
+little gain. My goal with the encrypted file system is to ensure
+those stealing my laptop end up with a brick and not a working
+computer. I have no hope in keeping the really resourceful people
+from getting the data on the disk (see
+XKCD #538 for an explanation why).
+Thus I concluded that adding the discard option to crypttab is the
+right thing to do.
+
+
I considered using the noop I/O scheduler, as several recommended
+it for SSD, but others recommended deadline and a benchmark I found
+indicated that deadline might be better for interactive use.
+
+
I also considered using the 'discard' file system option for ext3
+and ext4, but read that it would give a performance hit ever time a
+file is removed, and thought it best to that that slowdown once a day
+instead of during my work.
+
+
My package do not set up tmpfs on /var/run, /var/lock and /tmp, as
+this is already done by Debian Edu.
+
+
I have not yet started on the user space tuning. I expect
+iceweasel need some tuning, and perhaps other applications too, but
+have not yet had time to investigate those parts.
+
+
The package should work on Ubuntu too, but I have not yet tested it
+there.
+
+
As for the answer to the question in the title of this blog post,
+as far as I know, the only solution I know about is to replace the
+disk. It might be possible to flash it with Intel firmware instead of
+the Lenovo firmware. But I have not tried and did not want to do so
+without approval from Lenovo as I wanted to keep the warranty on the
+disk until a solution was found and they wanted the broken disks
+back.
-
-
19th January 2013
-
This Christmas my trusty old laptop died. It died quietly and
-suddenly in bed. With a quiet whimper, it went completely quiet and
-black. The power button was no longer able to turn it on. It was a
-IBM Thinkpad X41, and the best laptop I ever had. Better than both
-Thinkpads X30, X31, X40, X60, X61 and X61S. Far better than the
-Compaq I had before that. Now I need to find a replacement. To keep
-going during Christmas, I moved the one year old SSD disk to my old
-X40 where it fitted (only one I had left that could use it), but it is
-not a durable solution.
-
-
My laptop needs are fairly modest. This is my wishlist from when I
-got a new one more than 10 years ago. It still holds true.:)
-
-
-
-- Lightweight (around 1 kg) and small volume (preferably smaller
- than A4).
-- Robust, it will be in my backpack every day.
-- Three button mouse and a mouse pin instead of touch pad.
-- Long battery life time. Preferable a week.
-- Internal WIFI network card.
-- Internal Twisted Pair network card.
-- Some USB slots (2-3 is plenty)
-- Good keyboard - similar to the Thinkpad.
-- Video resolution at least 1024x768, with size around 12" (A4 paper
-size).
-- Hardware supported by Debian Stable, ie the default kernel and
- X.org packages.
-- Quiet, preferably fan free (or at least not using the fan most of
- the time).
-
-
-
-
You will notice that there are no RAM and CPU requirements in the
-list. The reason is simply that the specifications on laptops the
-last 10-15 years have been sufficient for my needs, and I have to look
-at other features to choose my laptop. But are there still made as
-robust laptops as my X41? The Thinkpad X60/X61 proved to be less
-robust, and Thinkpads seem to be heading in the wrong direction since
-Lenovo took over. But I've been told that X220 and X1 Carbon might
-still be useful.
-
-
Perhaps I should rethink my needs, and look for a pad with an
-external keyboard? I'll have to check the
-Linux Laptops site for
-well-supported laptops, or perhaps just buy one preinstalled from one
-of the vendors listed on the Linux
-Pre-loaded site.
+
+
10th July 2013
+
A few days ago, I wrote about
+the
+problems I experienced with my new X230 and its SSD disk, which
+was dying during installation because it is unable to cope with
+sustained write. My supplier is in contact with
+Lenovo, and they wanted to send a
+replacement disk to try to fix the problem. They decided to send an
+identical model, so my hopes for a permanent fix was slim.
+
+
Anyway, today I got the replacement disk and tried to install
+Debian Edu Wheezy with encrypted disk on it. The new disk have the
+same firmware version as the original. This time my hope raised
+slightly as the installation progressed, as the original disk used to
+die after 4-7% of the disk was written to, while this time it kept
+going past 10%, 20%, 40% and even past 50%. But around 60%, the disk
+died again and I was back on square one. I still do not have a new
+laptop with a disk I can trust. I can not live with a disk that might
+lock up when I download a new
+Debian Edu / Skolelinux ISO or
+other large files. I look forward to hearing from my supplier with
+the next proposal from Lenovo.
+
+
The original disk is marked Intel SSD 520 Series 180 GB,
+11S0C38722Z1ZNME35X1TR, ISN: CVCV321407HB180EGN, SA: G57560302, FW:
+LF1i, 29MAY2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
+Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40002756C4, Model:
+SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
+P/N 45N8295, P0C38732.
+
+
The replacement disk is marked Intel SSD 520 Series 180 GB,
+11S0C38722Z1ZNDE34N0L0, ISN: CVCV315306RK180EGN, SA: G57560-302, FW:
+LF1i, 22APR2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
+Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40000AB69E, Model:
+SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
+P/N 45N8295, P0C38732.
+
+
The only difference is in the first number (serial number?), ISN,
+SA, date and WNPP values. Mentioning all the details here in case
+someone is able to use the information to find a way to identify the
+failing disk among working ones (if any such working disk actually
+exist).