Saya punya Samsung laptop (Chronos s7) dengan satu SATA hard disk pada bus ata:1
, yang terdeteksi sebagai /dev/sda
, sebuah 8G SSD pada ata:2
, /dev/sdb
, dan berbagai perangkat lain di seluruh antarmuka SATA.
Masalahnya adalah disk SSD itu
- disolder ke papan utama (tidak bergerak)
- rusak (itu hanya memberikan kesalahan I / O untuk operasi apa pun)
- tidak muncul dalam bios (mungkin karena rusak)
Sekarang disk ini:
- menunda booting tiga hingga lima menit, mencoba menyelidiki disk yang rusak, yang menjengkelkan;
- tetapi hal yang paling menjengkelkan adalah bahwa sistem gagal untuk ditangguhkan karena
/dev/sdb
gagal.
Perhatikan bahwa saya dapat hidup dengan penundaan saat boot --- yang membuat saya khawatir adalah resume / menunda.
Jadi pertanyaannya adalah: dapatkah saya memberi tahu kernel untuk menghindari bahkan memeriksa perangkat di ata: 2?
Di kernel yang lebih lama (<3.0), ketika saya masih bisa menggali sedikit ke dalam source, ada parameter baris perintah dari style hdb=ignore
yang akan melakukan trik.
Saya telah mencoba semua trik yang diusulkan di bawah ini dengan udev
dan libata:force
kernel parameter, tidak berhasil. Secara khusus, berikut ini tidak berfungsi:
Menambahkan ke salah
/etc/udev/rules.d/
satu file berikut (dalam eksekusi awal suka00-ignoredisk.rules
atau terlambat sebagai99-ignoredisk.rules
atau di kedua tempat)SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1"
maupun
KERNEL=="sdb", ENV{UDISKS_IGNORE}="1"
juga tidak banyak solusi perantara --- ini membuat disk tidak dapat diakses setelah booting, tetapi disk tersebut diperiksa saat booting, dan masih diperiksa saat menangguhkan --- menyebabkan penangguhan gagal.
Mengedit file sistem
/lib/udev/rules.d/60-persistent-storage.rules
(danudisks
,udisks2
) berubahKERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end"
untuk
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end"
sekali lagi, ini memiliki beberapa efek, menutupi disk dari userspace, tetapi disk tersebut masih terlihat oleh kernel.
Boot dengan semua kemungkinan kombinasi (well, banyak dari mereka) dari
libata:force
parameter (ditemukan misalnya di sini ) untuk menonaktifkan DMA, kecepatan lebih rendah atau apa pun tentang disk yang gagal --- tidak berfungsi. Parameter digunakan, tetapi disk masih diselidiki dan gagal.udevadm info -a -n /dev/sdb
Disisipkan penuh ke http://paste.ubuntu.com/6186145/smartctl -i /dev/sdb -T permissive
memberi: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
yang jelas salah. Namun:
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
(Data SSD dari http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
/etc/fstab
? Karena keterlambatan saat boot bisa disebabkan oleh kernel atau udev, yang tampaknya merupakan kasusnya, tetapi juga nanti oleh fsck, ketika membacafstab
.