Uzyskiwanie dostępu do programu GRUB i trybu pojedynczego użytkownika za pomocą konsoli szeregowej
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Uwaga 16.
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 16.
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.
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.
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:
- Uruchom polecenie
useradd <username>
, aby dodać użytkownika. - Uruchom polecenie
sudo usermod -a -G sudo <username>
, aby przyznać nowe uprawnienia użytkownika głównego. - 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 reboot
polecenie , 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 16.
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 16.
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:
- Zaloguj się do systemu Red Hat za pośrednictwem protokołu SSH.
- Przełącz się do katalogu głównego.
- 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).
- Uruchom
- 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_config
i upewnij się, że właściwość PermitRootLogIn jest ustawiona nano
wartość . b. Uruchom polecenievi /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:
Aby wprowadzić GRUB, naciśnij Esc podczas ponownego uruchamiania maszyny wirtualnej.
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.
Znajdź wiersz jądra. Na platformie Azure rozpoczyna się od systemu Linux lub linux16.
Naciśnij Ctrl+E, aby przejść na końcu wiersza.
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).
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.
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 16.
Jeśli używasz programu SELinux, podczas resetowania hasła głównego pamiętaj, aby wykonać dodatkowe kroki opisane w dokumentacji oprogramowania Red Hat.
Aby wprowadzić GRUB, naciśnij Esc podczas ponownego uruchamiania maszyny wirtualnej.
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.
Znajdź wiersz jądra. Na platformie Azure rozpoczyna się od systemu linux16.
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 zinitramfs
opisem w dokumentacji oprogramowania Red Hat.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.
W powłoce wprowadź polecenie
mount -o remount,rw /sysroot
, aby ponownie zainstalować główny system plików z uprawnieniami do odczytu/zapisu.Po uruchomieniu w trybie pojedynczego użytkownika wprowadź polecenie
chroot /sysroot
, aby przełączyć się dosysroot
więzienia.Jesteś teraz w katalogu głównym i możesz rozpocząć rozwiązywanie problemów z systemem.
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.Po zakończeniu wprowadź polecenie
reboot -f
, aby ponownie uruchomić.
Uwaga 16.
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:
W edytorze tekstów otwórz plik /etc/default/grub.d/50-cloudimg-settings.cfg .
GRUB_TIMEOUT
Zmień wartość na wartość inną niż zero.W edytorze tekstów otwórz plik /etc/default/grub.
GRUB_HIDDEN_TIMEOUT=1
Oznacz jako komentarz wiersz.Upewnij się, że istnieje
GRUB_TIMEOUT_STYLE=menu
linia.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:
- W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis Ubuntu).
- Wyszukaj wiersz rozpoczynający się od systemu Linux, a następnie poszukaj ciągu ro.
- Dodaj pojedynczy po ro, upewniając się, że jest miejsce przed i po jednym.
- 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:
W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis Ubuntu).
Wyszukaj wiersz rozpoczynający się od systemu Linux, a następnie poszukaj ciągu ro.
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.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:
W programie GRUB naciśnij E, aby edytować wpis rozruchu.
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.
Dołącz element coreos.autologin=ttyS0 na końcu każdego wiersza linux$ .
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:
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.Przejdź do pozycji Parametry jądra, a następnie zaznacz pole wyboru Użyj konsoli szeregowej.
Dodaj
serial --unit=0 --speed=9600 --parity=no
do argumentów konsoli .Naciśnij F10, aby zapisać ustawienia i zakończyć.
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 .
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:
W programie GRUB naciśnij E, aby edytować wpis rozruchu (wpis SLES).
Wyszukaj wiersz jądra rozpoczynający się od systemu Linux.
Dołącz element systemd.unit=emergency.target na końcu wiersza jądra.
Naciśnij Ctrl+X, aby ponownie uruchomić przy użyciu tych ustawień, a następnie wprowadź powłokę alarmową.
Uwaga 16.
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 reboot
polecenie , 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:
- Dokumentacja konsoli szeregowej systemu Linux
- Używanie konsoli szeregowej do włączania programu GRUB w różnych dystrybucjach
- Używanie konsoli szeregowej dla wywołań NMI i SysRq
- Konsola szeregowa dla maszyn wirtualnych z systemem Windows
- Diagnostyka rozruchu
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 na temat platformy Azure.