稼働中のUbuntu MATE 14.04システムを新しいSSDに移行した方法

どういうわけか、作業中に、Linux上に8ギガバイトのRAMを搭載したi5thの個人用ラップトップは、サービスよりも劣っており、パワフルな「馬」ではないことに気付きました。



「馬に乗る」ことが決定されました。古いSATA HDDの代わりに、新しいSSDディスクが購入されました。 管理者は本質的に怠け者であり、私も例外ではありませんでした。 新たに行われたすべてのことを思い出したくはありませんでした。職場環境を言葉から構築し、オペレーティングシステムを移植することは、私の場合は最も問題のないオプションでした。 それでは始めましょう。



システムで/ dev / sdbとして識別される2番目の新しい60 GB SSDドライブは、DVDドライブのスロットにあるアダプターコントローラーを介してラップトップに接続されました。



古い320 GB HDD / dev / sdaには3つのパーティションがありました:/ dev / sda1(スワップ-以前は無効)、/ dev / sda2(/ルートパーティション)、/ dev / sda3(/ home)。 すべてのセクションのすべてのデータの全量が約50 GBを占めていました。



USBフラッシュドライブからUbuntu MATE 14.04でLiveUSBモードで起動します。 GpartedはSSDにsdb1パーティションを作成しました。 フラグを設定しませんでした。 ルート特権モードに入ります:



sudo -i
      
      





TRIMサポートがあるかどうかを確認します。



 hdparm -I /dev/sdb | grep -i trim
      
      





*データセット管理TRIMがサポートされています(1ブロックを制限)。



リスト出力は、TRIMサポートがあり、アクティブであることを意味します。



セクションの配置を確認します。



 parted /dev/sdb align-check opt 1
      
      





1が整列している場合、または1が整列している場合、すべてが順序どおりです。



マウントポイントディレクトリを作成します。



 mkdir /mnt/{sda2,sda3,sdb1}
      
      





必要なセクションをマウントします。



 mount /dev/sdb1 /mnt/sdb1 mount /dev/sda2 /mnt/sda2
      
      





ルートパーティションからデータを同期して転送します。



 rsync -qaHEAXh /mnt/sda2/* /mnt/sdb1
      
      





ここで:

-q-詳細レベルを下げる

-a-アーカイブモード

-H-ハードリンクを保持する

-E-実行可能ファイルを保存します

-A-ACLを保存します

-X-拡張属性を保存します

-h-読み取り可能な形式で数値を出力します



ユーザーのディレクトリでセクションをマウントし、そこからデータを転送します。



 mount /dev/sda3 /mnt/sda3 rsync -qaHEAXh /mnt/sda3/* /mnt/sdb1/home
      
      





偶発的なエラーによる安全性を高めるには、元のHDDのセクションをアンマウントします。



 umount /mnt/sda2 umount /mnt/sda3
      
      





データが転送されたネイティブOSのファイルシステムをマウントします。



 mount --bind /proc /mnt/sdb1/proc mount --bind /dev /mnt/sdb1/dev mount --bind /sys /mnt/sdb1/sys
      
      





chroot操作は、作業ルートディレクトリをデータの転送先に変更します。



 chroot /mnt/sdb1
      
      





構成ファイルの1つをファイルシステムに関する情報とともにバックアップします。



 cp /etc/fstab{,.bak}
      
      





sdb1セクションの現在のUUIDラベルをfstabに追加します。



 ls -l /dev/disk/by-uuid |grep sdb >> /etc/fstab
      
      





fstabの編集:



 nano /etc/fstab
      
      





そして、おおよその形式にします:



#/インストール中/ dev / sdb1

UUID = c45939b4-3a58-4873-aa6e-247746hgftb5 / ext4エラー= remount-ro 0 1



ここで、UUID = sdb1値



Linuxブートローダー構成ファイルの更新:



 update-grub
      
      





grub.cfg構成ファイルのセクションのUUID値が正しく設定されているかどうかを確認します。



 cat /boot/grub/grub.cfg | grep «uuid sda2»
      
      





ここで、「uuid sda2」の代わりに、uuidパーティションの値を置き換えます。 私はまだ古い値を持っているので:



chrootの終了:



 exit
      
      





ファイルシステムのマウント解除:



 umount /mnt/sdb1/sys umount /mnt/sdb1/dev umount /mnt/sdb1/proc
      
      





grub.cfgで、sda2セクションの古いuuid値をすべてsdb1セクションの新しいuuid値に変更します。 私にとってそうするのは簡単でした。 あなたのやり方でそれをすることができます。



置換ユーティリティがあるmysqlサーバーを配置します(同じパスワードは、いずれも役に立ちません)。



 apt-get install mysql-server-5.5
      
      





UUIDの変更:



 replace 'old_uuid' 'new_uuid' -- /mnt/sdb1/boot/grub/grub.cfg
      
      





ここで、old_uuidとnew_uuidは、それぞれ古い値と新しい値です。



grub.cfgの値が変更されたかどうかを確認します。



 cat /mnt/sdb1/boot/grub/grub.cfg | grep «uuid sdb1»
      
      





ファイルシステムとchroot-nameを再マウントします。



 mount --bind /proc /mnt/sdb1/proc mount --bind /dev /mnt/sdb1/dev mount --bind /sys /mnt/sdb1/sys chroot /mnt/sdb1
      
      





ブートローダー自体をsdbにインストールします。



 grub-install /dev/sdb
      
      





chrootの終了:



 exit
      
      





マウントされたすべてをアンマウントします。



 umount /mnt/sdb1/sys umount /mnt/sdb1/dev umount /mnt/sdb1/proc umount /mnt/sdb1
      
      





ルート特権モードを終了します。



 exit
      
      





新しいシステムで再起動します。 BIOSを再起動するときは、新しいデバイスからブートを選択してインストールすることを忘れないでください。



All Articles