Linuxを再インストールせずにラップトップディスクドライブを切り替えますか?

Linuxを再インストールせずにラップトップディスクドライブを切り替えますか?

私のラップトップのハードドライブにLubuntu 17.04がインストールされています。これで交換品とほぼ同じサイズのSSDを購入しましたが、SSDは空で破損していません。

ディスクを切り替えて、デフォルトでHDDにすでに存在しているものと同じ項目をSSDに移動したいと思います。そして、もう調整せずにLinuxを実行したい(UUIDの/etc/fstab問題を除く)。

どうすればいいですか?

  1. 追加のコンピュータの助けは必要ありませんか?
  2. 追加のコンピュータのサポートが必要ですか?

メモ:

  • 必要に応じて起動可能なUSBスティックを作成できます。
  • 必要に応じてCD / DVDリーダーを使用できます。
  • HDDを33%使用するため、データを保持できますが、HDD容量が少し大きいです。
  • HDDの一部のセクタが危険状態にある可能性があります(ただし、現在はLinuxが起動して動作しています)。
  • 私が知っている限り、HDDには1つのパーティションしかありません。私が唯一のユーザーであり、一部のパブリックサーバーなどとして使用されていないことを考慮すると、SSDにパーティションを保持することもできます。

ベストアンサー1

インストールを新しいディスクに切り替えるか、ディスクを複製するか、コンテンツをコピーしてシステムを回復するための2つの基本的な方法(ブートローダ、fstabエントリ)があります。どちらの方法にも長所と短所があります。

どちらの方法も、ディスクが接続されている別のシステムと追加のストレージスペースまたは2番目のディスクが必要です。これは他のラップトップまたはデスクトップ、実際のラップトップのライブUSB / CDです。

両方のディスクをシステムに接続できるのは最も簡単な方法です。ただし、そうでない場合は、ドライブの交換中に追加のストレージを一時的なスクラッチ領域として使用できます。大容量のUSBハードドライブがあれば使用できます。より簡単なオプションは次のとおりです。USBケース代わりに、これにより両方のディスクを同じコンピュータに接続できます。

したがって、Live USBおよびUSBエンクロージャを使用すると、ドライブを交換したいノートブックで完全な操作を実行できます。どちらの方法でも、両方のディスクが接続されており、どちらもマウントされていない状態でディスク転送を直接説明します(たとえば、別のコンピュータにマウントしているか、ライブUSB / CDを使用しています)。私は/dev/sdSソースディスク(あなたの場合はHDD)を表示し、/dev/sdDターゲットディスクを表示するために使用します。これらのディスクをシステムの物理ディスクと交換します。エラーのため、ターゲットのすべてのデータが削除される可能性があるため、これらのディスクを確認してください。

方法 1: ディスクの複製

これは、ディスクから同じサイズまたは大きいディスクに移動するのに最も簡単な方法ですが、追加の手順を使用すると、より大きなディスクからより小さいディスクに移動できます。この方法の最大の欠点は、ディスクをブロック単位でコピーするため、ディスク全体を読み書きする必要があることです。ディスクがほとんど空の場合、システムをコピーするよりも時間がかかります。

少し大きいディスクからより小さいディスクに切り替えると述べたので、最初のステップは、ソースディスクのパーティションサイズをターゲットディスクよりも小さくすることです。これが一番簡単です。割れた、空き容量がディスクの端にあるようにドライブを縮小します。ディスクの末尾にあるすべてのデータを新しい場所に移動する必要があるため、時間がかかることがあります。

ddこれで、ソースディスクをターゲットディスクに使用または複製するだけですddrescueddrescueあなたが言及した不良セクタをもう一度読んでみてください。

sudo ddrescue /dev/sdS --force /dev/sdD

または以下を使用してくださいdd

sudo dd if=/dev/sdS of=/dev/sdD

書き込み中にターゲットディスクがいっぱいになったというエラーメッセージが表示されることに注意してください。サイズを変更してからディスクの端に役立つ内容を含めないでください。そのため、ターゲットサイズより少し小さくサイズを変更する必要があります。

gparted を再度使用して、ドライブを埋めるようにターゲットのサイズを変更できます。

これで、ディスクを交換して新しいシステムを起動できます。

方法2:ルートファイルシステムのコピー

大容量のディスクでは少量のスペースしか使用できませんが、システムを起動するためにブートローダとfstabを再設定するためのより多くの手順が必要な場合は、この方法がより速くなる可能性があります。また、ソースディスクでは読み取り専用という利点があるため、ソースディスクが破損する可能性が低くなります。 (上記の方法はそうではありませんが、ターゲットディスクがソースディスクよりも小さいため、ディスクのサイズを変更する必要があるため、これは本当ではありません。ソース)。また、必要に応じてパーティションを簡単に変更できるため、より柔軟です。

最初のステップは、新しいドライブにパーティションテーブルを設定し、パーティションをフォーマットすることです。ドライブにパーティションが1つしかないと言われました。ここでは、以前のBIOSから起動するとします(uefiにはルートファイルシステムに加えてvfatパーティションが必要なため)。最も簡単な方法は次のとおりですparted

sudo parted /dev/sdD mklabel msdos
sudo parted /dev/sdD mkpart primary ext4 0% 100%
sudo mkfs.ext4 -F /dev/sdD1

ただし、必要に応じてまたはfdiskを使用することもできますgdiskgparted元のディスクにさらにパーティションがある場合、またはパーティションのレイアウトを変更したい場合は、これを行うことができます。必要に応じてターゲットディスクを設定するだけです。

これで、ソースディスクとターゲットディスクをマウントします。

sudo mkdir -p /mnt/src /mnt/dest
sudo mount /dev/sdS1 /mnt/src
sudo mount /dev/sdD1 /mnt/dest

これ以上のパーティションがある場合、または必要に応じて、ルートディレクトリとそれに関連する他のパーティションを上記の場所にマウントします。 (たとえば、ソースに追加のブートパーティションがある場合は、それを/mnt/src/bootにマウントします。)

次に、ソースからターゲットにコンテンツをコピーします。

sudo rsync -avh /mnt/src/ /mnt/dest/

少し時間がかかります。中断した場合は、コマンドを再実行して再開できます。

これ以上不要になったので、ソースドライブをマウント解除できます。

sudo umount /mnt/source

最後のステップは、システムが起動できるように回復することです。まず、新しいシステムを開いて修復します。/mnt/dest/fstabパーティションレイアウトが同じ場合は、新しいパーティションを反映するようにUUID /ドライブ文字を更新する必要があります。blkid必須情報、推奨情報、UUID=またはPARTUUID=可能であれば情報を取得するために使用されます。

最後に、ブートローダを回復する必要があります。ここでは、以前のBIOSでgrub2を使用しているとします。そうでない場合は、それを無視してブートローダを復元する方法の指示に従ってください。

sudo grub-install --boot-directory=/mnt/dest/boot /dev/sdD

Ubuntuブートローダの復元の詳細については、次を参照してください。ここ

すべてが順調に進むと終了し、ドライブを交換し、新しいディスクを起動できます。

追加機能

3番目のディスクを介した作業

2台のディスクを1台のコンピュータに接続できない場合は、追加のストレージが必要です。これは、USBディスク、ネットワーク接続ストレージ、またはローカルでアクセスでき、ディスクまたはルートファイルシステムを保存するのに十分な大きさの他のストレージです。 。

上記の2つの方法のプロセス全体は同じですが、あるディスクから別のディスクにコピーするのではなく、最初に一時準備領域にコピーされます。

使用法1:

これを行うには、準備領域がコピーするディスクと同じ大きさでなければなりません。

次にストレージマウント/mnt/staging

sudo ddrescue /dev/sdS /mnt/staging/rootfs.img

すべてのファイルに必要なものは何でもできます。必要に応じて、ここで圧縮してシステムバックアップとして保存できます。

その後、スワップドライブを閉じてライブUSBを再起動して画像を復元できます。

sudo ddrescue /mnt/staging/rootfs.img --force /dev/sdD

この方法を使用する場合は、ソースとターゲットのドライブ文字が同じになることがあります。

使用法2:

圧縮時に準備領域がディスク全体ではなくファイルシステムと同じ大きさであることに注意してください。

次にストレージをマウントし、/mnt/staging次をソースとして使用します/mnt/src

sudo tar -C /mnt/src -caf /mnt/staging/roofs.tar.gz /

その後、スワップドライブを閉じてライブUSBを再起動してターゲットディスクファイルシステムを設定し、ファイルシステムを復元できます。

sudo tar -C /mnt/dest -xf /mnt/staging/roofs.tar.gz /

その後、fstabとブートローダを復元し続けます。

おすすめ記事