Przegląd procesu rozruchu CentOS 7 i RHEL 7 i rozwiązywanie problemów

W tym artykule opisano proces rozruchu systemów CentOS / RHEL 7.x. Choć może pozostać podobny do poprzednich wydań, w wersji RHEL 7 wprowadza się systemd. Oprócz procesu rozruchu podam wskazówki i porady dotyczące rozwiązywania problemów.

Musisz zrozumieć proces uruchamiania, aby móc aktywnie rozwiązywać problemy podczas uruchamiania. Przejrzyj poniższe kroki, aż zapoznasz się z procesem.

Omówienie wysokiego poziomu

  • Moc + post.
  • Wyszukiwanie urządzenia wewnętrznego.
  • Oprogramowanie układowe odczytuje bootloader.
  • Program ładujący rozruchu konfiguruje (grub2).
  • Program ładujący ładuje jądro i initramfs.
  • Program ładujący przekazuje kontrolę do jądra.
  • Jądro inicjuje sprzęt + wykonuje się /sbin/initjako pid 1.
  • Systemd wykonuje wszystkie cele initrd (montuje system plików /sysroot).
  • /sysrootRdzeń FS jądra został przełączony z initramfs root ( ) na system rootfs ( /) i systemd ponownie uruchamia się jako wersja systemu.
  • Systemd szuka domyślnej jednostki docelowej i uruchamia / zatrzymuje zgodnie z konfiguracją, automatycznie rozwiązując zależności i wyświetlając stronę logowania.

Aby uzyskać więcej informacji na temat procesu uruchamiania, zapoznaj się z oficjalną dokumentacją systemu operacyjnego.

Systemowe cele

Celami są w zasadzie kontrole zależności. Mają konfigurację „przed” i „po” dokładnie dla tego, jakie usługi są wymagane do osiągnięcia tego celu. Na przykład arp.ethernet.service, firewalld.servicei tak dalej musi być rozpoczęty i działał zanim network.targetmoże zostać osiągnięty. Jeśli nie zostanie osiągnięta, usługi takie jak httpd, nfsi ldapnie może zostać uruchomiony. W RHEL / CentOS 7 można ustawić 4 cele.

  • graphical.target (interfejs GUI)
  • multi-user.target (tryb wielu użytkowników, logowanie tekstowe)
  • rescue.target (monit sulogin, podstawowa inicjalizacja systemu)
  • emergency.target (monit sulogin, pivot initramfs zakończony i system root zamontowany na / jako tylko do odczytu)

Aby wyświetlić bieżący domyślny cel rozruchowy, użyj:

systemctl get-default

Pamiętaj, że możesz to zmienić w czasie wykonywania, izolując cel. Spowoduje to uruchomienie / zatrzymanie wszystkich usług związanych z nowym celem, więc należy zachować ostrożność (patrz systemctl isolate new.target).

Tryb pojedynczego użytkownika

Są chwile, kiedy trzeba będzie uruchomić system w trybie pojedynczego użytkownika, aby rozwiązać problem z systemem operacyjnym. W tym przykładzie pokażę, jak używać rescue.target„trybu pojedynczego użytkownika” na RHEL / CentOS 7.

  1. Przerwij menu grub2, naciskając „e”, aby edytować po wyświetleniu monitu w menu grub.
  2. Znajdź wiersz określający wersję jądra ( vmlinuz ) i dołącz do niego następujące informacje:systemd.unit=rescue.target
  3. Naciśnij „Ctrl + x”, aby rozpocząć.
  4. Następnie zostaniesz poproszony o podanie hasła root, aby kontynuować, po wyjściu z powłoki ratunkowej proces rozruchu będzie nadal ładował domyślny cel.

Odzyskiwanie hasła roota

Ten proces różni się nieco od tego, który stosowaliśmy w poprzednich wersjach, ale jest to proste zadanie i wymaga tylko kilku kroków. Jeśli chcesz odzyskać poświadczenia, możesz użyć tej metody w celu uzyskania dostępu do maszyny wirtualnej. Nadal możesz uruchomić komputer z dysku CD na żywo, zamontować główny system plików i edytować hasło, ale ta metoda jest przestarzała i wymaga większego wysiłku.

  1. Uruchom ponownie system.
  2. Przerwij menu grub2, naciskając „e”, aby edytować po wyświetleniu monitu w menu grub.
  3. Przesuń kursor na koniec linii określającej jądro ( vmlinuz ). Możesz usunąć wszystkie inne konsole inne niż TTY0, jednak ten krok może nie być konieczny w twoim środowisku.
  4. Dołącz rd.break( bez cudzysłowów ), który przerwie proces rozruchu tuż przed przekazaniem formantu z initramfs do rzeczywistego systemu.
  5. Ctrl + x, aby uruchomić.

W tym momencie prezentowana jest powłoka główna z systemem plików root podłączonym w trybie tylko do odczytu /sysroot. Będziemy musieli zamontować go ponownie z uprawnieniami do zapisu.

Ponownie zamontować /sysroot.

# mount -oremount,rw /sysroot

Przejdź do więzienia chroot.

# chroot /sysroot

Zmień hasło użytkownika, dla którego mamy nieaktualne dane logowania.

# passwd <username>

Jeśli używasz SElinux, powinieneś rozważyć ponowne etykietowanie wszystkich plików przed kontynuowaniem procesu uruchamiania. Tę część można pominąć, jeśli nie korzystasz z SElinux.

# touch /.autorelabel

Wyjdź dwa razy, a system czysto uruchomi się od miejsca, w którym go przerwaliśmy.

Przeglądanie dzienników z poprzednich butów

Przydatne może być przeglądanie dzienników poprzednich nieudanych prób rozruchu. Jeśli dzienniki dzienników zostały utrwalone (zwykle przechowywane w pamięci i wydawane podczas rozruchu), można to zrobić za pomocą journalctlnarzędzia. Wykonaj następujące kroki, jeśli chcesz skonfigurować trwałe rejestrowanie rozruchu.

Jako root utwórz plik dziennika, aby zapisać te informacje.

# mkdir -p 2775 /var/log/journal && chown :systemd-journal /var/log/journal
# systemctl restart systemd-journald

Aby sprawdzić dzienniki poprzedniego rozruchu, użyj -bopcji z journalctl. Bez żadnych argumentów -bfiltruje dane wyjściowe tylko do wiadomości dotyczących ostatniego rozruchu. Liczba ujemna tego argumentu spowoduje odfiltrowanie poprzednich butów. Na przykład:

# journalctl -b-1 -p err

Spowoduje to wyświetlenie dzienników błędów z rozruchu, które wystąpiły przed najnowszym. Powinieneś zmienić wartość liczbową, aby odzwierciedlić boot, który chcesz wyświetlić.

Naprawianie błędów dysku i systemu plików

Jednym z najczęstszych błędów czasu rozruchu jest źle skonfigurowany /etc/fstabplik. Ty NIE MOŻESZ użyć rescue.target, aby naprawić /etc/fstabbłąd. Większość z tych problemów będzie wymagać użycia, emergency.targetponieważ „ratowanie” wymaga bardziej funkcjonalnego systemu.

Oto przykłady problemów, które wymagają emergency.target:

  1. Uszkodzony system plików.
  2. Nieistniejący UUID w /etc/fstab.
  3. Nieistniejący punkt montowania w /etc/fstab.
  4. Niepoprawna opcja montażu w /etc/fstab.

Ważne : po edycji /etc/fstabpliku w trybie awaryjnym należy uruchomić następujące środki bezpieczeństwa:

# systemctl daemon-reload

Oto przykład instruktażowy. Zamierzamy uruchomić komputer w trybie awaryjnym, aby usunąć fałszywy wpis /etc/fstab.

  1. Przerwij menu grub2, naciskając „e”, aby edytować po wyświetleniu monitu w menu grub.
  2. Znajdź wiersz określający wersję jądra ( vmlinuz ) i dołącz do niego następujące informacje:systemd.unit=emergency.target
  3. Naciśnij „Ctrl + x”, aby uruchomić.
  4. Zostaniesz poproszony o podanie hasła root, aby kontynuować.
  5. Zamontuj ponownie /, abyśmy mogli wprowadzić zmiany w fstabpliku:# mount -oremount,rw /
  6. Możemy użyć mountpolecenia, aby zobaczyć, który wpis powoduje błąd:# mount -a
  7. Usuń niepoprawny wpis z fstabpliku.
  8. Użyj mount -aponownie, aby upewnić się, że błąd został rozwiązany.
  9. Użyj, systemctl daemon-reloadjak wspomniałem wcześniej, aby ponownie załadować wszystkie pliki jednostek i ponownie utworzyć całe drzewo zależności.

Po wyjściu z powłoki awaryjnej system zakończy uruchamianie z celu awaryjnego, a następnie będziesz mógł kontynuować jak zwykle od tego momentu. Ten przykład został właśnie użyty, aby pokazać proces używania celu awaryjnego do wprowadzania trwałych zmian w plikach w systemie.

Problemy z programem ładującym z Grub 2

/boot/grub2/grub.cfgPlik jest główny plik konfiguracyjny. Nigdy nie edytuj tego pliku ręcznie. Zamiast tego użyj grub2-mkconfigdo wygenerowania nowej konfiguracji grub2 przy użyciu zestawu różnych plików konfiguracyjnych i listy zainstalowanych jąder. grub2-mkconfigKomenda będzie wyglądać w /etc/default/grubprzypadku opcji, takich jak timeout domyślne menu i jądra linii poleceń użyć, a następnie użyć zestawu skryptów w /etc/grub.d/celu wygenerowania wynikowy plik konfiguracyjny.

Oto tekstowy schemat tego związku.

/boot/grub2/grub.cfg
               |
               |__________________
               |                  |
         /etc/default/grub         /etc/grub.d/*

Ważne: Aby edytować główny plik grub.cfg, musisz wprowadzić żądane zmiany /etc/default/grubw plikach /etc/grub.d/i, a następnie utworzyć nowy grub.cfg, uruchamiając:

# grub2-mkconfig > /boot/grub2/grub.cfg

Rozwiązywanie problemów z grub

/boot/grub2/grub.cfgPrzed rozwiązywaniem problemów należy zrozumieć składnię pliku.

  • Po pierwsze, pozycje rozruchowe są kodowane w blokach „menuentry”. W tych blokach linux16i initrd16linie wskazują jądro, które ma zostać załadowane z dysku (wraz z wierszem poleceń jądra) i initramfs, które mają zostać załadowane. Podczas interaktywnej edycji przy starcie, tabulacja służy do znajdowania tych linii.
  • Linie „ustaw root” wewnątrz tych bloków nie wskazują głównego systemu plików dla systemu RHEL / CentOS 7, ale wskazują system plików, z którego grub2 powinien załadować pliki jądra i initramfs. Składnia jest tym, harddrive.partitiongdzie hd0jest pierwszy dysk twardy w systemie, a hd1drugi. Partycje są wskazane jak msdos1dla pierwszej partycji MBR lub gpt1pierwszej partycji GPT.

Przykład z /boot/grub2/grub.cfg:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-514.el7.x86_64-advanced-a2531d12-46f8-4a0f-8a5c-b48d6ef71275' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  123455ae-46f8-4a0f-8a5c-b48d6ef71275
    else
      search --no-floppy --fs-uuid --set=root 123455ae-46f8-4a0f-8a5c-b48d6ef71275
    fi

Jeśli musisz ponownie zainstalować program ładujący na urządzeniu, użyj następującego polecenia.

# grub2-install <device>

Naprawianie uszkodzonej instalacji grub

W przypadkach, gdy system nie uruchomi się po przejściu do menu grub2.

  • Powinieneś zacząć od edycji menu grub i wyszukiwania błędów składniowych. Jeśli znajdziesz taki, popraw go i przejdź do systemu, aby wprowadzić trwałe zmiany w celu rozwiązania problemu.
  • Jeśli nie możesz znaleźć żadnych błędów, zapoznaj się z powyższą sekcją, w której uruchamiamy system w celu awaryjnym. Musisz ponownie zamontować root ( /).
  • Wyświetl bieżącą konfigurację grub2 za pomocą następującego polecenia: # grub2-mkconfig
  • Jeśli nie widzisz żadnych błędów, prawdopodobnie ktoś dokonał edycji /boot/grub2/grub.cfgpliku. Nie modyfikuj tego pliku. Odbuduj konfigurację za pomocą następującego polecenia:# grub2-mkconfig > /boot/grub2/grub.cfg

Po przebudowaniu konfiguracji gruba powinno być możliwe ponowne uruchomienie bez żadnych problemów.



Leave a Comment

Jak zainstalować Anchor CMS na CentOS 7 LAMP VPS

Jak zainstalować Anchor CMS na CentOS 7 LAMP VPS

Używasz innego systemu? Anchor CMS to bardzo prosty i niezwykle lekki, darmowy i otwarty system zarządzania treścią (CMS) Blog Engine, który

Jak zaktualizować CentOS 7, Ubuntu 16.04 i Debian 8

Jak zaktualizować CentOS 7, Ubuntu 16.04 i Debian 8

Podczas konfigurowania nowego serwera Linux zaleca się aktualizację jądra systemu i innych pakietów do najnowszej stabilnej wersji. W tym artykule

Skonfiguruj klaster RethinkDB w CentOS 7

Skonfiguruj klaster RethinkDB w CentOS 7

Wprowadzenie RethinkDB to baza danych NoSQL, która przechowuje dane jako dokumenty JSON. Ma bardzo intuicyjny język zapytań i funkcje powszechnie dostępne

Skonfiguruj Magento na CentOS 6

Skonfiguruj Magento na CentOS 6

Niezależnie od tego, czy chcesz umieścić zapasy sklepów online, czy po prostu prosty sklep z akcesoriami technicznymi, Magento jest doskonałym rozwiązaniem dla eCommerce online. Ten artykuł

Jak zainstalować i skonfigurować OrientDB Community Edition na CentOS 7

Jak zainstalować i skonfigurować OrientDB Community Edition na CentOS 7

OrientDB to wielomodowy model open source NoSQL DBMS nowej generacji. Dzięki obsłudze wielu modeli danych, OrientDB może zapewnić większą funkcjonalność i elastyczność

Jak zainstalować Neos CMS na CentOS 7

Jak zainstalować Neos CMS na CentOS 7

Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo

Jak zainstalować Vtiger CRM Open Source Edition na CentOS 7

Jak zainstalować Vtiger CRM Open Source Edition na CentOS 7

Vtiger CRM to popularna aplikacja do zarządzania relacjami z klientami, która może pomóc przedsiębiorstwom zwiększyć sprzedaż, zapewnić obsługę klienta i zwiększyć zyski. ja

Jak zainstalować MaraDNS na CentOS 6

Jak zainstalować MaraDNS na CentOS 6

MaraDNS to lekki, ale solidny program serwera DNS typu open source. W porównaniu z innymi aplikacjami tego samego rodzaju, takimi jak ISC BIND, PowerDNS i djbdns

Instalowanie Netdata na CentOS 7

Instalowanie Netdata na CentOS 7

Używasz innego systemu? Netdata jest wschodzącą gwiazdą w dziedzinie monitorowania wskaźników systemowych w czasie rzeczywistym. W porównaniu z innymi narzędziami tego samego rodzaju, Netdata:

Jak zainstalować Starbound Server na CentOS 7

Jak zainstalować Starbound Server na CentOS 7

Używasz innego systemu? W tym samouczku wyjaśnię, jak skonfigurować serwer Starbound na CentOS 7. Wymagania wstępne Musisz mieć tę grę na sobie

Clustering RabbitMQ na CentOS 7

Clustering RabbitMQ na CentOS 7

RabbitMQ to broker komunikatów typu open source, który obsługuje AMQP, STOMP i inne technologie komunikacyjne. Jest szeroko stosowany w aplikacjach dla przedsiębiorstw

Skonfiguruj SA-MP San Andreas Multiplayer Server na CentOS 6

Skonfiguruj SA-MP San Andreas Multiplayer Server na CentOS 6

Witamy w innym samouczku Vultr. Tutaj dowiesz się, jak zainstalować i uruchomić serwer SAMP. Ten przewodnik został napisany dla CentOS 6. Wymagania wstępne Będziesz potrzebował

Zainstaluj Elgg na CentOS 7

Zainstaluj Elgg na CentOS 7

Używasz innego systemu? Elgg to silnik sieci społecznościowych typu open source, który umożliwia tworzenie środowisk społecznościowych, takich jak kampusowe sieci społecznościowe

Jak zainstalować serwer RStudio na CentOS 7

Jak zainstalować serwer RStudio na CentOS 7

RStudio Server to internetowa wersja RStudio, która jest serią narzędzi zaprojektowanych w celu ułatwienia kodowania przy użyciu języka programowania R. W thi

Instalowanie Bolt CMS na CentOS 7

Instalowanie Bolt CMS na CentOS 7

Bolt to open source CMS napisany w PHP. Kod źródłowy Bolts jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Bolt CMS na nowym CentOS 7 Vult

Jak zainstalować Elasticsearch na instancji serwera Vultr CentOS 7

Jak zainstalować Elasticsearch na instancji serwera Vultr CentOS 7

Elasticsearch to popularny wyszukiwarka pełnotekstowa i silnik analityczny typu open source. Dzięki swojej wszechstronności, skalowalności i łatwości użytkowania, Elasticsearch jest szeroko rozpowszechniony

Wdróż Kubernetes za pomocą Kubeadm na CentOS 7

Wdróż Kubernetes za pomocą Kubeadm na CentOS 7

Omówienie Ten artykuł ma na celu pomóc ci w szybkim uruchomieniu klastra Kubernetes z kubeadm. W tym przewodniku zostaną wdrożone dwa serwery

Sails.js należy skonfigurować do programowania w CentOS 7

Sails.js należy skonfigurować do programowania w CentOS 7

Używasz innego systemu? Wprowadzenie Sails.js to framework MVC dla Node.js, podobny do Ruby on Rails. Umożliwia tworzenie nowoczesnych aplikacji wer

Jak zainstalować PufferPanel (bezpłatny panel sterowania Minecraft) na CentOS 7

Jak zainstalować PufferPanel (bezpłatny panel sterowania Minecraft) na CentOS 7

Wprowadzenie W tym samouczku zainstaluj PufferPanel na naszym Vultr VPS. PufferPanel to otwarty, darmowy panel kontrolny do zarządzania tobą

Lepsze narzędzia monitorowania dla Ubuntu i CentOS

Lepsze narzędzia monitorowania dla Ubuntu i CentOS

Wprowadzenie Systemy Linux są domyślnie dostarczane z narzędziami do monitorowania, takimi jak top, df i du, które pomagają monitorować procesy i miejsce na dysku. Często jednak są

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.