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


27

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

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

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

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

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


これはまさに私がしなければならなかったことです。ルートパーティション/を/ homeに移動する方法の詳細な手順を記載し
ルーカス

回答:


29

ライブ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つの不満を言いますが(それが何であるかは忘れていますが...)、無視しても構いません。

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


3
これを最近見ている人への参考までに、これはEFIセットアップには適用されません。/media/root/boot/efiとりわけをマウントする必要があります。
-wjandrea

1
sudo grub-install /dev/sda前にする必要がありましたsudo update-grub
ウィリアムMortada

5

すぐにドライブを交換すれば、使用できます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/

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


インストールしようとしている新しい「40GB」ドライブは、現在の「40GB」ドライブよりも小さいことがわかります。両方とも接続していて、liveCDで起動しています。古いものから新しいものにただddし、それを完了した取引と呼ぶ簡単な方法はありますか?
mlissner

実際、この質問を整理しました。大きすぎるパーティションはext4パーティションであったため、liveCDを起動し、gpartedを使用して少し縮小しました。
mlissner

4

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.