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

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

2つのハードドライブを搭載したCentOS 6サーバーがあります。既存の3TBドライブに問題があり、新しいドライブに移動しました。私の/パーティションは/homeLVMによって管理されているため、新しいドライブに簡単に移行できます。さて/boot、パーティションを移動してすべてのMBRで起動可能にしたいと思います。

Live 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の起動サイクル中に古いハードドライブを表示せずに新しいドライブだけを表示するように指示しましたが、最終的には点滅しているカーソルだけが表示されました。

ここで1つのステップを見逃していますか?それとも、古いドライブを完全に削除できるようにブートするために実行する必要がある他の作業はありますか?

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

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

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

答え1

rsyncまたはdumpを使用して/ bootパーティションをコピーすると、問題が発生したことがわかりました。上記のEricの答えに基づいて、Live 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は働いた。助けてくれてありがとう。

答え2

2つのドライブのサイズが同じか、新しいドライブが大きい場合は、既存のドライブを新しいドライブにコピーするのはどうですか?つまり

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

新しいハードドライブが大きい場合は、partedまたはgpartedを使用してパーティションのサイズを変更してください。これはすべてLive CD / USBスティックから起動することによって行われます。

答え3

ddを作成する代わりに、新しいボリュームを作成しました。追加の手順がありますが、問題を再現するのではなく、問題を解決することもできます。私の/bootが小さすぎて破損しています。私もcento7とgrub2を使用しています。したがって、私の指示には、psusiが提案したようにgrub2にアップグレードするか、いくつかの調整が必要です。私は変化を記録しようとします。

注:「/dev/sdx」を使用するときは、「sdx」を/bootとして指定したいディスク/ボリューム名に変更する必要があることがわかっているとします。

  • fdisk(cfdiskではない)を使用してタイプ83(通常のLinux部分)を分割し、起動可能としてマークします。
    • fdiskの原因:cfdiskブートパーティションが速すぎ、ブートローダのためのスペースがありません。ブートローダはパーティションの前にある必要があることを覚えておいてください。
  • パーティションにファイルシステムを作成します。拡張子[234]、xfs。他の人? 。
  • /boot にマウント
  • *.imgファイルを既存の/bootから/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.politianmemory.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

答え4

dd問題は、MBRをこのようにコピーしないでください。新しいドライブにgrubを再インストールするだけです。正しくMBRが更新されました。 MBRには、ダンプの復元時に変更されるgrub 2段階ファイルの場所が含まれています。

さらに、古いバージョンの grub は長年維持されておらず、grub2 には lvm ではなく /boot パーティションが必要ないため、grub2 にアップグレードする必要があります。

関連情報