web-dev-qa-db-ja.com

ブートパーティションとルートパーティションを別のドライブに移動する方法

コンピューターに次の構成の2つのドライブがあります。

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

残念ながら、ドライブ2に書き込みをしようとするとエラーが発生し、SMART設定をチェックアウトすると悲しい状況が表示されるため、ドライブ2は死にかけているようです。

ドライブ1に十分なスペースがあるので、/パーティションと/ bootパーティションをそこに移動し、システムからドライブ2を削除し、ドライブ2を新しいドライブに交換して、プロセスを逆にします。

Grubの更新を行う必要があることを想像し、いくつかのことを移動する必要がありますが、これを正確に行う方法にはかなり困惑しています。これは私のメインコンピューターなので、起動できないように物事を台無しにしないように注意したいです。

27
mlissner

これに対する私の最終的な解決策は、いくつかの手法の組み合わせでした。

  1. 死にかけているドライブとその交換品をコンピューターに同時に接続しました。
  2. 新しいドライブは古いドライブよりも小さかったため、GPartedを使用して古いドライブのパーティションを縮小しました。
  3. その後、パーティションを古いドライブにコピーし、新しいパーティションに貼り付けました(GPartedを使用)。
  4. 次に、新しいドライブの正しいパーティションにブートフラグを追加したため、事実上古いドライブのミラーになりました。

これはすべてうまくいきましたが、手順 here に従ってgrub2を更新する必要がありました。

これがすべて行われた後、物事はうまくいくようです。

4
mlissner

ライブCDから起動する必要があります。それらのパーティションをディスク1に追加し、すべてのコンテンツをコピーし、Sudo blkidを使用して各パーティションのUUIDを取得します。ディスク1の新しい/で、検索したばかりの新しいUUIDを使用するように/ etc/fstabを編集します。

GRUBの更新は、GRUB1かGRUB2かによって異なります。 GRUB1の場合、/ boot/grub/device.mapを編集する必要があります

GRUB2の場合、実際の状況と同様にパーティションをマウントする必要があると思います。例えば:

Sudo mkdir /media/root
Sudo mount /dev/sda1 /media/root
Sudo mount /dev/sda2 /media/root/boot
Sudo mount /dev/sda3 /media/root/home

(もちろん、コピー先の実際のパーティションは何でも入力します)

次に、/ media/rootでマウント/ procおよび/ devをバインドします。

Sudo mount -B /proc /media/root/proc
Sudo mount -B /dev /media/root/dev
Sudo mount -B /sys /media/root/sys

次に、ドライブにchrootして、GRUBに新しいレイアウトに従って自分自身を強制的に更新させます。

Sudo chroot /media/root
Sudo update-grub

2番目のコマンドは1つの不満を言いますが(私はそれが何であるかを忘れます...)、それは無視しても構いません。

不良ドライブを削除してテストします。それが機能しない場合、不良ドライブはまだシステムを起動できるはずですが、これらはすべて必要な手順だと思います。

29
maco

ドライブをすぐに交換する場合は、ddを使用できます(数か月前に私のサーバーで試してみましたが、それは魅力的でした)。

これにはブートCDも必要です。

  1. ブートCDを開始
  2. ドライブ1のみをマウントする
  3. dd if=/dev/sdb1 of=/media/drive1/backuproot.img-sdb1をルート(/)パーティションとして実行します。これにより、パーティション全体がファイルに保存されます。
    • /bootについても同じ
  4. 電源オフ、ディスク交換、電源オン
  5. dd if=/media/drive1/backuproot.img of=/dev/sdb1を実行します-書き戻します。
    • /bootについても同じ

上記は、以前とまったく同じサイズの2つのパーティションを作成します。 grubの調整が必要になる場合があります(macosの投稿を確認してください)。

パーティションのサイズを変更する場合(私がしたように):

  1. 新しいドライブに2つのパーティションを作成します(/および/bootの場合、必要なサイズに変更します)
  2. バックアップイメージをマウントします:mount /media/drive1/backuproot.img /media/backuproot/
  3. 空の/パーティションをマウントします:mount /dev/sdb1 /media/sdb1/
  4. その内容を新しいパーティションにコピーします(このコマンドについてはよくわかりません。所有権を保持することは本当に重要です。cp -Rは実行しません!)cp -R --preserve=all /media/backuproot/* /media/sdb1
    • /boot/についても同じ

これでうまくいくはずです。

5
sBlatt