内蔵HDDを新しいSSDにクローンする


20

最近、SSDをマシンにインストールしました。マシン自体はLenovo ThinkPad W520であり、以前は内蔵HDDがありました。内蔵HDDを拡張ベイに移動し(CD-ROMを交換)、新しいSSDを内蔵ベイに入れました。

私が抱えている問題は、Ubuntuの構成が思い通りに正確に設定されていることです。当初は、現在の状態に戻すために多くの時間を費やしていました。私はこれを二度とやりたくない。しかし、SSD上にあるOSから得られるブートアップゲインも欲しいです。

だから、私がやりたいことは、UbuntuパーティションをSSDにクローンすることです。問題は、標準HDDがSSDよりもかなり大きいことです。また、SSDには必要ないWindowsパーティションがあります(Windowsを使用することはありませんので、他のハードドライブから起動する場合は問題ありません)。私のハードドライブのレイアウトは次のとおりです。

/ dev / sda(SSD):モデル:ATA M4-CT256M4SSD2(scsi)ディスク/ dev / sda:256GBセクターサイズ(論理/物理):512B / 512Bパーティションテーブル:msdos

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  147GB  147GB  primary  ext4         boot

/ dev / sdb(HDD):モデル:ATA ST9500420AS(scsi)ディスク/ dev / sdb:500GBセクターサイズ(論理/物理):512B / 512Bパーティションテーブル:msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1259MB  1258MB  primary   ntfs            boot
 2      1259MB  269GB   268GB   primary   ntfs
 4      269GB   483GB   214GB   extended
 5      269GB   416GB   147GB   logical   ext4
 7      416GB   475GB   58.9GB  logical   linux-swap(v1)
 6      475GB   483GB   8470MB  logical
 3      483GB   500GB   16.8GB  primary   ntfs

私がこれまでに試したこと:

1)パーティション/ dev / sdb5と/ dev / sda1のサイズを同じサイズに変更します。2)(/ dev / sdb5から)Ubuntu 11.04を起動し、dd if = / dev / sdb5 of = / dev / sda1を実行します(もちろん、これは起動時に問題を引き起こすため、grubを再インストールする必要がありました。起動しますが、それからinitrdがいくつかのファイルを見つけられないという問題があります...おそらくそれは私が思ういくつかのパーティションをロードできません)。

さて、/ dev / sdb5を正確に複製するため、これら2つのステップは間違ったアプローチだと思います-間違ったハードドライブを指すfstabの参照を含みます。これを修正する方法が正確にわかりません。Ubuntu 11.04をSSDにインストールしてから、すべての構成をコピーして試してみることができますが、何かを失うか、元のファイルを指すfstabのようなものを上書きすることを心配していますハードドライブ。

現在、私はまだHDDから起動できるので、これをすぐに把握することは必須ではありませんが、現在の生産性レベルを維持できるように、今の状態に正確にしたいです(仕事用のノートパソコンです)。

この困難をどのように克服できるかについての提案はありますか?

前もって感謝します!

回答:


13

古いシステムを新しいドライブにインストールする方法は複数ありますが、実際にはそのようにはせず、システムのクローンを作成する方法を尋ねました。

ライブCDからgpartedを使用するだけなので、どちらのパーティションもマウントされません。元のパーティションをSSDに必要なサイズに縮小し、パーティションをコピーして新しいドライブに貼り付けることができます。記憶が正しければ、これは同じUUIDを再利用しますが、後で1つまたは他のパーティションでそれを変更できます。このためのコマンドはsudo tune2fs -U random /dev/sdb5、sdb5にUUIDを割り当てます。

古いシステムを変更したくない場合、およびしばらくの間マウントしたままにする場合は、SSDパーティションのUUIDを変更し、fstabを編集できます。それは実際にはまったく難しくなく、あなたが学ぶべきものです。あなたがすでに持っていると思われる知識を持っている人にとって、それはかなり自明です。新しいUUIDを割り当てると、次のコマンドですべてのUUIDを確認できsudo blkid -c /dev/nullます。-パラメーター-cはキャッシュファイルを指定し、/ dev / nullはキャッシュを使用しないことを意味するため、常に変更をすぐに取得できます。私は常にそのフォームを使用しますが、多くのパーティションがない限り、マイナス面はありません。

UUIDを取得したら、geditまたは任意のテキストエディターを使用して、/ etc / fstabの古いUUIDにコピーして貼り付けることができます。

ただし、個人的には、最初にパーティションのサイズを変更するのに時間をかけるのではなく、古いインストールを新しいディスクにコピーするだけです。GRUBをmbrにインストールする方法がわからない場合は、最初にベースUbuntuをインストールし、次に/ etc / fstabをバックアップし、その上に古いインストールをコピーしてから、新しいインストールからfstabをコピーします。正しいエントリのみがあります。


これは非常に役立ちます、ありがとう。私はそれを試して、それを機能させることができるかどうかを確認します。その後、私は戻ってきて答えを受け入れるか、それについてさらに尋ねます。;)
jwir3

1
ライブインストールCDには、必要なものがすべて揃っているため、何度も使用しました。しかし、私が使用した最高の実際のレスキューイメージはSystem Rescue CDです。この起動可能なCDはUSBスティックとしても入手でき、何か(または名前のない誰かが)を消去した後、何度もGRUBを修正しました。gpartを実行し、grubツール、およびLinuxインストールを修正する他のすべてを、あまりオーバーヘッドなしで行いました。これはあなたが尋ねていたタイプですか?
マーティフライド

1
どういたしまして、幸運を祈ります。
マーティフライド

1
これはうまくいきました。私が少し不確かだったのは、grubを構成する方法でした。より具体的には、grubレガシーとgrub2を構成する方法は非常に異なることです。grub2をインストールしたら、次をgrub2のリファレンスとして使用しました(apt-get install grub2):dedoimedo.com/computers/grub-2.html grub-legacyが実際にシステムにインストールされていたときに、もともとgrub2のインストール方法を使用していました。
-jwir3

1
ああ、はい、愛らしいgrub、そしてそれは改善されています、grub2(NEW!IMPROVED!NOW EVEN MORE COMPLEX!)申し訳ありませんが、それはすべて私のせいです。私は古いgrubを完全に理解するようになったので、もちろん彼らはそれを変えました。その後、私がgrub2を取得していると思ったとき、以前のバージョンと互換性のない、いくつかのマイナーな変更を加えました。だからこそ、grubをセットアップするために、最初にベースインストールの可能性を提案しました。しかし、grubを学ぶことは良い考えであり、実際にはそれほど複雑ではありません。今grub2に切り替えましたか?
マーティフライド

5

livecdから起動し、両方のドライブをマウントしてから、でファイルをコピーしますsudo cp -ax /media/source /media/dest。宛先の/ etc / fstabを編集して正しいUUIDを指すようにし(で検索blkid)、grubを再インストールします。


それが私がしたいことですが、grub2のハンドルを取得するのに永遠にかかりました-主に私が読んださまざまな方法の無数のために、どれも完全ではないと思われました。あなたの投稿は、その人があなたと同じレベルにいると仮定します。あるいは、単に知らない部分について尋ねると単純に仮定します(おそらく大丈夫です)。しかし、最も簡単な部分であるコピーコマンドを指定し、より難しい部分を少しばかり見栄えよくしたのは不思議です。:)
マーティフライド

3
@MartyFried、グーグルがすぐにhelp.ubuntu.com/community/Grub2#Reinstalling_GRUB2にジャンプします。これはgrub-install --root-directory /mnt /dev/sda、/ mntにUbuntuパーティションをマウントした後に実行するのと同じくらい簡単だと言います;)
psusi

ああ、ドキュメントが改善または追加されたと聞いてうれしいです。それは私にとってはしばらくの間でしたが、私がそれに取り組もうとしていたとき、公式のGRUBのドキュメントでさえ完全に正しくありませんでした。また、GRUB2のバージョンが変更され、あいまいなエラーメッセージが表示されて失敗しました。しかし、私が頻繁に使用していたUbuntuフォーラムの問題は、彼らが話していることをほとんど知らない人々によって事実になるまで繰り返される多くの誤った情報があることです-全員ではありませんが、時々整理するのは難しいです。
マーティフライド

2

dd if=/dev/sdb5 of=/dev/sda1システムが/dev/sdb5それ自体から実行されている場合(おそらく、読み取り専用でマウントされていない場合)は、使用を避けることをお勧めします。

パーティションをコピーする別の方法は、ライブCD(またはUSB)から起動してGPartedを起動することです。Ctrl + C / Ctrl + Vを使用して、あるディスクから別のディスクにパーティションをコピーできます。

1つのコピーが作成され(おそらく再起動後にパーティションテーブルを更新する必要があります)、まだライブCDから、ターミナルを使用して新しいルートパーティションをマウントします。

sudo mount /dev/sda1 /mnt

次に、/mnt/etc/fstab正しい場所を指すように編集します。


1
あなたの場合はdd、ライブCDからあなたはfstabには、それが(それがすべき)UUIDを使用して編集する必要はありません。
アレッツ

0

bashスクリプトclone-ubuntu.shは、受け入れられた回答が概説するステップを自動化します。新しいパーティションを見つけやすくするためのメニューが提供されています。

clone-ubuntu.png

上記のリンクにアクセスして、スクリプトのコピーと次のような重要な考慮事項を確認してください。

  • rsync ブートされたパーティションのクローン作成に使用され、システム仮想ディレクトリは正しくスキップされます。
  • /etc/fstab ターゲットクローンのが、ブート用の正しいUUIDで更新されます。
  • /etc/grub/grub.cfg シームレスなGRUBブート用に更新されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.