Mam dysk twardy laptopa w zewnętrznej obudowie, której używam jako dużego pendrive. Dla dodatkowej niespodzianki zainstalowałem na nim Linuksa, dzięki czemu mogę uruchomić dowolną maszynę z moją wybraną dystrybucją (np. Do odzyskiwania danych lub naprawy uszkodzonego systemu lub po prostu za pomocą pożyczonego laptopa bez niszczenia wstępnie zainstalowanego systemu Windows). Problem polega na tym, że w zależności od konfiguracji sprzętowej dysk twardy USB może być widoczny pod różnymi ścieżkami. Do konfiguracji gruba używam po prostu, (hda0,0)
ponieważ jest to związane z urządzeniem, z którego grub został uruchomiony. Mam wpisy UUID w /etc/fstab
. Podaję również rootwait
parametry jądra, aby czekało na ustabilizowanie się podsystemu USB przed próbą zamontowania urządzenia.
Co mam przekazać jako jądro root=
? Aktualnie uruchom raz z pendrive, sprawdź komunikaty debugowania, aby zobaczyć, które /dev/sdX
urządzenie zostało przypisane do napędu USB przez jądro, a następnie uruchom ponownie i edytuj konfigurację grub. Nie mogę nic zmienić na komputerze oprócz włączenia Boot from USB hard drive
w BIOS i ustawienia wyższego priorytetu niż wewnętrzne dyski twarde.
Istnieje wiele skryptów generujących initrd, które zawierają obsługę UUID w ścieżce urządzenia root, niestety natywny Gentoo (genkernel) nie obsługuje rootwait
i nie miałem szczęścia próbować używać innych.
Proces uruchamiania przebiega w ten sposób ( jest podobny w Windows ):
- BIOS wybiera urządzenie rozruchowe i ładuje cokolwiek, co jest jego MBR (którym jest grub grub 1).
- Grub ładuje swoją konfigurację i pliki etapu 2 z urządzenia, które ustawił
root
, używając(hd0)
dla urządzenia, z którego został załadowany przez BIOS. - Grub ładuje i uruchamia jądro (wciąż ta sama numeracja, więc mogę użyć
(hd0,0)
ponownie). - Jądro inicjuje wszystkie wbudowane urządzenia (
rootwait
czy to teraz magia). - Jądro montuje partycję, w której został przekazany
root
(jest to parametr jądra, a nie parametr grub). init.d
uruchamia proces uruchamiania użytkownika, w tym montowanie elementów z/etc/fstab
.
Część 5 daje mi problemy.
Mogę się pomylić, a może po prostu źle cię zrozumieć, ale czy wybór urządzenia rozruchowego nie jest czymś, co można skonfigurować w systemie BIOS komputera, na którym się uruchamiasz?
Myślę, że będzie to kwestia wyboru napędu USB, na którym GRUB zostanie zainstalowany jako program ładujący, a następnie wybrania dystrybucji, którą chcesz uruchomić z menu GRUB.
źródło
Możesz użyć:
źródło