Mam komputer z partycjami wielokrotnego rozruchu. Mam Ubuntu 14.04 na jednej partycji, Ubuntu 15.04 na drugiej i Ubuntu 16.04 na trzeciej. Czy istnieje sposób, aby dowiedzieć się z wiersza poleceń, z której partycji uruchomiłem, aby znaleźć cię na której partycji /boot/grub/grub.cfg
użyto procesu rozruchu? Mam /boot/grub/grub.cfg
na każdej z trzech partycji.
12
/boot/grub/grub.cfg
plik użyty do rozruchu mógł zostać usunięty, partycja mogła zostać usunięta z tablicy partycji, a dysk fizycznie usunięty z systemu.Odpowiedzi:
Gdy GRUB przekaże bootowanie do jądra, jądro nie ma pojęcia, co go uruchomiło i
/boot
może nie być tym, którego używał GRUB. Możesz sprawdzić czasy dostępuboot/grub/grub.cfg
w każdej z partycji, aby zobaczyć, która z nich była ostatnio dostępna. To może ci powiedzieć, którego pliku konfiguracyjnego GRUB użył.Jeśli czasy dostępu nie zostaną zaktualizowane, będziesz musiał poszukać różnic w parametrach jądra używanych przez różne pliki konfiguracyjne GRUB. Jeśli możesz je zmienić, na przykład dodać
foo=1
,foo=2
itp. DoGRUB_CMDLINE_LINUX
każdego z nich, uruchomsudo update-grub2
i uruchom ponownie, możesz sprawdzić,/proc/cmdline
które z tych wartości zostały użyte.źródło
/boot
znajduje, ale to może nie być to, czego używa grub, a ty i Katu znajdujesz zamontowaną partycję/
, ale, jak zauważył Ravexina, prawdopodobnie jeszcze mniej połączenia/
pewno. Znalezienie konfiguracji GRUB partycji użytej podczas uruchamiania? Nie rozumiem, jak to się odnosi.Jak wiesz, plik, którego szukasz, znajduje się w
/boot
katalogu twojego systemu operacyjnego. albo/boot
jest oddzielną partycją, albo nie jest; Jeśli/boot
jest oddzielną partycją należy zwracać uwagę, aby:Oznacza, że
grub.cfg
użyto znajduje się wsda2
.W przeciwnym razie powinieneś poszukać
root
:tym razem znajduje się w
sda1
.Lub nawet dla zabawy możemy sprawdzić parametry czasu rozruchu:
następnie użyj,
UUID
aby dowiedzieć się, która partycja jest Twoim rootem.Co oznacza z
sda1
.Możesz również sprawdzić parametry rozruchu, aby zobaczyć, który z
grub.cfg
nich zawiera. Działa to tylko wtedy, gdy parametry rozruchugrub.cfg
różnią się od siebie.źródło
readlink -f /dev/disk/by-uuid/<UUID>
.Aby wyświetlić urządzenie z aktualnie zamontowanym głównym systemem plików:
Aby wyświetlić aktualnie działającą wersję wydania Ubuntu:
źródło
lsb_release -rs
za każdym razem. KISSMożemy dodać prostą niestandardową pozycję menu w każdym systemie operacyjnym i zobaczylibyśmy w menu Grub, z którego OS Grub załadował swój plik konfiguracyjny.
Przykład:
Uruchamiamy do 16.04 i edytujemy plik,
/etc/grub.d/40_custom
aby dodać pozycję menu.Dbamy o to, aby plik był wykonywalny i działał
sudo update-grub
.Następnie robimy te same zmiany w innych systemach operacyjnych, po prostu używamy różnych nazw dla menu, ig zmieniamy
16.04
na15.04
i tak dalej.Jeśli wybierzemy tę pozycję menu w menu Grub podczas rozruchu, maszyna po prostu uruchomi się ponownie, stworzyliśmy je, aby nie uruchamiały żadnego systemu operacyjnego, ale aby zobaczyć, który system operacyjny jest faktycznie używany do załadowania
grub.conf
.Dodatkowe informacje
Tego rodzaju zamieszanie pojawia się, gdy instalujemy wiele systemów operacyjnych, z których wszystkie używają Gruba, a podczas instalacji systemu operacyjnego wybieramy tę samą lokalizację programu ładującego. Potrzebujemy rzeczywiście tylko jednego systemu operacyjnego, który instaluje Grub, Grub może uruchomić się z dowolną dystrybucją Linuksa, więc jeśli mamy zainstalowaną jedną dystrybucję (w tym Grub), moglibyśmy zainstalować dodatkowe systemy operacyjne bez instalowania Grub.
W starszych instalacjach dość łatwo jest obsługiwać lokalizację instalacji modułu ładującego, ponieważ możemy wybrać rekord partycji-rozruchu jako lokalizację, ale musimy zadbać o to, aby wybrać odpowiednią partycję. Tak więc jeden system operacyjny instaluje moduł ładujący do MBR, a dodatkowy system instaluje moduł ładujący do PBR partycji OS. Tę możliwość mamy tylko wtedy, gdy użyjemy opcji
Something else
-podczas instalacji.W instalacjach UEFI jest to nieco dziwniejsze, moduł ładujący zostanie zainstalowany w folderze na partycji systemowej EFI (ESP), a wiele modułów ładujących może z łatwością współistnieć. Problem polega na tym, że wszystkie smaki Ubuntu, a także niektóre inne dystrybucje linuksa zainstalują Gruba w tym samym folderze w ESP i nie mamy wyboru. Więc zainstalowanie dodatkowej dystrybucji Linuksa zastąpiłoby nasz już istniejący moduł ładujący. Jedynym sposobem, aby tego uniknąć, jest uruchomienie sesji na żywo i uruchomienie instalatora
sudo ubiquity -b
.Kolejne proste rozwiązanie
Załóżmy, że mamy trzy dystrybucje Linuksa zainstalowane na partycjach
sda1
,sda2
asda3
. Spójrzmy teraz na pozycje menu rozruchowego Grub. Podczas uruchamiania zobaczymy coś takiego:Pierwsze dwa wpisy to wpisy dla systemu operacyjnego, który wygenerował
grub.conf
plik, którego faktycznie używamy. Wpisy 3 i 4 nie są w tej chwili interesujące. Wpisy # 5, # 6, # 7 i # 8 to wpisy wygenerowane za pomocą sondy systemu operacyjnego i widzimy, na których partycjach znajdują się systemy operacyjne dla tych wpisów. Tak więc w przypadku tej małej przykład możemy stwierdzić, żegrub.config
-file faktycznie stosowanie nie należą do systemu operacyjnego nasda2
lubsda3
tylko do systemu operacyjnego nasda1
. W przypadku, gdy jeden lub więcej systemów operacyjnych jest instalowanych z osobną/boot
partycją, musielibyśmy sprawdzić, która/boot
partycja należy do którego systemu operacyjnego, ale można to łatwo zrobić, uruchamiającfindmnt
komendę w każdym systemie operacyjnym.źródło
I sprawdź, w który dysk jest podłączony
/
. Przeczytaj poniższe komentarze lub odpowiedź Ravexiny, jeśli masz/boot
zamontowane punkty.Jeśli nie masz pewności, sprawdź UUID
źródło
/boot
oddzielna partycja? wtedy/boot/grub/grub.cfg
nie znajduje się w/
partycji./
partycja się nie liczy?/boot
najpierw sprawdzić osobną .Aby dowiedzieć się, z której partycji uruchomił się użytkownik, sprawdź menu modułu ładującego przed uruchomieniem dowolnego z zainstalowanych systemów. Trudno powiedzieć, nie widząc menu modułu ładującego.
Gdzie patrzeć
Na poniższych połączonych zrzutach ekranu oznaczyłem trzy wskazówki, które można wiedzieć, z której partycji uruchomił się użytkownik.
Najbardziej widoczną wskazówką jest etykieta (3), która ma zmienić obraz tła GNU GRUB w systemie, który kontroluje menu modułu ładującego. Najłatwiej to powiedzieć, pod warunkiem, że użytkownik wcześniej go skonfigurował.
Wyjaśnienie etykiety (1)
Poszukaj partycji, która nie jest wymieniona w pozycjach menu poniżej pierwszej pozycji. Na zrzucie ekranu instalowane są tylko dwa systemy operacyjne, tj. „Ubuntu” i „Ubuntu 14.04.5 LTS”.
Ten drugi wspomniał
(on /dev/sda3)
, co oznacza, że ten pierwszy może znajdować się na/dev/sda2
lub/dev/sda1
. Aby mieć pewność, po uruchomieniu systemu, tj. „Ubuntu”, uruchom odpowiednie polecenie, aby wyświetlić listę dostępnych partycji (lsblk
wydaje się to najbardziej proste).Dopiero po porównaniu z danymi wyjściowymi
lsblk
, wiemy, że system, tj. „Ubuntu”, znajduje się w/dev/sda2
(który nie był wymieniony w pozycjach menu), z którego zarządzane jest menu modułu ładującego.Wyjaśnienie etykiety (2)
Poszukaj wersji GRUB, która jest wydrukowana u góry menu modułu ładującego. Zwróć uwagę na tę wersję i porównaj ją z wersją GRUB, która znajduje się w systemie rozruchowym, tj. „Ubuntu”.
Na zrzucie ekranu (dolna połowa):
GNU GRUB version 2.02~beta2-9
Po uruchomieniu systemu, tj. „Ubuntu”, uruchom odpowiednią komendę, aby sprawdzić wersję pakietu GRUB (
grub-install --version
jest odpowiednia i najprostsza).Jak to ma znaczenie? Ponieważ
grub-install
iupdate-grub
polecenia są dostarczane przez ten sam pakietgrub2-common
. Ponieważ menu modułu ładującego jest tworzone i aktualizowane przy użyciu narzędzi z tego samego pakietu, wersja drukowana u góry menu modułu ładującego będzie taka sama.Wyjaśnienie etykiety (3)
Ta podpowiedź wymaga ręcznej konfiguracji, ponieważ domyślnym obrazem tła menu modułu ładującego jest brak (zwykła czerń). Obraz w tle musi mieć 8-bitową głębię.
Jeśli
desktop-base
pakiet jest zainstalowany w twoim systemie, takie obrazy tła, które zostały stworzone specjalnie dla GRUB, można łatwo znaleźć z przyrostkiem nazwy pliku*grub.png
w katalogu docelowym.Aby skonfigurować obraz tła:
Otwórz
/etc/default/grub
plik jako superużytkownik, a następnie dodaj wierszGRUB_BACKGROUND=
z pełną ścieżką do wybranego obrazu i cudzysłowu.Następnie uruchom
sudo update-grub
aktualizację,/boot/grub/grub.cfg
która zawiera menu modułu ładującego. Użytkownik zobaczy dane wyjściowe podobne do poniższych.Uruchom ponownie komputer i sprawdź, czy w menu modułu ładującego nie ma widocznych zmian wprowadzonych przez polecenie aktualizacji z systemu.
W przeciwnym razie powtarzaj kroki dla innych systemów, jeden po drugim. Powtarzanie kroków byłoby niepotrzebne, gdyby użytkownik wiedział, który system ma kontrolę nad menu modułu ładującego (ponownie, zależy to od sposobu instalacji).
Zrzeczenie się
Ta odpowiedź wyjaśnia sprawdzone i dobrze przetestowane kryteria dla systemu BIOS z konfiguracją wielokrotnego rozruchu przy użyciu wersji GNU GRUB PC / BIOS. Obowiązują następujące wyjątki.
Dla UEFI odpowiednikiem systemu za pomocą wersji GNU GRUB EFI, to nie gwarantuje ani nie wiadomo, czy wydaje się być kryteria takie same jak opisane powyżej.
Nacisk kładziony jest na wygląd menu modułu ładującego (jak może wyglądać inaczej, tj. Górna połowa zrzutu ekranu), zamiast na pokazanie, jak działa ładowanie łańcucha. W związku z tym w tej odpowiedzi nie zostanie wyjaśnione, w jaki sposób „skonfigurowano rozruch wielokrotny, jak pokazano na zrzucie ekranu” .
Jeśli konfiguracja wielokrotnego rozruchu jest kiedykolwiek wykonana z dokładnie takich samych kopii podobnego systemu operacyjnego, tj. Ubuntu 14.04, Kubuntu 14.04, Xubuntu 14.04 itd., To jedynym niezawodnym sposobem na sprawdzenie, z której partycji uruchomił się użytkownik, jest etykieta (3).
Etykieta (3) może działać lepiej przy użyciu niestandardowego obrazu tła, który wyraźnie zapisuje, z którego jest uruchamiany, tj. „To menu rozruchowe jest zarządzane z / dev / sda1”. Podobnie, w odniesieniu do „jak utworzyć niestandardowy obraz tła dla GRUB” nie zostanie wyjaśnione w tej odpowiedzi.
TL; DR Spójrz na menu modułu ładującego przed uruchomieniem dowolnego z zainstalowanych systemów. Najłatwiejszym i najbardziej niezawodnym sposobem na poznanie jest label (3), który polega na ręcznym ustawieniu obrazu tła GRUB.
źródło