
最近、マシンに SSD をインストールしました。マシン自体は Lenovo thinkpad W520 で、以前は内蔵 HDD が搭載されていました。内蔵 HDD を拡張ベイに移動し (CD-ROM を置き換え)、新しい SSD を内蔵ベイに取り付けました。
私が抱えている問題は、Ubuntu の設定がまさに希望どおりになっていることです。当初は、現在の設定にするために多くの時間を費やしました。もう二度とこのようなことはしたくありません。しかし、OS を SSD 上に配置することで得られる起動時間の短縮も望んでいます。
そこで、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) Ubuntu 11.04 (/dev/sdb5 から) を起動し、dd if=/dev/sdb5 of=/dev/sda1 を実行します (もちろん、これによって起動に問題が発生するため、grub を再インストールする必要がありました。起動はできますが、initrd が一部のファイルを見つけられないという問題が発生します... おそらく、一部のパーティションをロードできないのだと思います)。
さて、私はこれらの 2 つの手順は間違ったアプローチだと思います。なぜなら、/dev/sdb5 が正確に複製され、間違ったハード ドライブを指す fstab 内の参照も含まれるからです。これをどのように修正すればよいのか、正確にはわかりません。Ubuntu 11.04 を SSD にインストールして、すべての構成をコピーしてみることもできますが、何かが失われるか、元のハード ドライブを指す fstab のようなものが上書きされるのではないかと心配です。
なお、現時点ではまだ HDD から起動できるので、これをすぐに解決する必要はありませんが、現在の生産性レベルを維持できるように、現状のままにしておきたいと考えています (これは仕事用のラップトップです)。
この困難を克服するにはどうすればいいか、アドバイスをいただけますか?
前もって感謝します!
答え1
古いシステムを新しいドライブに移行する方法は複数ありますが、実際に尋ねられたのは、その方法ではなく、システムを複製する方法です。
私はライブ CD から gparted を使用するので、どちらのパーティションもマウントされません。元のパーティションを SSD 上で必要なサイズに縮小し、そのパーティションをコピーして新しいドライブに貼り付けることができます。私の記憶が正しければ、これにより同じ UUID が再利用されますが、後でどちらかのパーティションでそれを変更できます。これを行うコマンドは、sudo tune2fs -U random /dev/sdb5
sdb5 に UUID を割り当てることです。
古いシステムを変更せず、しばらくマウントしたままにしておきたい場合は、SSD パーティションの UUID を変更して fstab を編集することができます。これは実際にはまったく難しくなく、学ぶべきことです。すでに持っている知識を持つ人にとっては、かなり自明です。新しい UUID を割り当てたら、次のコマンドですべてを確認できます。sudo blkid -c /dev/null
- パラメータ -c はキャッシュ ファイルを指定し、/dev/null はキャッシュを使用しないことを意味します。そのため、変更は常にすぐに反映されます。私は常にこの形式を使用していますが、多くパーティションの。
UUID を取得したら、gedit または任意のテキスト エディターを使用して、それをコピーして /etc/fstab の古いものに貼り付けることができます。
ただし、個人的には、最初にパーティションのサイズを変更する時間をかけるよりも、古いインストールを新しいディスクにコピーする方がよいでしょう。GRUB を mbr にインストールする方法がわからない場合は、まずベースの Ubuntu をインストールし、次に /etc/fstab をバックアップし、古いインストールをその上にコピーし、次に新しいインストールから fstab をコピーして、正しいエントリのみが含まれるようにするとよいかもしれません。
答え2
ライブ CD から起動し、両方のドライブをマウントし、 でファイルをコピーしますsudo cp -ax /media/source /media/dest
。 コピー先の /etc/fstab を編集して正しい UUID ( で検索blkid
) を指定し、grub を再インストールします。
答え3
dd if=/dev/sdb5 of=/dev/sda1
システムが/dev/sdb5
それ自体で実行されている場合(そしておそらく読み取り専用でマウントされていない場合)は、使用を避けることをお勧めします。
パーティションをコピーする別の方法は、ライブ CD (または USB) から起動して GParted を起動することです。Ctrl+C/Ctrl+V を使用して、あるディスクから別のディスクにパーティションをコピーできます。
コピーが作成されたら (おそらく再起動後にパーティション テーブルを更新する必要があります)、引き続きライブ CD から、ターミナルを使用して新しいルート パーティションをマウントします。
sudo mount /dev/sda1 /mnt
次に、/mnt/etc/fstab
正しい場所を指すように編集します。
答え4
bashスクリプトclone-ubuntu.sh
承認された回答で概説されている手順を自動化します。新しいパーティションを簡単に見つけられるようにメニューが用意されています。
スクリプトのコピーと、次のような考慮すべき重要なポイントについては、上記のリンクにアクセスしてください。
rsync
起動されたパーティションを複製するために使用され、システム仮想ディレクトリは正しくスキップされます。/etc/fstab
ターゲット クローンの UUID が起動用に正しい UUID に更新されます。/etc/grub/grub.cfg
シームレスな GRUB ブートのために更新されました。