Udostępnij za pośrednictwem


Uzyskiwanie dostępu do programu GRUB i trybu pojedynczego użytkownika za pomocą konsoli szeregowej

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Uwaga

CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).

GRand Unified Bootloader (GRUB) jest prawdopodobnie pierwszą rzeczą, którą widzisz podczas rozruchu maszyny wirtualnej. Ponieważ jest wyświetlany 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 trybie pojedynczego użytkownika.

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

Tryb pojedynczego użytkownika jest również przydatny w sytuacjach, w których maszyna wirtualna może być skonfigurowana do akceptowania tylko kluczy SSH na potrzeby logowania. W takim przypadku możesz użyć trybu pojedynczego użytkownika do utworzenia konta z uwierzytelnianiem haseł.

Uwaga

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

Aby wprowadzić tryb pojedynczego użytkownika, wprowadź wartość GRUB podczas rozruchu maszyny wirtualnej i zmodyfikuj konfigurację rozruchu w programie GRUB. Zobacz szczegółowe instrukcje dotyczące wprowadzania kodu GRUB w następnej sekcji. Ogólnie rzecz biorąc, jeśli maszyna wirtualna została skonfigurowana do wyświetlania programu GRUB, możesz użyć przycisku ponownego uruchomienia w konsoli szeregowej maszyny wirtualnej, aby ponownie uruchomić maszynę wirtualną i wyświetlić program 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 programu GRUB, uruchom ponownie maszynę wirtualną, gdy zostanie otwarte okienko Konsola szeregowa. Niektóre dystrybucje wymagają wprowadzenia klawiatury w celu wyświetlenia kodu GRUB, a inne automatycznie wyświetlają grub przez kilka sekund, aby umożliwić użytkownikowi wprowadzanie klawiatury w celu anulowania limitu czasu.

Aby uzyskać dostęp do trybu pojedynczego użytkownika, upewnij się, że na maszynie wirtualnej jest włączony tryb GRUB. W zależności od dystrybucji niektóre prace konfiguracyjne mogą być konieczne, aby upewnić się, że program GRUB jest włączony. 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 usługa SysRq jest włączona. Aby dowiedzieć się, czego można oczekiwać od programu GRUB podczas ponownego uruchamiania, zapoznaj się z instrukcjami specyficznymi dla 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 ponownie uruchom maszynę wirtualną w konsoli szeregowej.

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

Może być konieczne ręczne uzyskanie dostępu do trybu pojedynczego użytkownika, jeśli nie skonfigurowano konta z uwierzytelnianiem haseł. Zmodyfikuj konfigurację GRUB, aby ręcznie wprowadzić tryb pojedynczego użytkownika. Po wykonaniu tej czynności zapoznaj się z sekcją "Używanie trybu pojedynczego użytkownika do resetowania lub dodawania hasła", aby uzyskać dalsze instrukcje.

Jeśli maszyna wirtualna nie może uruchomić się, dystrybucje często automatycznie upuszczają cię w trybie pojedynczego użytkownika lub trybie awaryjnym. Inne dystrybucje wymagają jednak dodatkowej konfiguracji, takiej jak skonfigurowanie hasła głównego, zanim będą mogły automatycznie przejść 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 użytkownika głównego.
  3. Użyj passwd <username> polecenia , 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 system RHEL nie może uruchomić się normalnie, automatycznie przechodzi do trybu pojedynczego użytkownika. Jeśli jednak nie skonfigurowaliśmy dostępu głównego dla trybu pojedynczego użytkownika, nie masz hasła głównego i nie możesz się zalogować. Istnieje obejście problemu (zobacz sekcję "Ręczne wprowadzanie trybu pojedynczego użytkownika w systemie RHEL"), ale zalecamy wstępne skonfigurowanie dostępu głównego.

Dostęp GRUB w systemie RHEL

System RHEL jest wyposażony w tryb GRUB włączony z pudełka. Aby wprowadzić kod GRUB, uruchom ponownie maszynę wirtualną, uruchamiając sudo rebootpolecenie , a następnie naciśnij dowolny. 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 systemu RHEL 8

Uwaga

System Red Hat zaleca używanie programu 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 funkcji grubby. Aby zmodyfikować argument GRUB_CMDLINE_LINUX aktualizacji dla wszystkich wpisów rozruchowych, uruchom polecenie grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0". Więcej informacji można znaleźć tutaj.

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

W przypadku systemu 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

Program Red Hat udostępnia również dokumentację dotyczącą uruchamiania w trybie ratunkowym, trybie awaryjnym lub trybie debugowania oraz resetowaniu 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 pojedynczego 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 (ustaw silne hasło główne).
  4. Upewnij się, że użytkownik główny może zalogować się tylko za pośrednictwem protokołu ttyS0, wykonując następujące czynności: a. Uruchom polecenie vi /etc/ssh/sshd_configi upewnij się, że właściwość PermitRootLogIn jest ustawiona na nowartość . b. Uruchom polecenie vi /etc/securetty file , aby zezwolić na logowanie tylko za pośrednictwem protokołu ttyS0.

Teraz, jeśli system uruchomi się 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 skonfigurowaliśmy dostęp grub i 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 Esc podczas ponownego uruchamiania maszyny wirtualnej.

  2. W programie GRUB naciśnij E, aby edytować system operacyjny, do którego chcesz przeprowadzić rozruch. System operacyjny jest zwykle wyświetlany w pierwszym wierszu.

  3. Znajdź wiersz jądra. Na platformie Azure rozpoczyna się od systemu Linux lub linux16.

  4. Naciśnij Ctrl+E, aby przejść na końcu wiersza.

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

    Ta akcja uruchamia Cię w trybie pojedynczego użytkownika. Jeśli chcesz użyć trybu awaryjnego, dodaj element systemd.unit=emergency.target na końcu wiersza (zamiast systemd.unit=rescue.target).

  6. Naciśnij Ctrl+X, aby zakończyć działanie i ponownie uruchomić przy użyciu zastosowanych ustawień.

    Przed wprowadzeniem trybu pojedynczego użytkownika zostanie wyświetlony monit o podanie hasła administratora. To hasło jest takie, które 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.

Wprowadzanie trybu pojedynczego użytkownika bez włączonego konta głównego w systemie RHEL

Jeśli użytkownik główny nie został włączony, postępują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 pamiętaj, aby wykonać dodatkowe kroki opisane w dokumentacji oprogramowania Red Hat.

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

  2. W programie GRUB naciśnij E, aby edytować system operacyjny, do którego chcesz przeprowadzić rozruch. System operacyjny jest zwykle wyświetlany w pierwszym wierszu.

  3. Znajdź wiersz jądra. Na platformie Azure rozpoczyna się od systemu linux16.

  4. Na końcu wiersza dodaj element rd.break na końcu wiersza. Pozostaw odstęp 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 oprogramowania Red Hat.

  5. Naciśnij Ctrl+X, aby zakończyć działanie i ponownie uruchomić przy użyciu zastosowanych ustawień.

    Po ponownym uruchomieniu nastąpi usunięcie w trybie awaryjnym z systemem plików tylko do odczytu.

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

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

  8. Jesteś teraz w katalogu głównym i możesz rozpocząć rozwiązywanie problemów z systemem.

  9. W systemie RHEL wymuszanie trybu selinux chroni system operacyjny przed wszelkimi zmianami. Możesz uruchomić polecenie touch /.autorelabel , aby ponownie określić etykietę systemu plików po zmianie hasła.

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

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

Uwaga

Wykonanie powyższych instrukcji pomija cię w powłoce awaryjnej, dzięki czemu można również wykonywać zadania, takie jak edytowanie fstab. Zazwyczaj sugerujemy jednak zresetowanie hasła głównego i użycie go do wprowadzania trybu pojedynczego użytkownika.

Dostęp dla systemu CentOS

Podobnie jak System Red Hat Enterprise Linux, tryb pojedynczego użytkownika w systemie CentOS wymaga włączenia programu GRUB i użytkownika głównego.

Dostęp GRUB w systemie CentOS

System CentOS jest dostarczany z włączonym programem GRUB w pudełku. Aby wprowadzić kod GRUB, uruchom ponownie maszynę wirtualną, wprowadzając sudo reboot, a następnie naciśnij dowolny. Ta akcja powoduje wyświetlenie okienka GRUB.

Tryb pojedynczego użytkownika w systemie CentOS

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

Dostęp dla systemu Ubuntu

Obrazy z systemem Ubuntu nie wymagają hasła głównego. Jeśli system zostanie uruchomiony w trybie pojedynczego użytkownika, można go użyć bez dodatkowych poświadczeń.

Dostęp GRUB w systemie Ubuntu

Aby uzyskać dostęp do programu GRUB, naciśnij i przytrzymaj 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. GRUB_HIDDEN_TIMEOUT=1 Oznacz jako komentarz wiersz.

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

  6. Uruchom program sudo update-grub.

Tryb pojedynczego użytkownika w systemie Ubuntu

Jeśli system Ubuntu nie może uruchomić się normalnie, automatycznie przechodzi do trybu pojedynczego użytkownika. Aby ręcznie wprowadzić tryb pojedynczego użytkownika, wykonaj następujące czynności:

  1. W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis Ubuntu).
  2. Wyszukaj wiersz rozpoczynający się od systemu Linux, a następnie poszukaj ciągu ro.
  3. Dodaj pojedynczy po ro, upewniając się, że jest miejsce przed i po jednym.
  4. Naciśnij Ctrl+X, aby ponownie uruchomić przy użyciu tych ustawień i wprowadzić tryb pojedynczego użytkownika.

Wywoływanie powłoki bash w systemie Ubuntu przy użyciu programu 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 pojedynczego użytkownika na maszynie wirtualnej z systemem Ubuntu. Można również poinformować jądro o uruchomieniu /bin/bash jako init, a nie init systemu. Ta akcja zapewnia powłokę powłoki bash i umożliwia konserwację systemu. Wykonaj następujące instrukcje:

  1. W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis Ubuntu).

  2. Wyszukaj wiersz rozpoczynający się od systemu Linux, a następnie poszukaj ciągu ro.

  3. Zastąp ciąg ro ciągiem rw init=/bin/bash.

    Ta akcja powoduje zainstalowanie systemu plików jako odczytu i zapisu i użycia /bin/bash jako procesu inicjowania.

  4. Naciśnij Ctrl+X, aby ponownie uruchomić przy użyciu tych ustawień.

Dostęp dla systemu CoreOS

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

Dostęp do programu GRUB w systemie CoreOS

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

Tryb pojedynczego użytkownika w systemie CoreOS

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

  1. W programie GRUB naciśnij E, aby edytować wpis rozruchu.

  2. Wyszukaj wiersz rozpoczynający się od linux$. Powinny istnieć dwa wystąpienia wiersza, z których każda jest hermetyzowana w innym przypadku, jeśli... else , klauzula.

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

  4. Naciśnij Ctrl+X, aby ponownie uruchomić przy użyciu tych ustawień i wprowadzić tryb pojedynczego użytkownika.

Dostęp do systemu SUSE SLES

Nowsze obrazy systemu SLES 12 SP3+ umożliwiają dostęp za pośrednictwem konsoli szeregowej, jeśli system uruchamia się w trybie awaryjnym.

Dostęp GRUB w systemie SUSE SLES

Dostęp GRUB w systemie SLES wymaga konfiguracji modułu ładującego rozruchu 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 Tab, naciśnij Enter, a następnie użyj 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 F10, aby zapisać ustawienia i zakończyć.

  5. Aby wprowadzić program GRUB, uruchom ponownie maszynę wirtualną i naciśnij dowolny podczas sekwencji rozruchu, aby zachować wyświetlane okienko GRUB.

    Domyślny limit czasu dla programu 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 modułu ładującego rozruchu za pośrednictwem usługi YaST.

Tryb pojedynczego użytkownika w systemie SUSE SLES

Jeśli system SLES nie może uruchomić się normalnie, zostanie automatycznie porzucony do powłoki awaryjnej. Aby ręcznie wprowadzić powłokę ratunku, wykonaj następujące czynności:

  1. W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis SLES).

  2. Wyszukaj wiersz jądra rozpoczynający się od systemu Linux.

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

  4. Naciśnij Ctrl+X, aby ponownie uruchomić przy użyciu tych ustawień, a następnie wprowadź powłokę alarmową.

    Uwaga

    Ta akcja powoduje przejście do powłoki awaryjnej z systemem plików tylko do odczytu. Aby edytować wszystkie pliki, należy ponownie zainstalować system plików z uprawnieniami do odczytu i zapisu. W tym celu wprowadź wartość mount -o remount,rw / w powłoce.

Dostęp dla systemu Oracle Linux

Podobnie jak System Red Hat Enterprise Linux, tryb pojedynczego użytkownika w systemie Oracle Linux wymaga włączenia programu GRUB i użytkownika głównego.

Dostęp GRUB w systemie Oracle Linux

System Oracle Linux jest dostarczany z włączonym programem GRUB. Aby wprowadzić kod GRUB, uruchom ponownie maszynę wirtualną, uruchamiając sudo rebootpolecenie , a następnie naciśnij Esc. Ta akcja powoduje wyświetlenie okienka GRUB. Jeśli okienko GRUB nie jest wyświetlane, upewnij się, że wartość GRUB_TERMINAL wiersza zawiera konsolę szeregową (czyli GRUB_TERMINAL="serial console"). Ponownie skompiluj program 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 systemu 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 pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.