なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

HDDからディスク容量の小さいSSDに移行した

メインPCのCPUをRyzen 5 3600に移行した話の続き
nantonaku-shiawase.hatenablog.com

  • SSD 660p Series SSDPEKNW512G8XT」とかいう超速いSSDを入手したが、元のHDDのブートディスクが2TBデータを持っているのに対してSSDは512GBしかない
  • どうやってデータ移行して起動できるようにするかという話

gpartedでefi用の領域を用意する

以降、SSDのデバイス名を「/dev/nvme0n1」として記載

  • GPTのエントリを書き込む
$ sudo gdisk /dev/nvme0n1
w

容量200MB程度
Partition Name:『ESP』
基本パーティション
ラベル:『ESP』
ファイルシステム:『FAT32

applyしたあと、作られた領域を右クリックして、『フラグを編集』をクリック。 

  • 『boot』
  • 『esp』

の二つにチェックマークを付る

上記で2つのパーティションができる。以降、efi用の領域を「/dev/nvme0n1p1」、データ用の領域を「/dev/nvme0n1p2」として手順を記載する。

rsyncでデータ用の領域を同期

// コピー先SSD
$ sudo mkdir /mnt/ssd
$ sudo mount /dev/nvme0n1p2 /mnt/ssd
// コピー元HDD
$ sudo mkdir /mnt/hdd
$ sudo mount /dev/sda1 /mnt/hdd

// rsyncドライラン
$ sudo rsync -avr --owner --group --dry-run /mnt/hdd /mnt/ssd

// rsync実行(全体の進捗を出す、圧縮させると重いので-zはつけない)
$ sudo rsync -ar --info=progress2 --owner --group /mnt/hdd/ /mnt/ssd/

grubのインストール

grubをインストールする

// grub2の準備
$ sudo apt-get install grub-efi-amd64-bin

// chrootする(rootで実行していく)
$ sudo su

// データ用の領域をマウントする
# mkdir /chroot
# mount /dev/nvme0n1p2 /chroot

// プログラム実行に必要なものをbind
# mount --bind /dev /chroot/dev
# mount --bind /dev/pts /chroot/dev/pts
# mount --bind /proc /chroot/proc
# mount --bind /sys /chroot/sys
# mount --bind /run /chroot/run
# chroot /chroot

chrootしたらefi用の領域をマウント

// 無ければ /boot/efi は作っておく
# mkdir -p /boot/efi
# mount /dev/nvme0n1p1 /boot/efi

空のEFI領域にブートプログラムであるところのgrubをインストール

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck
# ls -l /boot/efi/EFI/debian/
合計 5202
-rwxr-xr-x 1 root root     108  227 00:40 BOOTX64.CSV
-rwxr-xr-x 1 root root 1206824  227 00:40 fbx64.efi
-rwxr-xr-x 1 root root     117  227 00:40 grub.cfg
-rwxr-xr-x 1 root root 1533296  227 00:40 grubx64.efi
-rwxr-xr-x 1 root root 1261192  227 00:40 mmx64.efi
-rwxr-xr-x 1 root root 1322936  227 00:40 shimx64.efi

/etc/fstabの編集

  • /etc/fstabを以下のように編集し、再起動
  • 起動するディスクはefiをインストールしたやつにする
  • 事前にsudo blkid /dev/nvme0n1p1, sudo blkid /dev/nvme0n1p2 しておきPARTUUIDを記録しておく
$ sudo cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system>                               <mount point> <type> <options>         <dump> <pass>
PARTUUID=6e1ae4f9-bf29-4d76-a1b5-bfed57c80ee1 /boot/efi     vfat   errors=remount-ro 0      2
PARTUUID=ac09284a-8f98-46e0-a613-04f2b5621055 /             ext4   errors=remount-ro 0      1

くぅ~疲れましたw これにて完結です!