/ bootとMBRを新しいドライブに移動する


11

2台のハードドライブを搭載したCentOS 6サーバーがあります。古い3TBドライブで問題が発生したため、新しいドライブに移動します。私//homeパーティションはLVMによって管理されているため、それらを新しいドライブに移行するのは簡単でした。次に、/bootパーティションとそれをすべて起動させるMBR に移動します。

私はライブCDをロードし、rsynced私以上の/boot私の新しいドライブ上の同じサイズのパーティションに分割。また、次のコマンドを使用してMBRをコピーしようとしました。

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

これを行った後、再起動し、起動サイクル中に古いハードドライブを調べずに新しいドライブのみを見るようにBIOSに指示しましたが、カーソルが点滅するだけで終わりました。

ここで一歩逃した?または、古いドライブを完全に削除できるように、起動するために他に必要なことはありますか?

編集:私はrsyncが/ bootパーティションをあるドライブから別のドライブにコピーする方法ではなかったと思い始めています。このガイドに基づいて、代わりにdumpコマンドを使用してみました。このコマンドでは、マウントされていない古いブートパーティションをマウントされた新しい空のブートパーティションにコピーしました。

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

ブート時にグラブエラー15が発生します。これはカーソルの点滅よりも優れていますが、それが解決策に近いかどうかはわかりません。


新しいドライブにgrub-installしないのはなぜですか?
frostschutz 2013

grub-installの実行に疲れるたびに、起動してgrubプロンプトしか表示されなくなりました。
Cloudkiller 2013

回答:


3

2つのハードディスクのサイズが同じ(または新しいハードディスクの方が大きい)場合、なぜ古いディスクを新しいディスクにコピーしないのですか?すなわち

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

ここで、新しいハードディスクの方が大きい場合は、partitionまたはgpartedでパーティションサイズを変更します。これはすべて、ライブCD / USBスティックからの起動です。


サイズが違います。3TBはサーバーにとってはやり過ぎだったので、もう少し速度を上げたいと思って1TBの猛禽類に移動しました。とにかく、クローンは問題ではないようです。少なくともLVMの部分は簡単に移動し、最後のダンプで完全にコピーされたブートパーティションが表示されます。今、私は問題が私のバグやMBRに何らかの形で関連していると思います。問題は、grub2と、それを修正するためにLVMとどのように相互作用するかについて十分に理解していないことだと思います。
Cloudkiller 2013

ビットコピーにビットを使用するddを使用することは、特にディスクサイズがテラバイトの範囲にあり、実際のデータ量がディスク上の10 GB未満である場合が多い場合に特に、データ移行を行う古代の方法です。多数のライブラリがインストールされたSUSEのクリーンフレッシュインストールでは、ディスク上で約5 GBが実行され、1つのファイルにtarし、8 GBのメモリスティックを使用して、そのtarファイルを移動します。ブートパーティションは、EFIとMBRのどちらでも、少数しか実行しません。 MB。
ron

BIOSではなくEFIまたはUEFIを使用でき、MBR&dosブートパーティションではなくGPTを介してEFIブートパーティションがある場合、基本的にEFIパーティションをfat32としてフォーマットし、それらの数MBの関連ファイルをコピーするだけで簡単にできます。それ以外の場合は、MBRの動作を理解し、新しいディスクに関してその中のアドレスを修正し、BIOSが適切にアクセスできるように、最初のセクターの新しいディスクに新しいMBRをインストールする必要があります。ハードウェアがEFI対応であれば、EFIははるかに優れています
ron

そしてELILOはGRUB / GRUB2よりも優れています。elilo.confファイル1つで完了です。それが起動しない場合は、その1つのファイルを調べて修正する必要があります
ron

4

rbootまたはダンプを使用して/ bootパーティションをコピーすることが問題の原因であることがわかりました。上記のエリックの答えに基づいて、ライブCDをレスキューモードで起動し、次の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

最初の2つのddをもう一度実行して、すべてが正しくコピーされ、私が行ったすべてのテストで破損していないことを確認しました。次に、3番目のddを実行して、ブートパーティションを古いドライブから新しいドライブにコピーしました。その後、シャットダウンして古いドライブを引き出し、問題なくCentOSにブートしました。

マウントされたドライブでダンプを使用することにより、コピーが正常に機能しなくなる問題があったはずです。とにかく、ddはトリックをしました。皆様のご協力ありがとうございます。


これが機能したので、無知が至福である良い例です。MBRの問題を修正するためにレスキューCDが何をしたかを自問してみてください。システムに2つのディスクが同時に存在します。1つはsdaで、もう1つはsdbです。古いディスクを削除して新しいディスクだけを使用すると、変更されてsdaまたはsdbになりますか?
ron

何をしているのかは関係ないかもしれませんが、通常は、デバイスIDやUUIDなどの独自の方法でディスクを起動するか、ディスクを識別する方が適切です。
ron

ddとMBRの使用は、電子燃料噴射(EFI)による電子点火ではなく、エンジンでポイントとコンデンサーを使用するようなものです。
ron

3

ddではなく、新しいボリュームを作成しました。手順は増えますが、問題をコピーするのではなく修正する場合があります。/ bootが小さすぎて破損しました。また、cento7をgrub2と一緒に使用していました。だから私の指示は、psusiが示唆したように、いくつかの調整またはgrub2へのアップグレードを必要とするでしょう。変更点に注意してみました。

注:「/ dev / sdx」を使用する場合、「sdx」を、/ bootにしたいディスク/ボリュームの名前に変更する必要があることを知っていると想定しています。

  • fdisk(cfdiskではなく)を使用してタイプ83(通常のLinuxパーツ)でパーティション化し、起動可能としてマークします。
    • fdiskの理由:cfdiskは、ブートローダー用のスペースがないため、パーティションをすぐに起動します。ブートローダーはパーティションの前に収まる必要があることを覚えておいてください。
  • パーティションにファイルシステムを作成します。Ext [234]、xfs。その他?
  • / bootにマウント
  • 古い/ bootから* .imgファイルを/ bootにコピーします。少なくとも、保持したいファイルをコピーします。
  • また、vmlinuz- *ファイルを古い/ bootから/ bootにコピーしました。それが必要かどうかはわかりません。
  • grub2-install / dev / sdxを実行します
    • 注1:grub2ではなくgrubを使用している場合、正しいコマンドはgrub-install / dev / sdxだと思います
    • 注2:これは、フォーマットしたばかりのパーティションの前にインストールされるため、/ dev / sdx1をポイントしないようにしてください!
  • grub2-mkconfig -o /boot/grub2/grub.cfgを実行します
  • / bootの/ etc / fstabを更新することを忘れないでください

参照: 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

問題は、そのddようなMBRをコピーするために使用すべきではないということです。MBRを正しく更新するには、新しいドライブにGRUBを再インストールする必要があります。MBRには、ダンプを復元したときに変更されたgrubステージ2ファイルの場所が含まれています。

また、grubのレガシーは何年も維持されておらず、grub2は非lvm / bootパーティションを必要としないため、grub2にアップグレードする必要があります。


私はgrub2を使用しています。これはCentOS 6インストーラーがディスクに置いたものです。さらに、lvm / boot以外のパーティションも、CentOSが提供するデフォルトのセットアップでした。私はドライブに何度もgrub2を再インストールしようとしましたが、それを機能させることは私を回避したものでした。
Cloudkiller 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.