Як виправити UUID в Grub після відновлення з іншої машини?


22

Я хочу відновити повне резервне копіювання смоли Ubuntu 12.04 з усіма своїми налаштуваннями, документами, встановленим програмним забезпеченням тощо на іншій машині.

Я створив резервну копію з такими командами:

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

На новому комп’ютері я здійснив нову установку Ubuntu 12.04, перемістив на нього файл резервного копіювання, а потім відновив файл резервного копіювання із наступним:

tar xvpfz backup.tgz -C /

Як і очікувалося (див. Відповідь Майка Що б там не було на це питання: Скопіюйте дистрибутив Ubuntu з усіма налаштуваннями з одного комп’ютера на інший ), ця помилка була зламана. Коли я включаю комп'ютер, я отримую помилку:

error: no such device: ...

press any key to continue ...

Я вважаю, що причина Grub зламана в тому, що UUID шукає збіги на старому жорсткому диску, а не на жорсткому диску для комп'ютера.

Як я можу виправити гріб, щоб розпізнати новий жорсткий диск? Я звернувся до Інтернету за допомогою "Fix GRUB UUID", але кроки видалися застарілими або складними. Відповідь Майка, яку я зв'язав вище, дає мені надію, що існує досить простий спосіб виправити це.


1
Чому ви не використовуєте clonezilla (clonezilla.org) для того, щоб зробити знімок свого старого комп'ютера і відновити його на новому? Я думаю, що насправді було б простіше, тому що ти, здається, хочеш зберегти абсолютно все як є. В іншому випадку зробити резервну копію (/ home, / etc, / usr / local, / var) та відновити ваші дані та налаштування, за винятком програмного забезпечення, дуже просто ... Для вирішення поточної проблеми вам доведеться змінити UUID (s) у / etc / fstab та /boot/grub/menu.lst. Ви можете використовувати компакт-диск для встановлення Ubuntu, щоб отримати UUID (sparted або командний рядок) та внести зміни.
Голбот

Відповіді:


19

Щоб вирішити поточну проблему, вам доведеться змінити UUID (ів) на "/ etc / fstab" і "/boot/grub/grub.cfg" (дуже складно).

Ви можете використовувати компакт-диск для встановлення Ubuntu, щоб отримати UUID (s) з gparted (вам просто потрібно клацнути правою кнопкою миші на розділі, для якого потрібно отримати UUID, і натиснути на "Інформація", потім вибрати UUID і скопіювати його за допомогою CTRL + C) або командного рядка ( sudo blkid).

Тоді вам потрібно відредагувати "/ etc / fstab" на потрібному томі за допомогою gedit, nano чи іншого.

У терміналі введіть:

gksudo gedit /etc/fstab

і замінити старі UUID на нові.

ВАЖЛИВО: Звичайно, якщо ви використовуєте завантажувальний компакт-диск для цього, вам доведеться додати "/ media / xxxxx" до "/ etc / fstab": "/ media / xxxxx / etc / fstab". Ви також можете використовувати gksudo geditта відкривати файл для редагування.

УВАГА: Змінення "/boot/grub/grub.cfg" дуже складне. Він, як правило, генерується за допомогою команди sudo update-grub.

Замініть старі UUID на нові в "/boot/grub/grub.cfg", ввівши наступні в терміналі:

gksudo gedit /boot/grub/grub.cfg

ВАЖЛИВО: Звичайно, якщо ви використовуєте завантажувальний компакт-диск для цього, вам доведеться додати "/ media / xxxxx" перед "/boot/grub/grub.cfg": "/ media / xxxxx / boot / grub / grub. cfg ". Ви також можете використовувати gksudo geditта відкривати файл для редагування.

Якщо ви використовуєте складне рішення, я рекомендую вам запуститись sudo update-grubпісля успішної завантаження системи.

Більш чистим, але простим способом належної настройки конфігурації grub може бути використання диска для відновлення завантаження типу "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

Сподіваюся, що це допоможе вам вирішити свою проблему.

Однак ви можете розглянути можливість використання Clonezilla для копіювання старого комп'ютера на новий, як зазначено в моєму коментарі.


Спасибі Голбот. Я в кінцевому підсумку скористався вашою пропозицією використовувати диск для відновлення завантаження, і це спрацювало.
снігопад

зверніть увагу, що клонезила може насправді цього не виправити. Я просто скопіював весь свій hdd (через clonezilla) на SSD і мав такий самий UUID для hdd та SSD, в кінцевому підсумку змінив uuid вручну на ssd, а потім у вищезгаданих файлах на ssd, як і раніше мати резервний hdd як можлива завантаження ОС
Dennis Nolte

3

Імовірно, це означає, що grub запускається і відображає можливість завантаження на Ubuntu, але коли ви виберете, що він не завантажується?

Думаю, є два варіанти:

  1. Використовуйте редактор рядків GRUB, щоб змінити параметр завантаження linux, щоб правильно завантажити Linux (а потім запустити grub-install як root для постійного встановлення правильної конфігурації).
  2. Завантажте з USB-накопичувача Ubuntu, змонтуйте розділ диска ubuntu, увімкніть його та запустіть інсталяцію grub.

Перший випадок повинен бути простішим, якщо у вас є лише Ubuntu і у вас є лише один жорсткий диск, у цьому випадку виберіть параметр "відновлення Ubuntu" і натисніть "e" для редагування:

Запис має виглядати приблизно так:

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

Видаліть рядок "пошук" та замініть "root = UUID = XXXXX" у рядку "linux" на "root = / dev / sda1". Спробуйте і завантажте це, і, сподіваємось, через короткий час воно надасть меню відновлення Ubuntu, в якому має бути опція grub, яка повинна належним чином перевстановити grub.

В іншому випадку, або якщо ви хочете не повозитися безпосередньо з грубом (який повинен містити попередження про здоров'я, використовуйте CD / USB-паличку, як це зафіксовано в https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2


FYI, коли я запустив, я не бачив варіант запуску grub (можливо, тому що він просто завантажується безпосередньо в Ubuntu, оскільки це була єдина ОС). У будь-якому випадку я ціную вашу допомогу. Я закінчив створити диск для відновлення завантаження.
снігур

Дуже дякую! Ваша відповідь врятувала мене від поганого кінця, коли я по-дурному змінив UUID свого fstab і Ubuntu вже не міг запускатися!
reexmonkey

0

У моєму випадку UUID, який встановив grub, відрізнявся від мого нинішнього UUID ( sudo blkid) для мого розділу Windows (підтверджено в grub.cfg). Я пробував різні методи невдало. Нарешті я встановив розділ Windows за допомогою файлового менеджера і запустився update-grubзнову, і UUID було успішно оновлено у grub.cfg.


Програма називається, update-grubа ні grub-update. Це не очевидно, оскільки починається з більшості команд grub grub-....
Fa11enAngel

0

Що я робив замість редагування fstab та grub:

  1. Я створив резервну копію цих файлів у новому встановленні ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Відновлено з резервної копії ( tar -xvpf /mnt/remotebk/full.tar)
  3. скопіювати відновлений файл fstab ( cp /etc/fstab /somedir/fstab.restored)
  4. відновити мої свіжі файли завантаження ( tar -xvpf /somedir/boot.tar -C /)
  5. Перезавантажилось, і воно спрацювало.

Я використовую віртуальні машини vmware, я зробив цей процес для переміщення одного сервера Linux з одного хоста на інший хост.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.