Linuxインストール全体を別のドライブに移動する


55

Ubuntu 14.04にはたくさんのパッケージがあり、仕事に関係するものがあり、とても満足しています。120GBのメインSSDドライブにインストールされます(ubuntuのインストール時に「/」を選択したため、すべてがこのドライブにあるはずです)。/ dev / sdaとして表示されます

今、コンピューターに別のSSDを追加しました。これは240Gbです。現在、他のストレージメディアはありません(外部ハードドライブなど)。

新しい240GBドライブは明らかに容量が大きく高速であるため(120GBよりも新しい世代)、Linuxをこの新しいドライブに移動したいと考えています。この新しいドライブは/ dev / sdbとして表示され、現時点ではフォーマットされていないか、何もありません(私は文字通りパッケージ化を解除し、今すぐPCに挿入しました:P)

Linuxインストールを新しいドライブに安全に移動するにはどうすればよいですか?

必要に応じて、新しいドライブが/ dev / sdaとして表示されるように、SATAケーブルを変更できます。

これが役立つ場合、これは「fdisk -l」の出力です。

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00076d7a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   226064383   113031168   83  Linux
/dev/sda2       226066430   234440703     4187137    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5       226066432   234440703     4187136   82  Linux swap / Solaris

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

4
両方を使用することを計画しているようです。その場合/homeは、システム全体ではなく、新しい、より大きなものを使用することを検討する必要があります。これは簡単な変更(すべてを移動して/ etcs / fstabに1行追加する)である必要があり、ほとんどの大きなファイルはホームディレクトリ(および大きなディスク)に移動する可能性があります。
ケビン

回答:


35

この目的でCLONEZILLAを使用できます。

Clonezillaは無料のパーティションおよびディスクイメージング/クローン作成ツールで、すべてのデータ(ディスクまたはパーティション全体)を高度に圧縮された方法でバックアップし、後でハードディスクにクローンして、まったく同じ状態に戻すことができます。これは、ほとんどの場合、OSをインストールするよりも高速です。

ここに画像の説明を入力してください

あなたの場合、「デバイス-デバイス」オプションも使用できますが、私はそれをよく知りません。

Clonezillaに関する詳細なガイドは、http://clonezilla.orgにあります。


1
:私はあなたが前にこれら二つのチュートリアルビデオを見てお勧めyoutube.com/watch?v=41tTudaQb0Iyoutube.com/watch?v=LS6VhLDw-io
セウェルスタックス

1
これも良い選択肢です。しかし、私はクローンジラスティックを作成するのが面倒です;-)
Pilot6

clonezillaはmbrを介してコピーしないので、ディスクイメージ全体とgpartedで少し作業するだけでうまくいくはずです
。adampski

1
うわー!これを聞いてうれしい;-)、起動時間、UUIDが変更されたためです。つまり、新しいUUIDと重要なパーティション(ホーム、スワップ)の古いUUIDが故障したためです。これを修正するには、ここに記載されいる指示に従って適切な変更を行ってください。askubuntu.com/ a / 737340/497359問題が見つかった場合はコメントしてください。
セブルスタックス

1
@adampski:これはClonezilla 2.4.5のバグのようです。回避策として、修正されるまでClonezilla 2.4.2またはClonezilla 2.4.2 Server Edition(DRBL)を使用できます。:)
cl-netbox

40

それにはいくつかの方法があります。しかし、最も簡単な方法は、すべてのファイルを古いドライブから新しいドライブにコピーすることです。

  1. 新しいドライブにext4パーティションとスワップパーティションを作成します。

  2. LiveUSBから起動します。

  3. 古いUbuntuパーティションをあるディレクトリにマウントし、新しいパーティションを他のディレクトリにマウントします。

  4. cp -aコマンドを使用して、古いファイルから新しいファイルにすべてのファイルをコピーします。

  5. grubを新しいドライブにインストールします

  6. /etc/fstab新しいUUIDで更新します。

不明な点がある場合は、説明を追加できます。


1
+1-LiveUSBからの起動を回避し、元のドライブから起動中にすべてを実行し、すべての変更を行い、再起動することもできます。
セルゲイ

1
@Étienne:これらのディレクトリ(も/dev)をコピーしないでください。宛先ドライブに空のディレクトリを作成し、ソースドライブと同じ所有者/アクセス許可を設定してください。
セルゲイ

10
最終的に使用したのは:sudo rsync -a / /mnt/linux/ --exclude sys --exclude proc --exclude dev --exclude tmp --exclude media --exclude mnt --exclude run その後 sudo mkdir sys proc dev tmp media mnt run
エティエンヌ

1
@Étienneで--exclude-commentを編集してください。書いたとおりに行うと、/ var / tmpも除外されます(私には思えます)。 be --exclude / tmp --exclude / procなど。ありがとう
swe

1
@swe私はコメントを維持するべきではなく、むしろ元の回答の編集を提案してください。
エティエンヌ

20

時間があり、安全に行きたい場合:

$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

コマンドの説明:

  • if入力、of宛先です
  • bsブロックサイズを設定します。ddが読み書きするチャンクのサイズです。通常、チャンクサイズを大きくするとパフォーマンスが向上しますが、入力ディスクにエラーがある場合のデータの破損も大きくなります。こちらをご覧ください:archwiki on dd
  • noerror r / wエラーが続きます。
  • sync エラーが発生した場合、オフセットを同期します。

これにより、基本的にディスクsdaのイメージが作成され、sdbに書き込まれます(同じパーティションレイアウトなど)。もちろん、ファイルに依存しないため、120GB全体が書き込まれます。したがって、ディスクのごく一部しか使用しない場合、非常に安全ですが、最速ではありません。ただし、入力ディスクがかなりいっぱいの場合は、さらに高速になる可能性があります。

しかし:

  • その後、パーティションのサイズを変更する必要があります。そうしないと、余分なスペースを利用できなくなります。
  • いずれの場合でも、/ etc / fstabファイルを編集する必要がある場合があります。
    これは、ハードウェアIDを使用してディスクを認識する場合です。

2
あなたのddコマンドは永久に実行されます。追加bs=1Mすることを検討してください
ドミトリーグリゴリエフ

AfaikブロックサイズはSSDで1Mである必要はありませんが、これを調べて更新します
larkey

制限はSSDテクノロジーにありませんが、bsデフォルト値は512バイトです。
ドミトリーグリゴリエフ

1
bsによる拡張回答、ヘッズアップに感謝
larkey

1
詳細な回答をありがとう...いくつかのことを学びました!しかし、私はclonezillaを使用し、その後パーティションのサイズを変更することにしました。
Saeid87

5

新しいHDDに切り替えるときの方法は次のとおりです。

  • 新しいドライブに必要なパーティションレイアウトを作成する
  • Live CD / USBからの起動、インストール、レスキューなど。
  • たとえば、コピーする古いハードディスクパーティションをマウントします。 /mnt/a
  • たとえば、ファイルを受信するための新しいハードディスクパーティションをマウントします。 /mnt/b
  • cp -aまたはからファイルをコピーするためにタールを使用/mnt/aします/mnt/b
  • 新しいディスクにブートローダー(liloまたはgrub)をインストールする¹
  • 更新し/etc/fstabます(blkid新しいUUIDを識別するために使用できます)。
  • 再起動し、すべてが正常かどうかをテストします

注¹:

次のコマンドを使用して、すべてのハードディスクとパーティションを確認します。

sudo fdisk -l 

次に、Ubuntuがインストールされているパーティションをメモします。パーティションは次のようになります。 /dev/sda1

GRUB 2(ハードディスクパーティション)をインストールする必要があるパーティションをマウントすると、ファイルシステムがNautilusに表示されます。次に、実際のハードディスクMBRを変更するために、正しいハードディスクパーティションをマウントする必要があります。そのために必要なこと:

sudo mount /dev/sda1 /mnt
mount

パーティションを別の場所にマウントします

sudo mount /dev/sda1 /mnt/boot

/dev起動したライブイメージの/devフォルダーからマウントしたパーティションのフォルダーへの壊れないリンクを作成します/mnt

sudo mount --bind /dev /mnt/dev/

ここで、ルートをライブCDルート(/)からマウントされたパーティションのルートに変更する必要があります

sudo chroot /mnt

これで、マウントされたパーティションが新しいルートである新しいルートシェルになります。この入力を確認できますls。マウントされたパーティションにいるので、先に進んでGRUB 2をインストールできます。

sudo grub-install /dev/sda 

エラーなしでインストールが完了します

入力exitまたはCtrl+ D を押して、CHROOTシェルを終了し、Live CD / USBシェルに戻ります。

クリーンリブートするために、以前にマウントしたパーティションをアンマウントします。

sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

ライブCDまたはUSBスティックを取り外してから再起動し、ハードディスクから起動します。

sudo reboot

ソース


@ baobab33:このサイトに指示をコピーしてこのサイトに貼り付けてから属性を付けることができます。外部ソースに単にリンクすることは許可されていません。上記の修正でソースも更新してください。
ファビー

4

他の回答とは異なり、これによりLinuxインストールのクローンを作成し、現在のインストールをそのままの状態でGrubメニューに追加できます。さらに、自動的に変更さ/etc/fstabれ、grubブートメニューが更新されます。

クローンを作成する正しいパーティションを選択するのに役立つメニューが提供されます。パーティションからのクローンは、現在ブートされているパーティションです。

rsyncパーティションの再クローンを選択した場合に最適な速度で使用されます。これは、アップグレードが失敗し、バグ修正を待ってから再度アップグレードを実行する場合に役立ちます。同様に、アップグレード中に間違ったオプションを選択した可能性があり、再度実行したい場合があります。

完全なスクリプトはここにあります:18.04 LTSアップグレードをテストするためにUbuntuを新しいパーティションにクローンするBashスクリプト。これは画面のようです:

clone-ubuntu.png


0

この投稿に関連する実験を行うことにしました。

Lenovo ThinkCentreを取得しました。256 GB SSDと1 TB HDD(スピナータイプ-高速ですが、SSDほど高速ではありません)がありました。

Linux Mint 19.2(LM19.2)をインストールしたとき、1 TBドライブにインストールしました。SSDが回復不能になり、新しいKingston 240 GB SSDを購入しました。

LM19.2を新しいSSDにインストールしようとしていましたが、よく開発されたLM19.2イメージを1 TBドライブから新しいSSDに転送する方法が必要であると思われました。

私はこの投稿を見つけました。上記のいくつかの確かなアドバイスがありますが、私は実験するモードでした。以下は、私が何をしたかのアカウントであり、それは働いていた非常にうまく。

  1. GPartedを使用して、1 TB HDDと同じタイプのパーティションテーブルとパーティションをSSDに作成しました。
  2. LM19.2 1 TB HDDで、すべてのTimeShift(Ubuntu / Linux Mintの新しいツール)スナップショットを実行しました。
  3. そのスナップショットをSSDに復元しました。
  4. 上記の手順が完了したら(2と3と並行して1を実行することもできます)、SSDを選択するように再起動しました。
  5. 再起動中に奇妙だった唯一のことは、初期のgrub画面がUbuntuを起動するかどうかを尋ねたことでした。これはTimeShift復元に特有のものだと思いました。
  6. LM19.2が通常行うように、その後の起動は起動します。
  7. 新しいドライブをPCから外すことでこれができることを確認したら、この回答を編集します(これが機能することは明らかです)。これは、LMマシンをすばやく複製できることを意味するため新しいハードウェアに。

起動速度だけで、これらの簡単な手順は労力に値します。Dropboxでも問題なく転送されました-もう一度ログインしたかっただけで、ファイルのインデックス作成に全時間を要しましたが、うまくいきました。

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