Déplacement / démarrage et MBR vers un nouveau lecteur

11

J'ai un serveur CentOS 6 avec deux disques durs. Mon ancien disque de 3 To me posait quelques problèmes, donc je déplace les choses vers un nouveau disque. Étant donné que my /et la /homepartition sont gérés par un LVM, il a été facile de les migrer vers le nouveau lecteur. Maintenant, je veux déplacer ma /bootpartition et le MBR qui le fait démarrer.

J'ai chargé un CD live et rsyncedsur ma /bootpartition sur la même partition de taille sur mon nouveau lecteur. J'ai également essayé de copier sur mon MBR avec les commandes suivantes:

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

Après avoir fait cela, j'ai redémarré, dit à mon BIOS de ne pas regarder l'ancien disque dur pendant le cycle de démarrage et de ne regarder que le nouveau disque, mais tout ce que j'ai fini par être un curseur clignotant.

Ai-je raté une étape ici? Ou y a-t-il autre chose que je dois faire pour faire démarrer les choses afin que je puisse supprimer complètement mon ancien lecteur?

EDIT: Je commence à penser que rsync n'était pas le moyen de copier la partition / boot d'un lecteur à un autre. Sur la base de ce guide , j'ai plutôt essayé d'utiliser la commande dump. Dans cette commande, j'ai copié mon ancienne partition de démarrage non montée dans ma nouvelle partition de démarrage vide et montée.

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

Je reçois une erreur grub 15 au démarrage, ce qui est mieux qu'un curseur clignotant, mais je ne sais pas si cela est plus proche d'une solution.

Cloudkiller
la source
Pourquoi ne pas installer grub sur le nouveau disque?
frostschutz
Chaque fois que je fatiguais d'exécuter grub-install, je finissais par démarrer et ne recevais qu'une invite grub.
Cloudkiller

Réponses:

3

Si les deux disques durs sont de la même taille (ou que le nouveau est plus grand), pourquoi n'avez-vous pas simplement copié l'ancien disque sur le nouveau disque? C'est à dire

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

Maintenant, si le nouveau disque dur est plus gros, changez la taille des partitions avec parted ou gparted. Tout cela fait le démarrage à partir d'un CD / clé USB en direct.

erik
la source
Ils sont de taille différente. 3 To était juste exagéré pour le serveur, donc je suis passé à un rapace de 1 To dans l'espoir d'obtenir un peu plus de vitesse. Quoi qu'il en soit, le clonage ne semble pas être le problème. Au moins, la partie LVM s'est déplacée facilement et il semble que la partition de démarrage ait été copiée complètement avec mon dernier vidage. Maintenant, je pense que le problème est en quelque sorte lié à mon grub ou au MBR. Je pense que le problème est que je ne connais pas suffisamment grub2 et comment il interagit avec les LVM pour le corriger.
Cloudkiller
utiliser dd qui fait un peu pour la copie de bits est une manière ancienne de faire une migration de données, en particulier lorsque les tailles de disque sont maintenant dans la plage de téraoctets et le plus souvent la quantité de données réelles est inférieure à 10 Go sur le disque; une nouvelle installation propre de SUSE avec beaucoup de bibliothèques installées me fait environ 5 Go sur le disque que je tar dans un fichier et utilise une clé mémoire de 8 Go pour déplacer ce fichier tar, la parition de démarrage, que ce soit EFI ou MBR, ne fonctionne que quelques-unes MB.
ron
si vous pouvez utiliser EFI ou UEFI plutôt que BIOS, et avoir une partition de démarrage EFI via GPT plutôt qu'une partition de démarrage MBR & dos, cela rend les choses faciles, simplement formatez simplement la partition EFI en fat32 et copiez sur ces quelques Mo de fichiers associés; sinon, pour le MBR, vous devez comprendre comment il fonctionne, corriger les adresses qu'il contient en ce qui concerne le nouveau disque, puis installer le nouveau MBR sur le nouveau disque dans le premier secteur afin que le BIOS puisse y accéder correctement; EFI est tellement mieux si votre matériel est compatible EFI
ron
et ELILO est meilleur que GRUB / GRUB2, trop de trucs dans grub que je n'utilise jamais et complique les choses; un fichier elilo.conf et vous avez terminé! s'il ne démarre pas juste ce fichier à regarder et à corriger
ron
4

Il s'avère que l'utilisation de rsync ou de dump pour copier la partition / boot était à l'origine du problème. Sur la base de la réponse d'Erick ci-dessus, j'ai démarré un CD live en mode de secours et exécuté les commandes dd suivantes.

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

J'ai exécuté à nouveau les deux premiers dd juste pour m'assurer que tout était correctement copié et non corrompu par tous les tests que je faisais. Ensuite, j'ai exécuté le troisième dd pour copier la partition de démarrage de mon ancien disque vers le nouveau. Après cela, j'ai arrêté, retiré mon ancien lecteur et démarré sans problème dans mon CentOS.

Un problème dû à l'utilisation du vidage sur un lecteur monté a dû provoquer un dysfonctionnement de la copie. Quoi qu'il en soit, dd a fait l'affaire. Merci pour votre aide tout le monde.

Cloudkiller
la source
c'est un bon exemple d' ignorance, c'est le bonheur car cela a fonctionné. Demandez-vous ce que le CD de secours a fait pour corriger le problème dans le MBR? Avoir deux disques dans le système en même temps, lequel est sda et lequel est sdb, et lorsque vous supprimez l'ancien disque et que vous n'avez que le nouveau disque, est-ce que cela change et devient ensuite sda ​​ou sdb?
ron
en fonction de ce que vous faites, cela peut ne pas avoir d'importance, mais il est généralement préférable de démarrer ou d'identifier les disques par une méthode unique, telle que device-id ou UUID.
ron
utiliser dd et MBR, c'est comme utiliser des points et un condenseur sur un moteur plutôt qu'un allumage électronique avec injection électronique de carburant (EFI) ... jeu de mots prévu ... et ne pas utiliser EFI parce qu'il n'est pas entièrement compris.
ron
3

Plutôt que dd, j'ai construit un nouveau volume. Plus d'étapes, mais peut résoudre les problèmes plutôt que de les copier. J'ai eu un / boot trop petit qui a été corrompu. J'utilisais également cento7 avec grub2. Donc, mes instructions nécessiteraient quelques ajustements ou une mise à niveau vers grub2 comme suggéré par psusi. J'ai essayé de noter les changements.

REMARQUE: lorsque j'utilise "/ dev / sdx", je suppose que vous savez que le "sdx" doit être changé en quelque soit le nom du disque / volume que vous voulez être / boot.

  • Utilisez fdisk (pas cfdisk) pour partitionner avec le type 83 (partie linux normale) et marquez comme amorçable.
    • Raison de fdisk: cfdisk démarre la partition trop tôt, sans espace pour le chargeur de démarrage. N'oubliez pas que le chargeur de démarrage doit tenir avant la partition.
  • Créez un système de fichiers sur la partition. Ext [234], xfs. autres?.
  • Monter à / boot
  • Copiez les fichiers * .img de l'ancien / boot sur / boot… au moins ceux que vous souhaitez conserver.
  • J'ai également copié les fichiers vmlinuz- * de l'ancien / boot sur / boot… je ne sais pas si c'est nécessaire.
  • Exécutez grub2-install / dev / sdx
    • Remarque 1: si vous utilisez grub (plutôt que grub2), je crois que la commande correcte est grub-install / dev / sdx
    • Note 2: Ceci s'installe avant la partition que nous venons de formater, donc ne PAS la pointer vers / dev / sdx1!
  • Exécutez grub2-mkconfig -o /boot/grub2/grub.cfg
  • N'oubliez pas de mettre à jour / etc / fstab pour / boot

références: 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

Art Hill
la source
2

Le problème est que vous ne devez pas utiliser ddpour copier le MBR comme ça. Il vous suffit de réinstaller grub sur le nouveau lecteur pour obtenir un MBR correctement mis à jour. Le MBR contient l'emplacement du fichier grub stage 2, qui a changé lorsque vous avez restauré le vidage.

Vous devez également mettre à niveau vers grub2 car l'héritage de grub n'a pas été maintenu depuis des années et grub2 ne nécessite pas de partition non lvm / boot.

psusi
la source
J'utilise grub2, c'est ce que le programme d'installation de CentOS 6 a mis sur mon disque. De plus, la partition non lvm / boot était également la configuration par défaut fournie par CentOS. J'ai tenté de réinstaller grub2 plusieurs fois sur le disque, mais le faire fonctionner était quelque chose qui m'échappait.
Cloudkiller