For quite some time, I've suffered slow boot - it had useless 10 seconds delay while initializing SATA with SSD disk:
[ 2.761669] ata1: SATA max UDMA/133 abar m2048@0xf2528000 port 0xf2528100 irq 44
[ 8.118202] ata1: link is slow to respond, please be patient (ready=0)
[ 12.764701] ata1: COMRESET failed (errno=-16)
[ 13.084612] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
After some googling, I came to conclusion it is bug in SSD firmware and looked for update. Release notes documented some fixes to slow boot, what seemed to be related. The only issue was that the firmware update is available only as ISO image. And guess what I have no CDROM (actually I have no clue for what I would have used it).
Fortunately the update is doable with just grub and syslinux.
First, download ISO provided by Intel and extract eltorito boot image from it using geteltorito script and copy it to /boot/
. Then get yourself syslinux and copy memdisk to /boot/
.
Now you just need to edit grub configuration to include following lines (you might need to adjust it according to your partition setup):
menuentry "SSD Update" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux16 /memdisk
initrd16 /ssd-fw.img
}
Now you can reboot and choose SSD Update from the grub menu and perform update!
After update the slowest part of boot process is me entering LUKS password, but I'm afraid this is not easily fixable :-).
PS: The difference you can see after update:
[ 2.797551] ata1: SATA max UDMA/133 abar m2048@0xf2528000 port 0xf2528100 irq 44
[ 3.115694] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)