今日は、すべてのデータをあるハードディスクから別のハードディスクに移行する方法を見ていきます。これは、何らかの理由でコンピューターの現在のハードディスクを別の(同じまたは異なる容量の)ハードディスクと交換する必要がある場合に役立ちます。
数日前、友人の家をさりげなく訪れたとき(私の粘り強さの数か月前に偶然にもGNU / Linuxに移行した)、彼は非常に喜んで彼らが彼に与えた新しいハードドライブ(500 Gb)を見せてくれました。多くの人にとっては小容量のデバイスのように見えるかもしれませんが、ここジュラシックキューバでは、大容量データストレージへの大きな一歩です)、すでに廃止され、半分故障した160GBディスクを交換する必要がありました。
彼の提案自体は、古いディスクを取り外し、その場所に500 GBのディスクを配置してから、インストールすることでした。 Debianの、これは私が古いディスクにインストールしたディストリビューションであり、すべての設定を復元するのにしばらく時間がかかります。
これが起こっている間、私の友人のいとこは、この作業の集大成が80 GBのディスクを取得するのを待っていました。これにより、はるかに古いコンピューターの40GBのディスクが置き換えられます。
このすべての詳細は、私がのインストールディスクを持って歩いていなかったということです Debianの、手元のリポジトリでは少なくなります。 したがって、必要なものを見つけるために家に行った場合を除いて、システムとアプリケーションをインストールするというアイデアは私たちの手の届かないところにありましたが、サンティアゴデキューバの街の一方の端からもう一方の端に移動することは代替手段にはなりませんでした私にとっては、公式の交通機関(自家用バイク)が今年の新年にその料金を40倍にした都市で(恵みは私にXNUMXペソ以上の費用がかかる予定でした)。
そこで火花が灯されました:アルバムのクローンを作成するためです。 このディスクのクローン作成は、多くの人に最初に起こったことだと思いますが、私には、 準アルファベット これらのタスクでは、オープンオリンパスの神々から直接送られた突然の代替案のように見えました。
必要な紹介を数えた後、問題のケースの技術的な側面に進みます。 最初は、次のパーティションシステムを備えた80GBのハードドライブがあります。
/ dev / sda1 / / dev / sda5スワップ/ dev / sda6 /ホーム
そして、次のようにパーティション分割する新しい500GBハードドライブ:
/ dev / sdb1 / / dev / sdb2 swap / dev / sdb3 / home
多くの人は、最初のハードドライブの場合にsda1からsda5にジャンプすることに確かに気づいています。これは、パーティションを定義するときに、sda1である起動可能なプライマリパーティションがあり、次にXNUMXつに分割される拡張パーティションがあるためです。 sda5 ysda6.
また、ある時点で、友人が追放されたWindows7を収容していたパーティションを削除しなければならなかったと思います。
500 Gbハードドライブは、パーティション番号が連続して検出されるようにパーティション化されています。 このディスクの名前は / dev / sdb SATAポートにインストールすることで、システムを既存のディスクと同時に共有するため、 / dev / sdaに.
パーティションのフォーマット
パーティションを作成するには、次のようなビジュアルツールを使用できます。 Gparted、または次のようなコンソールからのアプリケーション cfdisk。 このステップでは、最初のハードドライブである80GBのオペレーティングシステムを使用していることを忘れないでください。
つまり、これから、新しいハードドライブのXNUMXつのパーティションを作成します。 パーティションを作成したら、次のようにフォーマットする必要があります。
mkfs.ext4 / dev / sdb1 mkfs.ext4 / dev / sdb3 mkswap / dev / sdb2
今行ったのは、ext1として/ dev / sdb2と/ dev / sdb4をフォーマットし、SWAPとして/ dev / sdb2をフォーマットすることです。
オーダー mkfs.ext4 に似ています mkfs -t ext4。 新しいハードドライブで再起動するときは、新しいスワップパーティション(スワップパーティション)があることをシステムに通知する必要があることを考慮に入れる必要があります。
swapon / dev / sda2
終了したら古いディスクを削除するため、sdb2ではなくsda2を使用します。
パーティションのクローン作成
私たちはすでにそれに陥っています チキンライスとチキン。 パーティションのクローンを作成するための明確なレシピはありません。 私たちの場合、/ homeのコンテンツの正確なコピーを作成する必要があります。これには、(rootとして)次のことを行います。
cd / media mkdir sdb3 mmount -t ext4 / dev / sdb3 / media / sdb3 rsync -a / home / myfriend media / sdb3
リラックスして、私は説明します:
/ media内に、sdb3という名前のディレクトリ(新しいディスクのパーティションの名前と一致する必要があります)を作成しました。これにより、マウント時に混乱が生じません。
次に、rsyncコマンドを使用して、ファイルとフォルダーを/ homeから/ media / sdb3に同期します。これは、sdb3パーティションが/ homeになるためです。
旗 -a これは、権限、所有者、日付、およびディレクトリを維持するのに役立ちます。
私たちはインテリジェントに使用しました /家/ myfriend としない /家/ myfriend /なぜなら、友達の最後にスラッシュを付けていたら、/ホーム/友達の中のファイルとフォルダだけをコピーしていたからです。 私たちがしたことは、置くことと同じです:
rsync -a / home / / media / sdb3
私の友人の場合のように、彼は家にXNUMX人のユーザーしかいません、XNUMXつまたは別のコマンドラインを置くことは重要ではありません。
もちろん、ルート/パーティションのクローンを作成するときが来ました。 いくつかの障害が起動せずにパーティションを離れ、したがってシステムのないハードディスクを離れる可能性があるため、これは重要でデリケートな瞬間です。
次のステップの前のヒントは、スペースを節約し、あるハードドライブから別のハードドライブへの不要なデータのトラフィックを減らすために、ルートパーティションをクリーニングすることです。
以前にごみ箱を空にして(ホームのクローンを作成する前であっても)、使用されていないパッケージと不要な特定のパッケージを削除することをお勧めします。
dpkg -l | grep ^ rc dpkg--purgeパッケージ
また、ローカルリポジトリからパッケージを確実に削除することもできます。これは、更新またはインストールのたびにリポジトリからダウンロードされ、キャッシュされたパッケージです。
apt-get clean
上記の手順を実行することにより、確実に数GBのスペースを解放できることがわかります。 さて、ルート/のクローンを作成しましょう。
ルートパーティションの場合は、データを少しずつコピーすることをお勧めします。 明らかに情報の蓄積が少なく、少しずつ失敗する傾向がほとんどなく、特別な権限でエラーが発生しないため、自宅よりも時間がかかりません。
この場合のコマンドラインは次のとおりです。
dd if = / dev / sda1 of = / dev / sdb1
この場合、何もマウントする必要はありません。 操作が完了するまでの時間は少し長くなりますが、それだけの価値はあります。
再起動の準備
この時点で、すでにパーティション / dev / sdb1 これは、古いディスクにインストールされているルートシステムのクローンです。 80 GBのディスクを取り外すときに、コンピュータが500GBのディスクを認識して起動するようにすることが重要になりました。
よく知られているfstabファイル(にある500ディスクのファイル)に触れるときが来ました。 /メディア/ sdb1 /など/ fstab).
nano / media / sdb1 / etc / fstab
そして、これに似たものが得られます:
#/ etc / fstab:静的ファイルシステム情報。 ## proc / proc proc nodev、noexec、nosuid 0 0#/ dev / sda1のエントリ:UUID = 6b192eef-e188-4e07-94de-14c95e02de78 / ext4エラー= remount-ro 0 $#/ dev / sda2のエントリ:UUID = 3bd60ec0 -92f3-4ea6-a4d3-aaaf27dd8b8e none swap sw 0 0 #Entry for / dev / sda3:UUID = 3828f973-3b20-4019-9fe2-8296c755be31 / home ext4 defaults 0 2
次に、古いUUID(fstabファイル内のUUIDは80GBディスクからのもの)を新しいUUID(新しい500GBディスクからのもの)に変更する必要があります。 これを行うには、UUIDでデバイスを見つける必要があります。これは、いくつかの方法で行われます。
次のコマンドを使用するオプションがXNUMXつあります。
ls -l / dev / disk / by-uuid
また、rootとして使用します。
blkid
これで、fstabのUUIDを正しいものに置き換えるだけで済みます。
開始を保証します。 Grub2のインストール
El Debian ウィジー 友人の古いハードドライブにインストールされている場合、システムブートとしてGrub2を使用するため、 MBR(マスターブートレコード) 新しいハードドライブ(500 GBのもの)の新しいハードドライブをインストールする必要があります GRUB.
設定ファイルがすでに/ bootディレクトリに書き込まれているのは事実ですが、MBR(ハードディスクの最初のセクター(「セクターXNUMX」))は空白であるため、そのままではブートできません。
構成はに保存されます /boot/grub/grub.cfg、しかしこのファイルはによって作成されます grub-mkconfig、したがって、手動で編集することはお勧めできません。
最良の方法は、新しいパーティションがマウントされたら(新しく複製されたルートパーティションはマウントされないことに注意してください。 dd パーティションをマウントせずにクローンを作成):
マウント-text4 / dev / sdb1 / media / sdb1
次に、次の手順でGRUB2をMBRにロードする必要があります。
grub-install / dev / sdb
そして出来上がり、その単純な、私たちはすでに持っています GRUB 500GBハードドライブのMBRで構成されます。
最終ステップ
次に、コンピューターの電源を切り、友人の80 Gbハードドライブを取り外し、いとこに渡し(最初の話を参照)、コンピューターの電源を入れ直し、指を交差させて...
友人、私が間違っているかどうかはわかりませんが、「dd」コマンドを使用する前に、宛先パーティションはソースパーティションと正確に同じサイズでなければならないと思います。 そうでない場合は、千の謝罪。
それは私が思うのと同じです
ddはパーティションのクローンを作成し、超過すると未割り当てのままになるため、新しいアプリケーションをインストールするためにより多くのスペースが必要になるため、パーティションは許可されません。
宛先パーティションがソースパーティションよりも大きいかどうかは関係ありません。その場合、ファイルシステムは追加のサイズを使用するように指示できます。
それは叙事詩です。 DebianがArchスタイル(純粋なコマンド)をインストールできるかどうか見てみましょう。
ddを使用してMBRのクローンを作成することもできます。
dd if = / dev / sda of = / dev / sdb bs = 512 count = 1
パーティションが完全に同じである必要はないと思います。少なくとも、それについて言及されていないarch wikiでは、試してみる必要があります。 よろしく。
それは良さそうに見えますが、= / dev / sda of = / dev / sdbが最初の512バイトをスキップする場合にddを実行する理由がわかりませんか?
わかりました。違いは、最初はパーティションのみが複製されるため、MBRの512バイトがスキップされることです。 RudaMachoのアドバイスありがとうございます。
こんにちは、システムを更新する予定はありますか? 私はそれをウィンドウズXPのために言います
こんにちはelav、clonezillaを使用すると、タスクははるかに簡単だったと思いますが、この方法で実験したのは良いことです。結局のところ、それは「ハッカー」の精神です。
ご挨拶!
Slackwareでは、tarを使用してディスク間でファイルの完全なコピーを作成しました。これにより、アクセス許可が保持され、バックアップを作成する機会があります。fstabファイルははるかに単純なので、uuidを変更する必要はありません。十分です。パーティションを作成したこと同じ順序で、liloを使用すると、ブートを作成するのが簡単になります...
とても良い😀
私の経験では、gparted copy-clone-partitionsはより高速です
また、拡大またはカットする必要がある場合は、
壮大なelavガイド、共有していただきありがとうございます。
質問があります:システムがスワップパーティションを検出するためにswaponコマンドを使用する必要がありますか、それともfstabのUUIDを変更するだけで十分ですか?
6か月前、私はdebianstableとkde4.8に飽きていました。 最新のKDEが欲しかった!! インストールディスクやUSBメモリがなかったので、elavで説明したのとほぼ同じ方法で厩舎のクローンを作成し、sidに更新しました。
私はそこにいるすべてのLinuxユーザーにこの方法をお勧めします。私たちのシステムは15GB以上を必要としません。 ルートパーティションによる。 そしてXNUMX回か少し少ないことは多くありません。
優れた貢献は、そのような明白で明確な説明よりも簡単ではなかったでしょう...おめでとうございます、あなたはgnu / linuxの教師です!!!
とても良いチュートリアル。 非常に明確な!
コマンド「dd」もあります