Memindahkan / boot dan MBR ke drive baru


11

Saya memiliki server CentOS 6 dengan dua hard drive di dalamnya. Drive 3TB lama saya telah memberi saya beberapa masalah sehingga saya memindahkan semuanya ke drive baru. Karena partisi saya /dan /homedikelola oleh LVM, mudah untuk memigrasikannya ke drive baru. Sekarang saya ingin pindah /bootpartisi saya dan MBR yang membuat semuanya mulai.

Saya memuat CD langsung dan rsyncedmelewati /bootpartisi saya ke partisi ukuran yang sama pada drive baru saya. Saya juga mencoba menyalin dari MBR saya dengan perintah berikut:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Setelah melakukan ini, saya reboot, memberi tahu BIOS saya untuk tidak melihat hard drive lama selama siklus boot dan hanya melihat pada drive baru tetapi saya akhirnya berakhir dengan kursor yang berkedip.

Apakah saya ketinggalan satu langkah di sini? Atau ada hal lain yang perlu saya lakukan untuk membuat barang boot sehingga saya dapat sepenuhnya menghapus drive lama saya?

EDIT: Saya mulai berpikir rsync bukan cara untuk menyalin partisi / boot dari satu drive ke drive lain. Berdasarkan panduan ini , saya mencoba menggunakan perintah dump. Dalam perintah ini saya menyalin partisi boot lama saya yang belum di-mount ke partisi boot baru saya yang kosong.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

Saya mendapatkan kesalahan grub 15 saat boot yang lebih baik daripada kursor yang berkedip tapi saya tidak tahu apakah itu lebih dekat ke solusi.


Mengapa tidak menginstal-instal pada drive baru?
frostschutz

Setiap kali saya lelah menjalankan grub-install saya akhirnya boot dan hanya mendapatkan prompt grub.
Cloudkiller

Jawaban:


3

Jika dua hard disk berukuran sama (atau yang baru lebih besar), mengapa Anda tidak hanya menyalin disk lama ke disk baru? Yaitu

dd if=/dev/sda of=/dev/sdb

Sekarang, jika hard disk baru lebih besar, ubah ukuran partisi dengan parted atau gparted. Semua ini dilakukan booting dari live CD / USB-stick.


Mereka berbeda ukuran. 3tb hanya berlebihan untuk server jadi saya pindah ke raptor 1TB berharap untuk mendapatkan kecepatan lebih. Apapun, kloning sepertinya tidak menjadi masalah. Setidaknya bagian LVM bergerak dengan mudah dan tampaknya partisi boot disalin sepenuhnya dengan dump terakhir saya. Sekarang saya pikir masalahnya terkait dengan grub atau MBR saya. Saya pikir masalahnya adalah saya tidak cukup tahu tentang grub2 dan bagaimana ia berinteraksi dengan LVM untuk memperbaikinya.
Cloudkiller

menggunakan dd yang melakukan sedikit untuk menyalin bit adalah cara kuno melakukan migrasi data terutama ketika ukuran disk sekarang dalam kisaran terabyte dan lebih sering daripada jumlah data aktual kurang dari 10 GB pada disk; instalasi SUSE yang baru dan bersih dengan banyak pustaka yang terinstal menjalankan saya sekitar 5GB pada disk yang saya tar menjadi satu file dan menggunakan memory stick 8gb untuk memindahkan file tar itu, partisi boot apakah EFI atau MBR hanya menjalankan beberapa MB.
Ron

jika Anda dapat menggunakan EFI atau UEFI daripada BIOS, dan memiliki partisi boot EFI melalui GPT daripada MBR & dos partisi boot, pada dasarnya hal-hal yang mudah hanya memformat partisi EFI sebagai FAT32 dan menyalin lebih dari beberapa MB file terkait; jika tidak, untuk MBR Anda harus tidak memahami cara kerjanya, perbaiki alamat di dalamnya sehubungan dengan disk baru, kemudian instal MBR baru pada disk baru di sektor pertama sehingga BIOS dapat mengaksesnya dengan benar; EFI jauh lebih baik jika perangkat keras Anda mampu EFI
ron

dan ELILO lebih baik daripada GRUB / GRUB2, terlalu banyak barang di grub yang tidak pernah saya gunakan dan hanya mempersulit; satu file elilo.conf dan Anda selesai! jika tidak mem-boot hanya satu file untuk melihat dan memperbaiki
ron

4

Ternyata menggunakan rsync atau dump untuk menyalin partisi / boot menyebabkan masalah. Berdasarkan jawaban erick di atas, saya boot live CD ke mode penyelamatan dan menjalankan perintah dd berikut.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Saya menjalankan dua dd pertama lagi hanya untuk memastikan semuanya disalin dengan benar dan tidak rusak dengan semua pengujian yang telah saya lakukan. Kemudian saya menjalankan dd ketiga untuk menyalin partisi boot dari drive lama saya ke yang baru. Setelah itu saya mematikan, mengeluarkan drive lama saya dan boot tanpa masalah ke CentOS saya.

Pasti ada beberapa masalah yang disebabkan oleh penggunaan dump pada drive yang dipasang yang menyebabkan salinan tidak berfungsi dengan benar. Bagaimanapun, dd melakukan trik. Terima kasih atas bantuan Anda semuanya.


ini adalah contoh yang baik dari ketidaktahuan adalah kebahagiaan karena berhasil. Tanyakan pada diri sendiri apa yang dilakukan CD penyelamat bagi Anda untuk memperbaiki masalah di MBR? Memiliki dua disk dalam sistem secara bersamaan, yang mana adalah sda dan yang merupakan sdb, dan ketika Anda menghapus disk lama dan hanya memiliki disk yang baru, apakah itu berubah dan kemudian menjadi sda atau sdb?
Ron

tergantung pada apa yang Anda lakukan itu mungkin tidak masalah, tetapi umumnya lebih baik untuk boot dengan atau mengidentifikasi disk dengan beberapa metode unik seperti oleh device-id atau oleh UUID.
ron

menggunakan dd dan MBR seperti menggunakan titik dan kondensor pada mesin daripada pengapian elektronik dengan injeksi bahan bakar elektronik (EFI) ... pun dimaksudkan ... dan tidak menggunakan EFI karena tidak sepenuhnya dipahami.
Ron

3

Daripada dd, saya membuat volume baru. Langkah lainnya, tetapi mungkin memperbaiki masalah daripada menyalinnya. Saya memiliki boot / terlalu kecil yang rusak. Saya juga menggunakan cento7 dengan grub2. Jadi instruksi saya akan memerlukan beberapa penyesuaian atau peningkatan ke grub2 seperti yang disarankan psusi. Saya mencoba mencatat perubahan.

CATATAN: Ketika saya menggunakan "/ dev / sdx", saya berasumsi bahwa Anda tahu bahwa "sdx" perlu diubah ke apa pun nama disk / volume yang Anda inginkan / boot.

  • Gunakan fdisk (bukan cfdisk) untuk Partisi dengan tipe 83 (bagian linux normal), dan tandai sebagai bootable.
    • Alasan fdisk: cfdisk memulai partisi terlalu cepat, tanpa ruang untuk boot loader. Ingat, boot loader harus pas sebelum partisi.
  • Buat sistem file di partisi. Ext [234], xfs. orang lain?
  • Pasang di / boot
  • Salin * .img file dari yang lama / boot ke / boot ... setidaknya yang ingin Anda simpan.
  • Saya juga menyalin file vmlinuz- * dari old / boot ke / boot ... tidak yakin apakah itu diperlukan.
  • Jalankan grub2-install / dev / sdx
    • Catatan 1: Jika Anda menggunakan grub (bukan grub2), saya yakin perintah yang benar adalah grub-install / dev / sdx
    • Catatan 2: Ini dipasang sebelum partisi yang baru saja kita format, jadi untuk TIDAK arahkan ke / dev / sdx1!
  • Jalankan grub2-mkconfig -o /boot/grub2/grub.cfg
  • Jangan lupa untuk memperbarui /etc/ststab untuk / boot

referensi: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2


2

Masalahnya adalah Anda seharusnya tidak menggunakan dduntuk menyalin MBR seperti itu. Anda hanya perlu menginstal ulang grub pada drive baru untuk mendapatkan MBR yang diperbarui dengan benar . MBR berisi lokasi file grub stage 2, yang berubah ketika Anda mengembalikan dump.

Anda juga harus memutakhirkan ke grub2 karena grub legacy tidak dipertahankan selama bertahun-tahun, dan grub2 tidak memerlukan partisi non lvm / boot.


Saya menggunakan grub2, itu yang dimasukkan oleh pemasang CentOS 6 pada disk saya. Selain itu, partisi non lvm / boot juga merupakan pengaturan default yang disediakan oleh CentOS. Saya mencoba menginstal ulang grub2 berkali-kali pada drive tetapi membuatnya berfungsi adalah sesuatu yang luput dari perhatian saya.
Cloudkiller
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.