Bagaimana cara memperbaiki UUID di Grub setelah memulihkan dari komputer lain?

22

Saya ingin mengembalikan cadangan tar lengkap dari Ubuntu 12.04 dengan semua penyesuaian, dokumen, perangkat lunak yang diinstal, dll ke mesin yang berbeda.

Saya membuat cadangan dengan perintah berikut:

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

Di komputer baru saya melakukan instalasi baru Ubuntu 12.04, memindahkan file cadangan ke sana dan kemudian dipulihkan dengan file cadangan dengan yang berikut:

tar xvpfz backup.tgz -C /

Seperti yang diharapkan (lihat jawaban Mike Apapun untuk pertanyaan ini: Salin distro Ubuntu dengan semua pengaturan dari satu komputer ke yang lain ) ini melanggar grub. Ketika saya menghidupkan komputer saya mendapatkan kesalahan:

error: no such device: ...

press any key to continue ...

Saya percaya alasan Grub rusak adalah karena UUID mencari kecocokan pada hard drive lama, bukan pada hard drive untuk komputer.

Bagaimana saya bisa memperbaiki grub saya untuk mengenali hard-drive baru? Saya mencari bantuan di internet "Perbaiki GRUB UUID" tetapi langkah-langkahnya tampaknya ketinggalan zaman atau rumit. Respons dari Mike yang saya tautkan di atas memberi saya harapan bahwa ada cara yang cukup sederhana untuk memperbaikinya.

snowguy
sumber
1
Mengapa Anda tidak menggunakan clonezilla (clonezilla.org) untuk membuat snapshot komputer lama Anda dan mengembalikannya pada yang baru? Saya pikir itu akan benar-benar lebih mudah karena Anda tampaknya ingin menjaga semuanya tetap seperti semula. Kalau tidak, membuat cadangan (/ home, / etc, / usr / local, / var) dan mengembalikan data dan penyesuaian Anda, kecuali perangkat lunak juga sangat mudah ... Untuk menyelesaikan masalah Anda saat ini, Anda harus mengubah UUID (s) di / etc / fstab dan /boot/grub/menu.lst. Anda dapat menggunakan CD instal Ubuntu untuk mendapatkan UUID [gparted atau command line] dan melakukan perubahan.
Golboth

Jawaban:

19

Untuk menyelesaikan masalah Anda saat ini, Anda harus mengubah UUID di "/ etc / fstab" dan "/boot/grub/grub.grfc" (sangat rumit).

Anda dapat menggunakan CD instal Ubuntu untuk mendapatkan UUID (s) dengan gparted (Anda hanya perlu mengklik kanan pada partisi yang Anda ingin mendapatkan UUID, dan klik "Informasi", lalu pilih UUID dan salin dengan CTRL + C) atau baris perintah ( sudo blkid).

Maka Anda harus mengedit "/ etc / fstab" pada volume yang tepat dengan gedit, nano atau yang lain.

Di terminal, ketik:

gksudo gedit /etc/fstab

dan ganti UUID lama dengan yang baru.

PENTING: Tentu saja, jika Anda menggunakan CD boot, Anda harus menambahkan "/ media / xxxxx" sebelum "/ etc / fstab": "/ media / xxxxx / etc / fstab". Anda juga dapat menggunakan gksudo geditdan membuka file untuk mengedit diri Anda.

PERINGATAN: Memodifikasi "/boot/grub/grub.cfg" sangat rumit. Biasanya harus dihasilkan dengan perintah sudo update-grub.

Ganti UUID lama dengan yang baru di "/ boot / grub/grub.cfg" dengan memasukkan yang berikut di terminal:

gksudo gedit /boot/grub/grub.cfg

PENTING: Tentu saja, jika Anda menggunakan CD boot untuk melakukannya, Anda harus menambahkan "/ media / xxxxx" sebelum "/ boot / grub/grub.cfg": "/ media / xxxxx / boot / grub / grub. cfg ". Anda juga dapat menggunakan gksudo geditdan membuka file untuk mengedit diri Anda.

Jika Anda menggunakan solusi rumit, saya sarankan Anda untuk meluncurkan sudo update-grubsetelah Anda berhasil mem-boot sistem.

Cara yang lebih bersih namun sederhana untuk mengkonfigurasi ulang grub dengan benar mungkin menggunakan disk perbaikan boot seperti "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

Saya harap ini akan membantu Anda menyelesaikan masalah Anda.

Namun Anda dapat mempertimbangkan menggunakan Clonezilla untuk mereplikasi komputer lama pada yang baru seperti yang ditunjukkan dalam komentar saya.

Golboth
sumber
Terima kasih Golboth. Saya akhirnya menggunakan saran Anda untuk menggunakan disk perbaikan boot dan itu berhasil.
snowguy
harap dicatat bahwa clonezilla mungkin tidak benar-benar memperbaiki ini. saya baru saja menyalin seluruh hdd saya (melalui clonezilla) ke SSD dan memiliki UUID yang sama persis untuk hdd dan SSD, akhirnya mengubah uuid secara manual pada SSD dan kemudian dalam file yang disebutkan di atas pada SSD untuk masih memiliki hdd mundur sebagai kemungkinan boot OS
Dennis Nolte
3

Agaknya ini berarti grub memulai dan menampilkan opsi untuk boot ke Ubuntu tetapi ketika Anda memilih itu tidak bisa boot?

Ada dua opsi, saya pikir:

  1. Gunakan editor baris GRUB untuk memodifikasi opsi boot linux untuk memuat linux dengan benar (dan kemudian jalankan grub-install sebagai root untuk secara permanen mengatur konfigurasi yang benar).
  2. Boot dari stik USB Ubuntu, pasang partisi disk ubuntu, chroot ke dalamnya lalu jalankan grub-install.

Kasing pertama seharusnya lebih mudah jika Anda hanya memiliki Ubuntu dan hanya memiliki satu cakram keras, dalam hal ini pilih opsi "Pemulihan Ubuntu", dan tekan "e" untuk mengedit:

Entri akan terlihat seperti:

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

Hapus baris "cari" dan ganti "root = UUID = XXXXX" di baris "linux" dengan "root = / dev / sda1". Coba dan boot ini dan mudah-mudahan setelah waktu yang singkat ini akan memberi Anda menu pemulihan Ubuntu, yang seharusnya memiliki opsi grub, yang seharusnya menginstal ulang grub dengan benar.

Kalau tidak, atau jika Anda lebih suka tidak main-main dengan grub secara langsung (yang seharusnya membawa peringatan kesehatan, gunakan stik CD / USB seperti yang didokumentasikan di https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2

kronis
sumber
FYI, ketika saya mulai, saya tidak melihat opsi startup grub (mungkin karena itu langsung boot ke Ubuntu karena itu satu-satunya OS). Bagaimanapun saya menghargai bantuan Anda. Saya akhirnya membuat disk perbaikan boot.
snowguy
Terima kasih banyak! Jawaban Anda menyelamatkan saya dari akhir yang buruk, ketika saya dengan bodohnya mengubah UUID dari fstab saya dan Ubuntu tidak bisa lagi dimulai!
reexmonkey
0

Dalam kasus saya, UUID yang diinstal grub berbeda dari UUID saya saat ini ( sudo blkid) untuk partisi Windows saya (dikonfirmasi di grub.cfg). Saya mencoba berbagai metode tidak berhasil. Akhirnya saya memasang partisi Windows dengan manajer file dan berlari update-grublagi dan UUID berhasil diperbarui di grub.cfg.

Tavo
sumber
Program dipanggil update-grubdan tidak grub-update. Ini tidak berhenti jelas karena kebanyakan perintah grub dimulai grub-....
Fa11enAngel
0

Apa yang saya lakukan alih-alih mengedit fstab dan grub:

  1. Saya mencadangkan file-file itu pada instalasi baru ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Dipulihkan dari cadangan ( tar -xvpf /mnt/remotebk/full.tar)
  3. salin file fstab yang dipulihkan ( cp /etc/fstab /somedir/fstab.restored)
  4. pulihkan file boot instalasi baru saya ( tar -xvpf /somedir/boot.tar -C /)
  5. Reboot dan berhasil.

Saya menggunakan mesin virtual vmware, saya melakukan proses ini untuk memindahkan satu server linux dari satu host ke host lain.

Roberto Dimas
sumber