У мене є ноутбук Samsung (Хронос) з s7 одним жорстким диском SATA на шину ata:1
, яка визначається як /dev/sda
, до 8G SSD на ata:2
, /dev/sdb
і різні інші пристрої на решті частини інтерфейсу SATA.
Проблема в тому, що диск SSD є
- припаяний до основної плати (незнімний)
- заповнений (він просто видає помилки вводу / виводу для будь-якої операції)
- вона не з’являється в біосі (можливо, тому, що вона порушена)
Тепер цей диск:
- затримує завантаження на три-п’ять хвилин, намагаючись дослідити збій диска, що дратує;
- але найприємніше те, що система не спрацьовує через
/dev/sdb
зупинку.
Зауважте, що я можу жити із затримкою під час завантаження ---, що мене хвилює - це відновлення / призупинення роботи.
Отже, питання: чи можу я сказати ядру, щоб уникнути навіть зондування пристрою на ата: 2?
У старшому ядрі (<3.0), коли мені ще вдалося трохи перекопати джерело, був параметр командного рядка стилю, hdb=ignore
який би зробив трюк.
Я спробував усі запропоновані нижче хитрощі udev
та libata:force
параметри ядра, безрезультатно. Зокрема, наступне не працює:
Додавання до одного з наступних
/etc/udev/rules.d/
файлів (у ранньому виконанні, як00-ignoredisk.rules
або в кінці,99-ignoredisk.rules
або в обох місцях)SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1"
ні
KERNEL=="sdb", ENV{UDISKS_IGNORE}="1"
ні багато проміжних рішень --- це робить диск недоступним після завантаження, але він перевіряється під час завантаження і все-таки перевіряється при призупиненні --- викликає збій призупинення.
Редагування системних файлів
/lib/udev/rules.d/60-persistent-storage.rules
(іudisks
,udisks2
) змінаKERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end"
до
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end"
знову ж таки, це має певний ефект, маскуючи диск з користувальницького простору, але диск все ще видно ядро.
Завантаження з усіма можливими комбінаціями (ну, чимало їх)
libata:force
параметрів (знайдемо, наприклад, тут ) для того, щоб відключити DMA, знизити швидкість чи все, що стосується несправного диска --- не працює. Параметр використовується, але диск все ще перевіряється та виходить з ладу.Повне
udevadm info -a -n /dev/sdb
вставлено на http://paste.ubuntu.com/6186145/smartctl -i /dev/sdb -T permissive
дає: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
що явно неправильно. Тим не менш:
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 з http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
/etc/fstab
? Оскільки затримка завантаження може бути спричинена раніше ядром або udev, що, здається, так, але пізніше fsck під час читанняfstab
.