Uzyskiwanie dostępu do trybu GRUB i trybu pojedynczego użytkownika przy użyciu konsoli szeregowej

Uwaga

CentOS, do którego odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ użycie i odpowiednio zaplanuj. Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące końca życia systemu CentOS.

GRand Unified Bootloader (GRUB) jest prawdopodobnie pierwszą rzeczą, którą widzisz podczas rozruchu maszyny wirtualnej. Ponieważ jest ona wyświetlana przed uruchomieniem systemu operacyjnego, program GRUB nie jest dostępny za pośrednictwem protokołu SSH. W programie GRUB można między innymi zmodyfikować konfigurację rozruchu w celu uruchomienia w trybie pojedynczego użytkownika.

Tryb pojedynczego użytkownika to minimalne środowisko z minimalną funkcjonalnością. Może to być przydatne do badania problemów z rozruchem, problemów z systemem plików lub problemów z siecią. Mniej usług może działać w tle, a w zależności od poziomu uruchomieniowego system plików może nawet nie zostać zainstalowany automatycznie.

Tryb pojedynczego użytkownika jest również przydatny w sytuacjach, gdy maszynę wirtualną można skonfigurować tak, aby akceptowała tylko klucze SSH na potrzeby logowania. W takim przypadku możesz użyć trybu pojedynczego użytkownika do utworzenia konta z uwierzytelnianiem hasłem.

Uwaga

Usługa konsoli szeregowej umożliwia dostęp do konsoli szeregowej maszyny wirtualnej tylko użytkownikom z uprawnieniami współautora lub wyższymi.

Aby wprowadzić tryb pojedynczego użytkownika, wprowadź grub podczas rozruchu maszyny wirtualnej i zmodyfikuj konfigurację rozruchu w programie GRUB. Zobacz szczegółowe instrukcje dotyczące wprowadzania grub w następnej sekcji. Ogólnie rzecz biorąc, jeśli maszyna wirtualna została skonfigurowana do wyświetlania narzędzia GRUB, możesz użyć przycisku ponownego uruchomienia w konsoli szeregowej maszyny wirtualnej, aby ponownie uruchomić maszynę wirtualną i wyświetlić plik GRUB.

Zrzut ekranu przedstawiający przycisk Uruchom ponownie maszynę wirtualną wyświetlany na pasku narzędzi.

Ogólny dostęp do programu GRUB

Aby uzyskać dostęp do narzędzia GRUB, uruchom ponownie maszynę wirtualną, gdy okienko Konsoli szeregowej jest otwarte. Niektóre dystrybucje wymagają danych wejściowych klawiatury, aby wyświetlić grub, a inne automatycznie wyświetlają grub przez kilka sekund, aby umożliwić wprowadzanie klawiatury użytkownika w celu anulowania limitu czasu.

Aby mieć dostęp do trybu pojedynczego użytkownika, upewnij się, że grub jest włączony na maszynie wirtualnej. W zależności od dystrybucji może być konieczne wykonanie niektórych czynności konfiguracyjnych w celu zapewnienia włączenia programu GRUB. Aby uzyskać informacje specyficzne dla dystrybucji, zobacz następną sekcję.

Uruchom ponownie maszynę wirtualną, aby uzyskać dostęp do programu GRUB w konsoli szeregowej

Możesz ponownie uruchomić maszynę wirtualną w konsoli szeregowej, umieszczając wskaźnik myszy na przycisku Uruchom ponownie , a następnie wybierając pozycję Uruchom ponownie maszynę wirtualną. W dolnej części okienka zostanie wyświetlone powiadomienie o ponownym uruchomieniu.

Możesz również ponownie uruchomić maszynę wirtualną, uruchamiając polecenie SysRq "b", jeśli jest włączone środowisko SysRq . Aby dowiedzieć się, czego można oczekiwać od narzędzia GRUB podczas ponownego uruchamiania, zobacz instrukcje dotyczące dystrybucji w następnych sekcjach.

Animowany plik GIF przedstawia interfejs wiersza polecenia. Użytkownik wybierze pozycję Uruchom ponownie maszynę wirtualną na pasku narzędzi, a następnie maszyna wirtualna M w konsoli szeregowej zostanie ponownie uruchomiona.

Ogólny dostęp w trybie pojedynczego użytkownika

Jeśli nie skonfigurowano konta z uwierzytelnianiem hasłem, może być potrzebny ręczny dostęp do trybu pojedynczego użytkownika. Zmodyfikuj konfigurację narzędzia GRUB, aby ręcznie wprowadzić tryb pojedynczego użytkownika. Po wykonaniu tej czynności zobacz sekcję "Używanie trybu pojedynczego użytkownika do resetowania lub dodawania hasła", aby uzyskać dalsze instrukcje.

Jeśli nie można uruchomić maszyny wirtualnej, dystrybucje często automatycznie upuszczają Cię w trybie pojedynczego użytkownika lub w trybie awaryjnym. Inne dystrybucje wymagają jednak dodatkowej konfiguracji, takiej jak skonfigurowanie hasła głównego, zanim będą mogły automatycznie wprowadzić Cię do trybu pojedynczego użytkownika lub trybu awaryjnego.

Resetowanie lub dodawanie hasła przy użyciu trybu pojedynczego użytkownika

Po przejściu do trybu pojedynczego użytkownika dodaj nowego użytkownika z uprawnieniami sudo, wykonując następujące czynności:

  1. Uruchom polecenie useradd <username> , aby dodać użytkownika.
  2. Uruchom polecenie sudo usermod -a -G sudo <username> , aby przyznać nowe uprawnienia główne użytkownika.
  3. Użyj polecenia passwd <username> , aby ustawić hasło dla nowego użytkownika. Następnie możesz zalogować się jako nowy użytkownik.

Dostęp do systemu Red Hat Enterprise Linux (RHEL)

Jeśli RHEL nie może normalnie uruchomić, automatycznie przechodzi w tryb jednego użytkownika. Jeśli jednak nie skonfigurowano dostępu głównego dla trybu pojedynczego użytkownika, nie masz hasła głównego i nie możesz się zalogować. Istnieje obejście (zobacz sekcję "Ręczne wprowadzanie trybu pojedynczego użytkownika w systemie RHEL"), ale sugerujemy skonfigurowanie początkowo dostępu głównego.

Dostęp grub w RHEL

Funkcja RHEL jest dostarczana z włączonym narzędziem GRUB. Aby wprowadzić grub, uruchom ponownie maszynę wirtualną, uruchamiając sudo rebootpolecenie , a następnie naciśnij dowolny klawisz. Powinno zostać wyświetlone okienko GRUB. Jeśli tak nie jest, upewnij się, że w pliku GRUB () znajdują się następujące wiersze:/etc/default/grub

Dla RHEL 8

Uwaga

Red Hat zaleca używanie narzędzia Grubby do konfigurowania parametrów wiersza polecenia jądra w systemie RHEL 8+. Obecnie nie można zaktualizować limitu czasu grub i parametrów terminalu przy użyciu grubby. Aby zmodyfikować argument GRUB_CMDLINE_LINUX dla wszystkich wpisów rozruchowych, uruchom polecenie grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0". Więcej szczegółów można znaleźć tutaj.

GRUB_TIMEOUT=5
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"

Dla RHEL 7

GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 net.ifnames=0"

Uwaga

Red Hat zawiera również dokumentację uruchamiania w trybie ratunkowym, trybie awaryjnym lub trybie debugowania oraz resetowania hasła głównego. Aby uzyskać instrukcje, zobacz Edytowanie menu terminalu podczas rozruchu.

Konfigurowanie dostępu głównego dla trybu pojedynczego użytkownika w systemie RHEL

Użytkownik główny jest domyślnie wyłączony. Tryb pojedynczego użytkownika w systemie RHEL wymaga włączenia użytkownika głównego. Jeśli musisz włączyć tryb jednego użytkownika, wykonaj następujące instrukcje:

  1. Zaloguj się do systemu Red Hat za pośrednictwem protokołu SSH.
  2. Przełącz się do katalogu głównego.
  3. Włącz hasło dla użytkownika głównego, wykonując następujące czynności:
    • Uruchom passwd root polecenie (ustaw silne hasło główne).
  4. Upewnij się, że użytkownik główny może zalogować się tylko za pośrednictwem usługi ttyS0, wykonując następujące czynności: a. Uruchom vi /etc/ssh/sshd_configpolecenie i upewnij się, że właściwość PermitRootLogIn jest ustawiona na no. b. Uruchom polecenie vi /etc/securetty file , aby zezwolić na logowanie tylko za pośrednictwem protokołu ttyS0.

Teraz, jeśli system jest uruchamiany w trybie pojedynczego użytkownika, możesz zalogować się przy użyciu hasła głównego.

Alternatywnie w przypadku systemu RHEL 7.4 lub 6.9 lub nowszego, aby włączyć tryb pojedynczego użytkownika w monitach GRUB, zobacz Uruchamianie w trybie pojedynczego użytkownika.

Ręczne wprowadzanie trybu pojedynczego użytkownika w systemie RHEL

Jeśli skonfigurowano dostęp grub i dostęp główny przy użyciu powyższych instrukcji, możesz wprowadzić tryb pojedynczego użytkownika, wykonując następujące czynności:

  1. Aby wprowadzić grub, naciśnij klawisz Esc podczas ponownego uruchamiania maszyny wirtualnej.

  2. W programie GRUB naciśnij klawisz E, aby edytować system operacyjny, w ramach który chcesz uruchomić. System operacyjny jest zwykle wyświetlany w pierwszym wierszu.

  3. Znajdź linię jądra. Na platformie Azure zaczyna się od systemu Linux lub Linux16.

  4. Naciśnij klawisze Ctrl+E, aby przejść do końca wiersza.

  5. Na końcu wiersza dodaj element systemd.unit=rescue.target.

    Ta akcja powoduje przejście do trybu pojedynczego użytkownika. Jeśli chcesz użyć trybu awaryjnego, dodaj element systemd.unit=emergency.target na końcu linii (zamiast systemd.unit=rescue.target).

  6. Naciśnij klawisze Ctrl+X, aby zamknąć i ponownie uruchomić z zastosowanymi ustawieniami.

    Przed wprowadzeniem trybu pojedynczego użytkownika zostanie wyświetlony monit o podanie hasła administratora. To hasło zostało utworzone w poprzednich instrukcjach.

    Animowany plik GIF przedstawia interfejs wiersza polecenia. Użytkownik wybiera serwer, lokalizuje koniec wiersza jądra, a następnie wprowadza określony tekst.

Wprowadź tryb pojedynczego użytkownika bez włączonego konta głównego w systemie RHEL

Jeśli użytkownik główny nie został włączyć, postępjąc zgodnie z wcześniejszymi instrukcjami, nadal możesz zresetować hasło główne, wykonując następujące czynności:

Uwaga

Jeśli używasz programu SELinux, podczas resetowania hasła głównego wykonaj dodatkowe kroki opisane w dokumentacji usługi Red Hat.

  1. Aby wprowadzić grub, naciśnij klawisz Esc podczas ponownego uruchamiania maszyny wirtualnej.

  2. W programie GRUB naciśnij klawisz E, aby edytować system operacyjny, w ramach który chcesz uruchomić. System operacyjny jest zwykle wyświetlany w pierwszym wierszu.

  3. Znajdź linię jądra. Na platformie Azure zaczyna się od systemu Linux16.

  4. Na końcu wiersza dodaj rd.break na końcu wiersza. Pozostaw spację między linią jądra a rd.break.

    Ta akcja przerywa proces rozruchu przed przekazaniem kontrolki z do systemd, zgodnie z initramfs opisem w dokumentacji usługi Red Hat.

  5. Naciśnij klawisze Ctrl+X, aby zamknąć i ponownie uruchomić z zastosowanymi ustawieniami.

    Po ponownym uruchomieniu nastąpi przejście w tryb awaryjny z systemem plików tylko do odczytu.

  6. W powłoce wprowadź polecenie mount -o remount,rw /sysroot , aby ponownie instalować główny system plików z uprawnieniami do odczytu/zapisu.

  7. Po rozruchu w trybie jednego użytkownika, wprowadź chroot /sysroot , aby przełączyć się do sysroot więzienia.

  8. Teraz jesteś w katalogu głównym i możesz rozpocząć rozwiązywanie problemów systemowych.

  9. W systemie RHEL tryb wymuszania SELinux chroni system operacyjny przed wszelkimi zmianami. Możesz uruchomić polecenie touch /.autorelabel , aby ponownie dodać etykietę systemu plików po zmianie hasła.

  10. Po zakończeniu wprowadź polecenie reboot -f , aby ponownie uruchomić.

Animowany plik GIF przedstawia proces wprowadzania trybu pojedynczego użytkownika bez włączonego konta głównego w programie RHEL w interfejsie wiersza polecenia.

Uwaga

Wykonanie powyższych instrukcji spowoduje przejście do powłoki awaryjnej, dzięki czemu można również wykonywać zadania, takie jak edytowanie fstab. Jednak zwykle sugerujemy zresetowanie hasła głównego i użycie go w celu wprowadzenia trybu pojedynczego użytkownika.

Dostęp dla systemu CentOS

Podobnie jak w przypadku systemu Red Hat Enterprise Linux tryb pojedynczego użytkownika w systemie CentOS wymaga włączenia narzędzia GRUB i użytkownika głównego.

Dostęp do programu GRUB w systemie CentOS

System CentOS jest dostarczany z włączoną opcją GRUB. Aby wprowadzić grub, uruchom ponownie maszynę wirtualną, wprowadzając sudo rebootpolecenie , a następnie naciśnij dowolny klawisz. Ta akcja powoduje wyświetlenie okienka GRUB.

Tryb pojedynczego użytkownika w systemie CentOS

Aby włączyć tryb jednego użytkownika w systemie CentOS, postępuj zgodnie z wcześniejszymi instrukcjami dotyczącymi usługi RHEL.

Dostęp do systemu Ubuntu

Obrazy systemu Ubuntu nie wymagają hasła głównego. Jeśli system jest uruchamiany w trybie pojedynczego użytkownika, można go używać bez dodatkowych poświadczeń.

Dostęp do narzędzia GRUB w systemie Ubuntu

Aby uzyskać dostęp do programu GRUB, naciśnij i przytrzymaj klawisz Esc podczas rozruchu maszyny wirtualnej.

Domyślnie obrazy systemu Ubuntu mogą nie wyświetlać automatycznie okienka GRUB. Ustawienie można zmienić, wykonując następujące czynności:

  1. W edytorze tekstów otwórz plik /etc/default/grub.d/50-cloudimg-settings.cfg .

  2. GRUB_TIMEOUT Zmień wartość na wartość inną niż zero.

  3. W edytorze tekstów otwórz plik /etc/default/grub.

  4. Dodaj komentarz do wiersza GRUB_HIDDEN_TIMEOUT=1 .

  5. Upewnij się, że istnieje GRUB_TIMEOUT_STYLE=menu linia.

  6. Uruchom sudo update-grub.

Tryb pojedynczego użytkownika w systemie Ubuntu

Jeśli system Ubuntu nie może normalnie uruchomić systemu, nastąpi automatyczne przejście do trybu pojedynczego użytkownika. Aby ręcznie wprowadzić tryb jednego użytkownika, wykonaj następujące czynności:

  1. W narzędziu GRUB naciśnij klawisz E, aby edytować wpis rozruchu (wpis Ubuntu).
  2. Poszukaj wiersza rozpoczynającego się od systemu Linux, a następnie poszukaj ciągu ro.
  3. Dodaj pojedyncze po ro, upewniając się, że jest miejsce przed i po pojedynczym.
  4. Naciśnij klawisze Ctrl+X, aby ponownie uruchomić te ustawienia i wprowadzić tryb pojedynczego użytkownika.

Wywoływanie powłoki bash w systemie Ubuntu przy użyciu narzędzia GRUB

Po wypróbowaniu powyższych instrukcji może wystąpić sytuacja (na przykład zapomniane hasło główne), w której nadal nie możesz uzyskać dostępu do trybu jednego użytkownika na maszynie wirtualnej z systemem Ubuntu. Można również poinformować jądro, aby działało /bin/bash jako init, a nie init systemu. Ta akcja zapewnia powłokę bash i umożliwia konserwację systemu. Wykonaj następujące instrukcje:

  1. W narzędziu GRUB naciśnij klawisz E, aby edytować wpis rozruchu (wpis Ubuntu).

  2. Poszukaj wiersza rozpoczynającego się od systemu Linux, a następnie poszukaj ciągu ro.

  3. Zastąp ciąg rwinit=/bin/bash.

    Ta akcja powoduje zainstalowanie systemu plików jako odczytu i zapisu oraz użycie /bin/bash go jako procesu init.

  4. Naciśnij klawisze Ctrl+X, aby ponownie uruchomić te ustawienia.

Dostęp dla systemu CoreOS

Tryb pojedynczego użytkownika w systemie CoreOS wymaga włączenia programu GRUB.

Dostęp GRUB w systemie CoreOS

Aby uzyskać dostęp do programu GRUB, naciśnij dowolny klucz podczas rozruchu maszyny wirtualnej.

Tryb pojedynczego użytkownika w systemie CoreOS

Jeśli system CoreOS nie może normalnie uruchomić systemu, automatycznie przechodzi w tryb jednego użytkownika. Aby ręcznie wprowadzić tryb jednego użytkownika, wykonaj następujące czynności:

  1. W narzędziu GRUB naciśnij klawisz E, aby edytować wpis rozruchowy.

  2. Poszukaj wiersza rozpoczynającego się od linux$. Powinny istnieć dwa wystąpienia wiersza, z których każde powinno być hermetyzowane w innym , jeśli... else — klauzula.

  3. Dołącz plik coreos.autologin=ttyS0 na końcu każdego wiersza linux$ .

  4. Naciśnij klawisze Ctrl+X, aby ponownie uruchomić te ustawienia i wprowadzić tryb pojedynczego użytkownika.

Dostęp do usługi SUSE SLES

Nowsze obrazy SLES 12 SP3+ zezwalają na dostęp za pośrednictwem konsoli szeregowej, jeśli system jest uruchamiany w trybie awaryjnym.

Dostęp grub w SUSE SLES

Dostęp do narzędzia GRUB w usłudze SLES wymaga konfiguracji modułu rozruchowego za pośrednictwem usługi YaST. Aby utworzyć konfigurację, wykonaj następujące czynności:

  1. Użyj protokołu SSH, aby zalogować się do maszyny wirtualnej SLES, a następnie uruchom polecenie sudo yast bootloader. Naciśnij klawisz Tab, naciśnij klawisz Enter, a następnie użyj klawiszy strzałek, aby przejść przez menu.

  2. Przejdź do pozycji Parametry jądra, a następnie zaznacz pole wyboru Użyj konsoli szeregowej .

  3. Dodaj serial --unit=0 --speed=9600 --parity=no do argumentów konsoli .

  4. Naciśnij klawisz F10, aby zapisać ustawienia i zakończyć pracę.

  5. Aby wprowadzić grub, uruchom ponownie maszynę wirtualną i naciśnij dowolny klawisz podczas sekwencji rozruchowej, aby wyświetlić okienko GRUB.

    Domyślny limit czasu dla grub to 1s. To ustawienie można zmodyfikować, zmieniając zmienną GRUB_TIMEOUT w pliku /etc/default/grub .

Animowany plik GIF przedstawia proces tworzenia konfiguracji bootloadera za pośrednictwem usługi YaST.

Tryb pojedynczego użytkownika w SUSE SLES

Jeśli usługa SLES nie może uruchomić się normalnie, nastąpi automatyczne wrzucenie do powłoki awaryjnej. Aby ręcznie wprowadzić powłokę awaryjną, wykonaj następujące czynności:

  1. W narzędziu GRUB naciśnij klawisz E, aby edytować wpis rozruchu (wpis SLES).

  2. Poszukaj linii jądra rozpoczynającej się od systemu Linux.

  3. Dołącz element systemd.unit=emergency.target na końcu linii jądra.

  4. Naciśnij klawisze Ctrl+X, aby ponownie uruchomić te ustawienia i wprowadzić powłokę awaryjną.

    Uwaga

    Ta akcja spowoduje przejście do powłoki awaryjnej przy użyciu systemu plików tylko do odczytu. Aby edytować wszystkie pliki, ponownie zainstaluj system plików z uprawnieniami odczytu i zapisu. W tym celu wprowadź mount -o remount,rw / wartość w powłoce.

Dostęp do systemu Oracle Linux

Podobnie jak w przypadku systemu Red Hat Enterprise Linux tryb pojedynczego użytkownika w systemie Oracle Linux wymaga włączenia narzędzia GRUB i użytkownika głównego.

Dostęp do narzędzia GRUB w systemie Oracle Linux

Oracle Linux jest dostarczany z włączonym oprogramowaniem GRUB. Aby wprowadzić grub, uruchom ponownie maszynę wirtualną, uruchamiając sudo rebootpolecenie , a następnie naciśnij klawisz Esc. Ta akcja powoduje wyświetlenie okienka GRUB. Jeśli okienko GRUB nie jest wyświetlane, upewnij się, że wartość wiersza zawiera konsolę GRUB_TERMINALszeregową (tj GRUB_TERMINAL="serial console". ). Ponownie skompiluj plik GRUB za pomocą polecenia grub2-mkconfig -o /boot/grub/grub.cfg.

Tryb pojedynczego użytkownika w systemie Oracle Linux

Aby włączyć tryb pojedynczego użytkownika w systemie Oracle Linux, postępuj zgodnie z wcześniejszymi instrukcjami dotyczącymi usługi RHEL.

Następne kroki

Aby dowiedzieć się więcej o konsoli szeregowej, zobacz:

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.