Spostamento / avvio e MBR su una nuova unità


11

Ho un server CentOS 6 con due dischi rigidi. Il mio vecchio disco da 3 TB mi ha dato alcuni problemi, quindi sto spostando le cose su un nuovo disco. Poiché my /e la /homepartizione sono gestite da un LVM, è stato facile migrare quelli sulla nuova unità. Ora voglio spostarmi sopra la mia /bootpartizione e il MBR che fa partire tutto.

Ho caricato un CD live e rsyncedsopra la mia /bootpartizione nella stessa partizione della mia nuova unità. Ho anche provato a copiare sul mio MBR con i seguenti comandi:

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

Dopo aver fatto questo, ho riavviato, ho detto al mio BIOS di non guardare il vecchio disco rigido durante il ciclo di avvio e di guardare solo la nuova unità, ma tutto quello che ho trovato è stato un cursore lampeggiante.

Ho perso un passaggio qui? O c'è qualcos'altro che devo fare per avviare le cose in modo da poter rimuovere completamente il mio vecchio disco?

EDIT: Sto iniziando a pensare che rsync non fosse il modo di copiare la partizione / boot da un disco all'altro. Sulla base di questa guida , ho invece provato a usare il comando dump. In questo comando ho copiato la mia vecchia partizione di avvio non montata nella mia nuova partizione di avvio vuota e montata.

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

Ricevo un errore grub 15 all'avvio, che è meglio di un cursore lampeggiante, ma non so se sia più vicino a una soluzione.


Perché non installare grub sulla nuova unità?
frostschutz,

Ogni volta che mi sono stancato di eseguire grub-install ho finito con l'avvio e ho ricevuto solo un prompt di grub.
Cloudkiller

Risposte:


3

Se i due dischi rigidi hanno le stesse dimensioni (o quello nuovo è più grande), perché non hai semplicemente copiato il vecchio disco sul nuovo disco? ie

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

Ora, se il nuovo disco rigido è più grande, cambia le dimensioni della partizione con parted o gparted. Tutto ciò è stato avviato da un CD / chiavetta USB live.


Sono di dimensioni diverse. 3 TB era semplicemente eccessivo per il server, quindi sono passato a un rapace da 1 TB sperando di ottenere un po 'più di velocità. Indipendentemente da ciò, la clonazione non sembra essere il problema. Almeno la parte LVM si è spostata facilmente e sembra che la partizione di avvio sia stata copiata completamente con il mio ultimo dump. Ora penso che il problema sia in qualche modo correlato al mio grub o all'MBR. Penso che il problema sia che non so abbastanza su grub2 e su come interagisce con LVM per risolverlo.
Cloudkiller

usare dd che sta facendo un po 'per la copia a bit è un modo antico di eseguire una migrazione dei dati, specialmente quando le dimensioni del disco sono ora nell'intervallo terabyte e il più delle volte la quantità di dati effettivi è inferiore a 10 GB sul disco; una nuova installazione pulita di SUSE con molte librerie installate mi fa girare circa 5 GB sul disco che tar su un file e uso un memory stick da 8 GB per spostare quel file tar, la partizione di avvio sia che sia EFI o MBR ne esegue solo alcune MB.
Ron,

se è possibile utilizzare EFI o UEFI anziché il BIOS e disporre di una partizione di avvio EFI tramite GPT anziché una partizione di avvio MBR e dos semplifica le cose semplicemente formattare la partizione EFI come fat32 e copiarla su quei pochi MB di file correlati; altrimenti per MBR devi capire come funziona, correggere gli indirizzi al suo interno in relazione al nuovo disco, quindi installare il nuovo MBR sul nuovo disco nel primo settore in modo che il BIOS possa accedervi correttamente; EFI è molto meglio se il tuo hardware è compatibile con EFI
ron

ed ELILO è meglio di GRUB / GRUB2, troppa roba in grub che non uso mai e complica solo le cose; un file elilo.conf e il gioco è fatto! se non si avvia solo quell'unico file da cercare e correggere
ron

4

Si scopre che l'utilizzo del rsync o del dump per copiare la partizione / boot stava causando il problema. Sulla base della risposta di Erick sopra, ho avviato un CD live in modalità di ripristino ed eseguito i seguenti comandi dd.

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

Ho eseguito di nuovo i primi due dd solo per assicurarmi che tutto fosse copiato correttamente e non corrotto con tutti i test che ho fatto. Quindi ho eseguito il terzo dd per copiare la partizione di avvio dal mio vecchio disco a quello nuovo. Dopodiché ho spento, tirato fuori il mio vecchio disco e avviato senza problemi il mio CentOS.

Ci deve essere stato un problema causato dall'utilizzo del dump su un'unità montata che ha impedito il corretto funzionamento della copia. Indipendentemente da ciò, ha fatto il trucco. Grazie per il vostro aiuto a tutti.


questo è un buon esempio di ignoranza è felicità poiché ha funzionato. Chiediti cosa ha fatto il CD di ripristino per correggere il problema nell'MBR? Avere due dischi nel sistema contemporaneamente, quale è sda e quale è sdb, e quando si rimuove il vecchio disco e si ha solo il nuovo disco, questo cambia e diventa sda o sdb?
Ron,

a seconda di ciò che stai facendo potrebbe non essere importante, ma in genere è meglio avviare o identificare i dischi con un metodo univoco come ID dispositivo o UUID.
Ron,

usare dd e MBR è come usare punti e condensatore su un motore piuttosto che accensione elettronica con iniezione elettronica di carburante (EFI) ... gioco di parole previsto ... e non usare EFI perché non è del tutto chiaro.
Ron,

3

Piuttosto che dd, ho creato un nuovo volume. Altri passaggi, ma potrebbero risolvere i problemi anziché copiarli. Ho avuto un avvio / avvio troppo piccolo che è stato danneggiato. Inoltre stavo usando cento7 con grub2. Quindi le mie istruzioni richiederebbero alcune modifiche o l'aggiornamento a grub2 come suggerito da psusi. Ho provato a notare i cambiamenti.

NOTA: quando uso "/ dev / sdx", presumo che tu sappia che "sdx" deve essere cambiato in qualunque sia il nome del disco / volume che vuoi essere / boot.

  • Utilizzare fdisk (non cfdisk) per partizionare con tipo 83 (normale parte linux) e contrassegnare come avviabile.
    • Motivo di fdisk: cfdisk avvia la partizione troppo presto, senza spazio per il boot loader. Ricorda, il boot loader deve adattarsi prima della partizione.
  • Crea file system sulla partizione. Ext [234], xfs. altri?.
  • Montare su / boot
  • Copia i file * .img da vecchio / boot su / boot ... almeno quelli che vuoi conservare.
  • Ho anche copiato i file vmlinuz- * da old / boot over in / boot ... non sono sicuro che sia necessario.
  • Esegui grub2-install / dev / sdx
    • Nota 1: se si utilizza grub (anziché grub2), credo che il comando corretto sia grub-install / dev / sdx
    • Nota 2: questo viene installato prima della partizione che abbiamo appena formattato, quindi NON puntare a / dev / sdx1!
  • Esegui grub2-mkconfig -o /boot/grub2/grub.cfg
  • Non dimenticare di aggiornare / etc / fstab per / boot

riferimenti: 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

Il problema è che non dovresti usare ddper copiare l'MBR in questo modo. È sufficiente reinstallare grub sulla nuova unità per ottenere un MBR aggiornato correttamente . L'MBR contiene la posizione del file grub stage 2, che è cambiato quando è stato ripristinato il dump.

Inoltre, dovresti aggiornare a grub2 poiché grub legacy non è stato mantenuto per anni e grub2 non richiede una partizione non lvm / boot.


Sto usando grub2, è ciò che il programma di installazione CentOS 6 ha messo sul mio disco. Inoltre, la partizione non lvm / boot era anche l'impostazione predefinita fornita da CentOS. Ho tentato di reinstallare grub2 molte volte sul disco ma farlo funzionare è stato qualcosa che mi ha eluso.
Cloudkiller
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.