Ogłoszenie
Proszę przewinąć na odpowiedź (ma kilka punktów, ale jest prawidłowa). Problem został rozwiązany przez łatkę, która będzie w jądrze 3.12.7 i nowszych; Mam nadzieję, że zostanie przeniesiony również do wcześniejszych.
Mój laptop to seria Samsung Chronos 7. Ubuntu Gnome Remix 13.04 ze zaktualizowanymi sterownikami Intela.
Mam problem z wewnętrznym dyskiem SSD (pojemność 8G). Błąd z COMRESET i błędami wejścia / wyjścia. Jestem przekonany, że problemem jest sprzęt; niestety nie mam zainstalowanego systemu Windows na laptopie, aby sprawdzić, czy jest to kwestia konfiguracji SSD, czy coś takiego.
Problem polega na tym, że dysk jest rozpoznawany przez udev:
KERNEL[9.515930] add /devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb (block)
ACTION=add
DEVNAME=sdb
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb
DEVTYPE=disk
MAJOR=8
MINOR=16
SEQNUM=1785
SUBSYSTEM=block
UDEV_LOG=3
a potem nie udaje się to w wielu kontrolach, opóźnia rozruch, opóźnia zamknięcie i uniemożliwia (myślę) zawieszenie.
Czy można powiedzieć Linuksowi, aby całkowicie ignorował cokolwiek na łączu ata2? Próbowałem dodać tę linię do /etc/udev/rules.d/10-local.rules
SUBSYSTEMS=="pci" DRIVERS=="ahci" KERNELS=="ata2" OPTIONS=="ignore_device"
ale to nie działa.
Z drugiej strony, jeśli ktoś wie, jak zresetować dysk SSD, jeśli pozostawiono go w trybie „pamięci podręcznej” bez użycia systemu Windows ... lub w celu uruchomienia systemu Windows na żywo, aby zrobić to samo…
Dzięki!
Dodano dane:
Pełna udevadm info -a -n /dev/sdb
wklejona na http://paste.ubuntu.com/6186145/
smartctl -i /dev/sdb -T permissive
daje:
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
co jest wyraźnie błędne. Niemniej jednak:
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
(Dane SSD z http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
DODATKOWA MYŚL:
Czy to wszystko może być efektem ubocznym technologii Intel Smart Response, która nie jest wyłączana przed instalacją Linuksa? Jeśli tak, jak mogę to sprawdzić bez ponownej instalacji systemu Windows na komputerze? Czy to jest strzał w ciemność? (W bios dysk SSD nie pokazuje się i nie ma nic o Intel SRT).
O OZNAKOWANIU W DUPLIKATIE:
Zmieniłem tytuł pytania; Nie sądzę, że powiązane pytanie odpowiada na mój problem. Wiem pozytywnie , że SSD zawodzi. Pytam, czy można powiedzieć jądru Linuksa, żeby w ogóle tego nie sprawdzał.
źródło
Odpowiedzi:
Dwa rozwiązania tutaj: jedno jest szybkie do zastosowania, chociaż rozwiązuje problem tylko częściowo, drugie jest kompletne, ale wymaga skompilowania własnego jądra.
Prawidłowa odpowiedź to łatka na jądro.
Robin H. Johnson napisał łatkę do sterownika jądra SATA ( znajdź go na stronie wymiany stosów Unix / Linux ), która całkowicie ukrywa dysk.
Aktualizacja 1 Łata jest teraz w górę (przynajmniej w stabilnym jądrze 3.12.7), zobacz repozytorium git . Poprosiłem o backport w starterze Ubuntu .
Aktualizacja 2 Łatka jest w standardowym jądrze dla Ubuntu Trusty Thar 14.04; więc teraz potrzebny jest tylko następujący dodatek do parametru rozruchu.
Po zainstalowaniu poprawki dodawanie
do parametrów rozruchowych jądra ukryje dysk przed jądrem Linux. Sprawdź dokładnie, czy numer jest poprawny; wyszukiwanie nazwy urządzenia może pomóc:
Aby dodać parametr jądra (bot tymczasowo i na stałe), możesz sprawdzić następujące pytania i odpowiedzi: Jak dodać parametr rozruchowy jądra?
Obejście
Przynajmniej problem włączania zawieszenia-wznowienia został rozwiązany przez użytkownika Unix StackExchange Emmanuela w /unix//a/103742/52205 . Jako root wydaj polecenie:
przed zawieszeniem.
Aby było trwałe, dodaj następujący plik
/etc/pm/sleep.d/
i uczyń go wykonywalnym:z treścią:
... a teraz system poprawnie zawiesza (i wznawia).
źródło
/sys/block/*/device/delete
.Możesz spróbować utworzyć regułę udev z następującymi informacjami (dane wyjściowe udevadm info -a -n / dev / sdb).
INFORMACJE:
1) Utwórz regułę udev.
sudo nano /etc/udev/rules.d/99-hide-ssd.rules
Możesz spróbować dopasować atrybuty „PODSYSTEMY” i „STEROWNIKI” oraz atrybuty „ATTRS {rev}” i ATTRS {model} , a następnie przypisać „UDISKS” zmienną , aby ją zignorować.
Zawartość pliku 99-hide-ssd.rules byłaby następująca:
Aby zapisać zmiany w nano ... Ctrl+ O, a następnie Enteri na końcu Ctrl+X .
2) Na koniec odśwież zasady udev za pomocą:
sudo udevadm trigger
UWAGA: Z ENV {UDISKS_IGNORE} = "1" zignoruje dysk dla Ubuntu 12.10 i 13.04.
W przypadku Ubuntu 12.04 zmienną będzie ENV {UDISKS_PRESENTATION_HIDE} = „1” .
Mam nadzieję że to pomoże.
źródło
/server/112147/tell-ubuntu-to-ignore-dead-hard-drive-during-booting sugeruje częściowo:
Jako root otwórz /etc/udev/rules.d/60-persistent-storage.rules w swoim ulubionym edytorze tekstu.
Kilka linii w dół prawdopodobnie zobaczysz linię, która wygląda następująco:
pomiń reguły dla nieodpowiednich urządzeń blokowych
KERNEL == "ram * | loop * | fd * | nbd * | gnbd * | dm- | md ", GOTO = "persistent_storage_end" Dodaj "sdb *" do drugiej linii, więc wygląda to tak:
KERNEL == "ram * | loop * | fd * | nbd * | gnbd * | dm- | md | sdb *", GOTO = "persistent_storage_end"
Zapisz, uruchom ponownie, a może to działa. Jeśli nie, to czy jest to gwarancja pogwarancyjna?
źródło
Jeśli twoje inne dyski nie używają ahci lub nie są dyskami SSD, możesz usunąć dla nich sterownik jądra.
aby usunąć dla tej sesji (do następnego ponownego uruchomienia), uruchom:
aby go ponownie załadować, uruchom:
jeśli widzisz, że wszystko idzie dobrze, możesz to teraz całkowicie wyłączyć (nie ładuj go przy następnym uruchomieniu). otwórz plik /etc/modprobe.d/blacklist.conf i dodaj następujący wiersz:
do czarnej listy SSD sterowników, wystarczy zastąpić AHCI z sd
źródło
ata1
, awaria ssd włączonaata2
. Wyłączenie trybu ahci w biosie powoduje, że system nieZ tego co wiem, nie ma innego sposobu na usunięcie wiadomości niż usunięcie dysku SSD.
źródło
Poszedłem i napisałem dla ciebie łatkę na jądro, która implementuje możliwość wyłączenia pojedynczego dysku w czasie uruchamiania, abyś nie musiał zawracać sobie głowy wyłączaniem go w udev lub czekaniem podczas pierwszego uruchomienia.
http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch
Powinien być bardzo łatwo stosowany do wielu jąder (linia powyżej została dodana 2013-05-21 / v3.10-rc1 *, ale można go bezpiecznie ręcznie zastosować bez tej linii).
źródło