Jak naprawić identyfikator UUID w Grub po przywróceniu z innego komputera?

22

Chcę przywrócić pełną kopię zapasową tar Ubuntu 12.04 ze wszystkimi moimi dostosowaniami, dokumentami, zainstalowanym oprogramowaniem itp. Na innym komputerze.

Wykonałem kopię zapasową za pomocą następujących poleceń:

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

Na nowym komputerze wykonałem nową instalację systemu Ubuntu 12.04, przeniosłem do niego plik kopii zapasowej, a następnie przywróciłem go z plikiem kopii zapasowej w następujący sposób:

tar xvpfz backup.tgz -C /

Zgodnie z oczekiwaniami (patrz odpowiedź Mike'a Cokolwiek na to pytanie: Skopiuj dystrybucję Ubuntu ze wszystkimi ustawieniami z jednego komputera na inny ), to spowodowało błąd. Po włączeniu komputera pojawia się błąd:

error: no such device: ...

press any key to continue ...

Uważam, że przyczyną uszkodzenia Grub jest to, że identyfikator UUID szuka dopasowań na starym dysku twardym, a nie na dysku twardym komputera.

Jak mogę naprawić gruba, aby rozpoznał nowy dysk twardy? Szukałem pomocy online „Napraw GRUB UUID”, ale kroki wydawały się albo nieaktualne, albo skomplikowane. Odpowiedź Mike'a, którą zamieściłem powyżej, daje mi nadzieję, że istnieje dość prosty sposób na naprawę tego.

snowguy
źródło
1
Dlaczego nie używasz clonezilla (clonezilla.org), aby zrobić migawkę starego komputera i przywrócić go na nowym? Myślę, że to naprawdę byłoby łatwiejsze, ponieważ wydaje się, że chcesz zachować absolutnie wszystko, co jest. W przeciwnym razie tworzenie kopii zapasowej (/ home, / etc, / usr / local, / var) i przywracanie danych i dostosowań, z wyjątkiem oprogramowania, jest również bardzo łatwe ... Aby rozwiązać bieżący problem, musisz zmienić identyfikator UUID (s) w / etc / fstab i /boot/grub/menu.lst. Możesz użyć płyty instalacyjnej Ubuntu, aby uzyskać UUID (-y) lub wiersz poleceń i wprowadzić zmiany.
Golboth,

Odpowiedzi:

19

Aby rozwiązać bieżący problem, musisz zmienić identyfikatory UUID w „/ etc / fstab” i „/boot/grub/grub.cfg” (bardzo trudne).

Możesz użyć płyty instalacyjnej Ubuntu, aby uzyskać UUID (y) z gparted (wystarczy kliknąć prawym przyciskiem myszy partycję, dla której chcesz uzyskać UUID, i kliknąć „Informacje”, a następnie wybrać UUID i skopiować go za pomocą CTRL + C) lub wiersz poleceń ( sudo blkid).

Następnie musisz edytować plik „/ etc / fstab” na prawym tomie za pomocą gedit, nano lub jeszcze innego.

W terminalu wpisz:

gksudo gedit /etc/fstab

i zastąp stare UUID nowymi.

WAŻNE: Oczywiście, jeśli użyjesz do tego rozruchowej płyty CD, musisz dodać „/ media / xxxxx” przed „/ etc / fstab”: „/ media / xxxxx / etc / fstab”. Możesz także użyć gksudo gediti otworzyć plik, aby dokonać edycji.

OSTRZEŻENIE: Modyfikacja „/boot/grub/grub.cfg” jest bardzo trudna. Zwykle powinien być generowany za pomocą polecenia sudo update-grub.

Zastąp stare UUID nowymi w „/boot/grub/grub.cfg”, wprowadzając następujące dane w terminalu:

gksudo gedit /boot/grub/grub.cfg

WAŻNE: Oczywiście, jeśli użyjesz do tego rozruchowej płyty CD, musisz dodać „/ media / xxxxx” przed „/boot/grub/grub.cfg”: „/ media / xxxxx / boot / grub / grub. cfg ”. Możesz także użyć gksudo gediti otworzyć plik, aby dokonać edycji.

Jeśli korzystasz z podstępnego rozwiązania, zalecamy uruchomienie sudo update-grubpo pomyślnym uruchomieniu systemu.

Czystszym, ale prostym sposobem na poprawną konfigurację GRUB-a może być użycie dysku naprawczego rozruchu, takiego jak „Boot-Repair-Disk”: http://sourceforge.net/p/boot-repair-cd/home/Home/

Mam nadzieję, że pomoże ci to rozwiązać problem.

Jednak możesz rozważyć użycie Clonezilli do replikacji starego komputera na nowym, jak wskazano w moim komentarzu.

Golboth
źródło
Dzięki Golboth. Skończyło się na twojej sugestii użycia dysku naprawy rozruchu i to zadziałało.
snowguy,
pamiętaj, że clonezilla może tego nie naprawić. właśnie skopiowałem cały dysk twardy (przez clonezilla) na dysk SSD i miałem dokładnie ten sam identyfikator UUID dla dysku twardego i dysku SSD, ostatecznie zmieniłem identyfikator UUID ręcznie na dysku SSD, a następnie w wyżej wymienionych plikach na dysku SSD, aby nadal mieć zapasowy dysk twardy jako możliwy system operacyjny
Dennis Nolte
3

Prawdopodobnie oznacza to, że GRUB uruchamia się i wyświetla opcję uruchamiania z Ubuntu, ale kiedy wybierzesz, że się nie uruchamia?

Myślę, że są dwie opcje:

  1. Użyj edytora linii GRUB, aby zmodyfikować opcję rozruchu systemu Linux, aby poprawnie załadować system Linux (a następnie uruchom grub-install jako root, aby na stałe ustawić poprawną konfigurację).
  2. Uruchom komputer z pamięci USB Ubuntu, zamontuj partycję dyskową Ubuntu, chroot, a następnie uruchom grub-install.

Pierwszy przypadek powinien być łatwiejszy, jeśli masz tylko Ubuntu i masz tylko jeden dysk twardy, w takim przypadku wybierz opcję „Odzyskiwanie Ubuntu” i naciśnij „e”, aby edytować:

Wpis powinien wyglądać mniej więcej tak:

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

Usuń wiersz „szukaj” i zamień „root = UUID = XXXXX” w wierszu „linux” na „root = / dev / sda1”. Spróbuj uruchomić to i mam nadzieję, że po krótkim czasie wyświetli się menu odzyskiwania Ubuntu, które powinno mieć opcję grub, która powinna poprawnie zainstalować grub.

W przeciwnym razie lub jeśli wolisz nie zadzierać bezpośrednio z grubem (który powinien zawierać ostrzeżenie zdrowotne, użyj dysku CD / USB zgodnie z dokumentacją w https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2

chronitis
źródło
Do Twojej wiadomości, kiedy zaczynałem, nie widziałem opcji uruchamiania GRUB-a (może dlatego, że uruchamia się bezpośrednio w Ubuntu, ponieważ był to jedyny system operacyjny). W każdym razie doceniam twoją pomoc. Skończyło się tworzenie dysku do naprawy rozruchu.
snowguy,
Wielkie dzięki! Twoja odpowiedź uratowała mnie przed złym końcem, kiedy głupio zmieniłem UUID mojego fstab, a Ubuntu nie mógł już zacząć!
reexmonkey
0

W moim przypadku identyfikator UUID, który zainstalował grub, był inny niż obecny UUID ( sudo blkid) dla mojej partycji Windows (potwierdzony w grub.cfg). Bezskutecznie próbowałem różnych metod. W końcu zamontowałem partycję Windows za pomocą menedżera plików i uruchomiłem update-grubponownie, a identyfikator UUID został pomyślnie zaktualizowany w pliku grub.cfg.

Tavo
źródło
Program jest wywoływany update-grubi nie grub-update. Nie jest to wcale oczywiste, ponieważ zaczyna się od większości poleceń grub grub-....
Fa11enAngel
0

Co zrobiłem zamiast edytować fstab i grub:

  1. Utworzyłem kopię zapasową tych plików podczas nowej instalacji ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Przywrócono z kopii zapasowej ( tar -xvpf /mnt/remotebk/full.tar)
  3. skopiuj odtworzony plik fstab ( cp /etc/fstab /somedir/fstab.restored)
  4. przywróć moje nowe pliki instalacyjne ( tar -xvpf /somedir/boot.tar -C /)
  5. Zrestartowano i zadziałało.

Używam maszyn wirtualnych vmware, zrobiłem ten proces, aby przenieść jeden serwer linux z jednego hosta na inny.

Roberto Dimas
źródło