Również musiałem zmierzyć się z tym problemem. Mój jedyny przyjaciel, który ma Ubuntu do starego laptopa ASUS'a, a któremu po prostu nie chce się przynajmniej czasem włączyć rozumu, zwrócił się do mnie z takim problemem. Na jego laptopie jest zainstalowane nowe Ubuntu 12.10 i bardzo często system po prostu nie chce się uruchomić, wyrzuca go na czarny ekran lub zawiesza się na fioletowym tle. Ale ostatnio taki komunikat zaczął się pojawiać, coś w stylu „Nie można uruchomić systemu operacyjnego. Wybierz żądany klawisz do dalszych działań ... ”A potem jest opis tego, co należy nacisnąć. Nie pamiętam dokładnie, jakie klawisze system sugeruje naciśnięcie, ale znaczenie jest takie, że aby automatycznie poprawić błędy, naciśnij określony klawisz, aby ręcznie debugować inny i zignorować ten komunikat, sugeruje się naciśnięcie trzeciego przycisku. Automatyczna korekcja błędów do niczego nie doprowadziła, a ładowanie systemu operacyjnego nie zakończyło się logicznie. Postanowiłem więc spróbować słynnego zespołu fsck.
Najpierw musisz uruchomić albo z bootowalny pendrive z Ubuntu (Lubuntu, Xubuntu, Kubuntu itp.) lub z Dysk Ubuntu płyta CD na żywo. Teraz musimy dowiedzieć się dokładnie, którą partycję Ubuntu musimy przeskanować, aby to naprawić. system plików. Uruchom Terminal (Ctrl-Alt-T) i wykonaj polecenie:
sudo fdisk -l
To polecenie pokaże nam wszystkie dyski, dyski flash, które są zamontowane w systemie. Jako przykładu użyję mojego komputera osobistego, a nie laptopa znajomego. Oto, co mi się przydarzyło:
[e-mail chroniony]:~$ sudo fdisk -l
Dysk /dev/sda: 640,1 GB , 640135028736 bajtów
255 głowic, 63 sektory/tor, 77825 cylindrów, łącznie 1250263728 sektorów
Identyfikator dysku: 0x0009d6f7
/dev/sda1 * 2048 61442047 30720000 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux swap / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux
Dysk /dev/sdb: 500,1 GB , 500107862016 bajtów
255 głowic, 63 sektory/tor, 60801 cylindrów, łącznie 976773168 sektorów
Jednostki = sektory 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny): 512 bajtów / 512 bajtów
Rozmiar we/wy (minimalny/optymalny): 512 bajtów / 512 bajtów
Identyfikator dysku: 0xb9ff6f01
Rozruch urządzenia Początek Koniec Bloki Id System
/dev/sdb1 * 16065 100197404 50090670 83 Linux
/dev/sdb2 105322201 976771071 435724435+ 5 Rozszerzony
/dev/sdb3 100197405 105322139 2562367+ 82 Wymiana Linuksa / Solaris
/dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
/dev/sdb6 832112640 860755218 14321289+ 83 Linux
/dev/sdb7 860758016 862613503 927744 82 Wymiana Linuksa / Solaris
/dev/sdb8 862615552 976771071 57077760 83 Linux
Wpisy w tablicy partycji nie są ułożone w kolejności dysków
Dysk /dev/sdc: 8115 MB , 8115978240 bajtów
250 głowic, 62 sektory/tor, 1022 cylindry, łącznie 15851520 sektorów
Jednostki = sektory 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny): 512 bajtów / 512 bajtów
Rozmiar we/wy (minimalny/optymalny): 512 bajtów / 512 bajtów
Identyfikator dysku: 0xc3072e18
Rozruch urządzenia Początek Koniec Bloki Id System
/dev/sdc1 * 32 15847625 7923797 b W95 FAT32
Jak widać z danych wyjściowych polecenia sudo fdisk -l, mam 2 dyski twarde (sda) 640 GB i (sdb) 500 GB, a także pendrive (sdc) 8 GB, z którego faktycznie uruchomiłem. Wiem, że mój podstawowy system Ubuntu 12.04 znajduje się na dysku sda, a partycja systemu operacyjnego nosi odpowiednio nazwę sda1.
Teraz, gdy znamy sekcję do przeskanowania, możemy zacząć ją sprawdzać. w terminalu:
sudo fsck -y -f -c /dev/sda1
jeśli widzisz błąd, najprawdopodobniej musisz odmontować tę partycję:
sudo umount /dev/sda1
Klawisze poleceń i parametry fsck:
y- zawsze odpowiadaj twierdząco na wszystkie pytania (istnieje alternatywa: klawisz p - uruchamia sprawdzanie w trybie w pełni automatycznym);
F- wymuszone sprawdzenie systemu plików (nawet jeśli system plików jest oznaczony jako w pełni funkcjonalny)
C- szuka uszkodzonych bloków (uszkodzonych bloków), a następnie odpowiednio je oznacza
/dev/sda1- urządzenie lub partycję do sprawdzenia. Chociaż polecenie może mieć inną postać. Na przykład:
sudo fsck -p /dev/sda1
W ta sprawa dodano tylko przełącznik -p. Właśnie przeczytałeś o wszystkich opcjach polecenia fsck i dodajesz dokładnie te opcje, których potrzebujesz. Aby poznać wszystkie funkcje programu wpisz w Terminalu:
człowiek fsck
Oto, co wydał Terminal po sprawdzeniu:
[e-mail chroniony]:~$ sudo fsck -y -f -c /dev/sda1
fsck z util-linux 2.20.1
e2fsck 1.42.5 (29 lipca 2012)
Sprawdzanie uszkodzonych bloków (test tylko do odczytu): wykonano 0,00%, upłynęło 0:00. (0/0/0 pomyłka
/dev/sda1: Aktualizowanie uszkodzonego i-węzła bloku.
Przebieg 1: Sprawdzanie i-węzłów, bloków i rozmiarów
Przejście 2: Sprawdzanie struktury katalogów
Przejście 3: Sprawdzanie łączności z katalogami
Zaliczenie 4: Sprawdzanie liczby referencji
Zaliczenie 5: Sprawdzanie podsumowujących informacji o grupie
Czy Linus Torvalds tworząc swoje potomstwo zakładał, że Linux znajdzie zastosowanie w systemach wbudowanych, nie tylko w tanich routerach domowych, ale także w tak poważnych rozwiązaniach telekomunikacyjnych jak AVAYA PBX?
Ostatnio musiałem przywrócić funkcjonalność centrali AVAYA PBX jednego dużego klienta. To jest brama Avaya G650 (obudowa) z serwerem Avaya S8400 (procesor). Mając na uwadze, że dysk systemowy Użyto nośnika CompactFlash o pojemności 2 GB. które można warunkowo rozważyć Dysk SSD z interfejsem IDE.
I jakie było moje zdziwienie, kiedy podłączyłem dysk CF przez czytnik kart, zobaczyłem znajomą strukturę plik Linuksa systemy. Co oczywiście uprościło procedurę sprawdzania działania napędu CF.
System operacyjny MicroSoft DOS (o tak, pamiętam wersję 5.0, która mieściła się na jednej dyskietce!) miał polecenie sprawdzania dysku CHKDSK. I jest coś podobnego w Linuksie.
Sprawdzić Dysk z Linuksem w przypadku błędów systemu plików musisz znaleźć nazwy systemów plików do sprawdzenia:
# df -h Używany rozmiar systemu plików Dostępność Wykorzystanie % Zamontowano na /dev/sda 20G 4.0G 15G 21% / /dev/sdd1 1G 455M 555M 46% /media/Np%blsl3648B4Jjeiedgyy /dev/sdd6 1G 98M 902M 10% /media/ 10.13-23dd brak 246M 0 246M 0% /dev/shm
Tak jest w przypadku testowanego dysku CF /dev/sdd1 I /dev/sdd6
Następnie musisz odmontować testowane systemy plików:
#sudo umount /dev/sdd1 #sudo umount /dev/sdd6
#fsck -y /dev/sdd1 #fsck -y /dev/sdd6
Parametr -y automatycznie odpowie twierdząco na wszystkie pytania, co z reguły robi większość użytkowników.
W moim przypadku wystąpiły błędy na jednej z partycji, które naprawiło narzędzie. Następnie dysk CF wrócił na swoje miejsce, a centrala Avaya PBX została przywrócona do pełnej sprawności.
Każdy komputer to złożone urządzenie, które składa się z wielu elementów i nikt nie jest odporny na awarie któregokolwiek z nich. W tym artykule przyjrzymy się, jak rozpoznać jedną z nich poważne problemy z urządzeniami pamięci masowej, czy Dysk twardy lub dysk flash, jak sprawdzić dysk pod kątem uszkodzonych sektorów systemu Linux.
Każdy dysk składa się z wielu małych bloków (sektorów), które przechowują informacje w postaci zer lub jedynek (bitów). Jeśli z jakiegoś powodu system operacyjny nie może napisać trochę informacji do określonego sektora, wtedy można go uznać za „zepsuty”.
Sektor może ulec uszkodzeniu z różnych powodów:
Niewielka liczba uszkodzonych sektorów znajduje się na prawie każdym dysku. Ale warto zwrócić uwagę, czy ich liczba rośnie z czasem. Może to wskazywać na rychłą fizyczną śmierć dysku i czas pomyśleć o jego wymianie.
Przyjrzyjmy się, jakich narzędzi w systemie Linux możemy użyć do sprawdzenia dysku pod kątem uszkodzonych sektorów systemu Linux.
złe bloki- standardowe narzędzie Linux, aby sprawdzić, czy nie ma uszkodzonych sektorów. Jest instalowany domyślnie w prawie każdym zestawie dystrybucyjnym i za jego pomocą można sprawdzić zarówno dysk twardy, jak i dysk zewnętrzny.
Najpierw zobaczmy, jakie dyski są podłączone do naszego systemu i jakie mają partycje. Aby to zrobić, potrzebujemy innego standardowego narzędzia Linux - fdisk.
Oczywiście musisz wykonywać polecenia z uprawnieniami administratora:
Parametr -l mówimy narzędziu fdisk, że musimy pokazać listę partycji i wyjść.
Teraz, gdy wiemy, jakie mamy partycje, możemy sprawdzić je pod kątem uszkodzonych sektorów. Aby to zrobić, użyjemy narzędzia badblocks w następujący sposób:
$ sudo badblocks -v /dev/sda1 > badsectors.txt
W celu weryfikacji określamy następujące parametry:
Jeśli w rezultacie znaleziono uszkodzone sektory, musimy poinstruować system operacyjny, aby nie zapisywał do nich informacji w przyszłości. Do tego potrzebujemy Narzędzia Linuksa pracować z systemami plików:
Wprowadź następujące polecenia:
$ sudo e2fsck -l badsectors.txt /dev/sda1
Lub, jeśli nasz system plików nie jest ext:
$ sudo fsck -l badsectors.txt /dev/sda1
Parametr -l mówimy narzędziu, aby użyło listy uszkodzonych sektorów z pliku badsectors.txt, który uzyskaliśmy wcześniej podczas sprawdzania za pomocą narzędzia badblocks.
Teraz spójrzmy na bardziej nowoczesny i niezawodny sposób sprawdź dysk pod kątem uszkodzonych sektorów linux. Nowoczesne dyski ATA/SATA, SCSI/SAS, SSD posiadają wbudowany system samokontroli S.M.A.R.T (technologia samokontroli, analizy i raportowania), Self-Monitoring, Analysis, and Reporting Technology), która monitoruje wydajność dysku i pomaga zidentyfikować pogorszenie wydajności dysku na wczesnym etapie. Do pracy ze S.M.A.R.T w systemie Linux dostępne jest narzędzie smartmontools.
Zainstalujmy go najpierw. Jeśli twoja dystrybucja jest oparta na Debian\Ubuntu, wpisz:
$ sudo apt install smartmontools
Jeśli masz zestaw dystrybucyjny oparty na RHEL\CentOS, wpisz:
$ sudo yum zainstaluj smartmontools
przez administratora
Rozważ sposoby sprawdzania i diagnozowania dysku twardego systemy linuxowe. Informacja o działanie dysku twardego pomoże przeanalizować stan iw razie potrzeby wymienić uszkodzony nośnik, zapobiegając w ten sposób awarii systemu lub utracie danych. Dodatkowo do naszego systemu monitoringu zabbix dołączamy monitorowanie smart HDD
Uzyskaj listę podłączonych dysków w systemie
Aby określić, co jest zamontowane i gdzie, uruchom
Patrzeć zajęte miejsce na dowolnym magazynie
Jeśli istnieje soft.ride, sprawdź go za pomocą następującego polecenia
[e-mail chroniony]:~# cat /proc/mdstat
Osobowości:
md1: aktywny raid1 sdb3 sda3
965888832 bloki super 1.2md0: aktywny raid1 sdb1 sda1
9756544 bloki super 1.2
nieużywane urządzenia:
[e-mail chroniony]:~#
który najazd jest zainstalowany (zbudowany)
md0- nazwa urządzenia rajdowego
sda sdb- uwzględniono urządzenia w tym nalocie
- stan dysków w macierzy RAID
Instalacja wymaganych pakietów
aptitude install hdpparm sysstat smartmontools
Patrzymy na stan prędkości odczytu z dysku
Z pomocą jostat(w ramach sysstat) przeanalizuj obciążenie naszego dysku twardego
Patrzymy na dane wyjściowe na wszystkich dyskach w odstępie 10 sekund
Magazyn do analizy można zdefiniować, dodając
Za pomocą tego narzędzia określimy obciążenie naszych urządzeń, statystyki wejść/wyjść oraz procentowe wykorzystanie.
średni procesor: %użytkownik %Ładny %system %oczekiwania %ukraść %bezczynny 0,16 0,00 1,89 23,75 0,00 74,21
Najpierw sprawdźmy nasz dysk twardy pod kątem uszkodzonych bloków, jeśli to konieczne, wybierz je i oznacz jako ignorowane.
badblocks /dev/sda3 -sv > /root/badblockSDA3
Sprawdzanie uszkodzonych bloków (test tylko do odczytu): wykonano 27,93%, upłynęło 36:12. (0/0/0 błędów)
/dev/sda3- nazwa sprawdzanego urządzenia
S- wyjście informacji procentowej
w- włączyć coś tryb szczegółowy
> /root/badblockSDA3- zapisz uszkodzone sektory do pliku
Oznaczanie uszkodzonych bloków (dalsze zaznaczone bloki będą ignorowane przez system):
e2fsck -l /root/badblockSDA3 /dev/sda3
Uszkodzone bloki są oznaczone, możesz pracować z dyskiem.
UWAGA!!! Tę operację należy wykonać na niezamontowanym nośniku lub w trybie tylko do odczytu.
UWAGA!!! Sprawdzane urządzenie i urządzenie, na którym będą oznaczane uszkodzone bloki, muszą być takie same!
Uzyskiwanie danych S.M.A.R.T na temat działania HDD
Gdzie /dev/sdX to nazwa urządzenia do sprawdzenia.
Otrzymasz dane wyjściowe atrybutów SMART, których znaczenie jest dobrze opisane na wiki
Dla każdego z dysków sprawdzamy obsługę SMART
[e-mail chroniony]:~# smartctl -i /dev/sda |grep SMART
Obsługa SMART jest: Dostępna — urządzenie ma funkcję SMART.
Obsługa SMART jest: włączona
[e-mail chroniony]:~#
Jeśli obsługiwane, ale nie włączone, włącz
smartctl -s na -S na -o na /dev/sda
sprawdź stan za pomocą polecenia
smartctl -H /dev/sda |grep "test"| wytnij -f2 -d: |tr -d " "
[e-mail chroniony]:/etc/zabbix# smartctl -H /dev/sda |grep "test"| wytnij -f2 -d: |tr -d " "
PRZESZEDŁ
[e-mail chroniony]:/etc/zabbix#
W plik konfiguracyjny agent zabbix agent włącza opcję inteligentnego sprawdzania dysku
UserParameter=HDD_smart.[*],sudo smartctl -H /dev/$1 |grep "test"| wytnij -f2 -d: |tr -d " "
Gdzie HDD_smart- klucz do elementu zabbix
V Sudoers dodać wpis
zabbix ALL=NOPASSWD:/usr/sbin/smartctl
zrestartuj Sudo i agenta zabbix.
Aby mieć pewność co do poprawności, zaloguj się jako użytkownik zabbix i sprawdź wykonanie naszego polecenia
[e-mail chroniony]:/etc/zabbix# su - zabbix -s /bin/bash
Brakuje katalogu lub jest on niedostępny, zaloguj się za pomocą HOME=/
[e-mail chroniony]:/$ sudo smartctl -H /dev/sda |grep "test"| wytnij -f2 -d: |tr -d " "
PRZESZEDŁ
[e-mail chroniony]:/$
Na serwerze zabbix utwórz agenta zabbix ( Aktywny) element danych
Nazwa- arbitralne
Typ- Agent Zabbix (Aktywny)
Klucz- HDD_smart. - dla pierwszego dysku, odpowiednio dla drugiego ...
Typ- Znak
A po chwili obserwujemy dane
Jeśli podczas ładowania system operacyjny zgłasza błędy w systemie plików na jednej z partycji, należy natychmiast sprawdzić dyski i poprawić błędy systemu plików.
Każdy szanujący się użytkownik nie powinien zapominać o okresowej kontroli dyski twarde szukanie uszkodzonych sektorów i sprawdzanie dysków pod kątem błędów jest przykładem zdrowego rozsądku.
Ważny! Uruchomienie i wykonanie FSCK na zamontowanym systemie plików może prowadzić do uszkodzenia danych, więckorzystasz z tego materiału na własne ryzyko. Autor nie ponosi odpowiedzialności za jakiekolwiek szkody, które możesz wyrządzić.
Aby się zabezpieczyć, musisz:
Musisz więc sprawdzić dyski i naprawić błędy systemu plików, zaczynajmy.
1) Tryb pojedynczego użytkownika
Zmień poziom inicjalizacji i odmontuj system plików:
# początek 1
# zamontuj /dom
Wyszukaj zamontowane partycje:
# fsck /dev/sda1
2) Tryb odzyskiwania z instalacyjnej płyty CD
Włóż instalacyjną płytę CD do napędu i uruchom ponownie system:
Poczekaj chwilę i po uruchomieniu z płyty instalacyjnej uruchom polecenie:
# Linux ratunkowy nomount
Dyrektywa NOMOUNT wyłączy montowanie, więc możesz bezpiecznie używać FSCK.
Następnie uruchom FSCK na partycji z błędami:
# fsck -yvf /dev/sda1
Sytuacja z LVM (menedżer woluminów logicznych) sekcje są trochę trudniejsze. Na początek FSCK Dla LVM sekcje muszą być najpierw znalezione PV (objętość fizyczna), VG (grupa woluminów), LV (rozszerzenie logiczne) i aktywuj je, aby to zrobić, uruchom kolejno następujące polecenia:
# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan
# fsck -yfv /dev/VolGroup00/LogVol00
Po wykonaniu FSCK zwróci wynik w postaci kodu, podany kod jest unikalną liczbą reprezentującą sumę następujących wartości:
0 - Brak błędów (Brak błędów);
1 - Poprawione błędy systemu plików;
2 - System powinien zostać zrestartowany;
4 - Błędy systemu plików pozostawione nieskorygowane;
8 - Błąd operacyjny;
16 - Błędy użytkowe lub składniowe;
32 - Fsck anulowane na żądanie użytkownika;
128 — Błąd biblioteki udostępnionej.