Ho un portatile Samsung (Chronos S7) con un disco rigido SATA sul bus ata:1
, che viene rilevato come /dev/sda
, uno SSD 8G su ata:2
, /dev/sdb
e vari altri dispositivi sul resto dell'interfaccia SATA.
Il problema è che il disco SSD è
- saldato alla scheda madre (immobile)
- eliminato (fornisce solo errori I / O per qualsiasi operazione)
- non appare nel bios (probabilmente perché è rotto)
Ora questo disco:
- ritarda l'avvio da tre a cinque minuti nel tentativo di sondare il disco guasto, il che è fastidioso;
- ma la cosa più fastidiosa è che il sistema non riesce a sospendere a causa di un
/dev/sdb
errore.
Si noti che posso vivere con il ritardo all'avvio --- ciò che mi preoccupa è la cosa di riprendere / sospendere.
Quindi la domanda è: posso dire al kernel di evitare anche di sondare il dispositivo su ata: 2?
Nel kernel più vecchio (<3.0), quando ero ancora in grado di scavare un po 'nel sorgente, c'era un parametro da riga di comando dello stile hdb=ignore
che avrebbe fatto il trucco.
Ho provato tutti i trucchi proposti di seguito con udev
e libata:force
del kernel parametri, senza alcun risultato. In particolare, quanto segue non funziona:
Aggiunta a uno dei seguenti
/etc/udev/rules.d/
file (in esecuzione anticipata come00-ignoredisk.rules
o in ritardo come99-ignoredisk.rules
o in entrambi i punti)SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1"
né
KERNEL=="sdb", ENV{UDISKS_IGNORE}="1"
né molte soluzioni intermedie --- questo rende il disco non accessibile dopo l'avvio, ma viene sondato all'avvio e comunque controllato durante la sospensione --- causando il fallimento della sospensione.
Modifica dei file di sistema
/lib/udev/rules.d/60-persistent-storage.rules
(eudisks
,udisks2
) modificaKERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end"
a
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end"
ancora una volta, questo ha qualche effetto, mascherando il disco dallo spazio utente, ma il disco è ancora visibile al kernel.
L'avvio con tutte le possibili combinazioni (beh, molte di esse) dei
libata:force
parametri (trovate ad esempio qui ) per disabilitare DMA, velocità più bassa o qualsiasi altra cosa sul disco guasto --- non funziona. Il parametro viene utilizzato, ma il disco è ancora sondato e ha esito negativo.Completamente
udevadm info -a -n /dev/sdb
incollato su http://paste.ubuntu.com/6186145/smartctl -i /dev/sdb -T permissive
dà: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
che è chiaramente sbagliato. Tuttavia:
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
(Dati SSD da http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
/etc/fstab
? Perché il ritardo all'avvio potrebbe essere causato prima dal kernel o da udev, il che sembra essere il caso, ma anche più tardi da fsck, durante la letturafstab
.