UEFI+GPTな環境におけるssdの増設のためのパーティションのclone


目的

UEFI + GPTなPCに載っているNVMeなSSDのパーティション(/dev/nvme0n1p5 128GiB)を,SATAなSSDのパーティション(960GiB)に移し替える
- ただし,efi boot領域は/dev/nvme0n1p2に残す

個人の備忘録に近い

元の環境 (windows10とubuntu 19.10のデュアルブート)

ubuntuにおけるlsblkコマンドの抜粋

nvme0n1     477G   disk 
├─nvme0n1p1 499M   part 
├─nvme0n1p2 100M   part /boot/efi
├─nvme0n1p3 16M    part 
├─nvme0n1p4 348.3G part /windows
└─nvme0n1p5 128.0G part /

現環境

ubuntuにおけるlsblkコマンドの抜粋

nvme0n1     477G   disk 
├─nvme0n1p1 499M   part 
├─nvme0n1p2 100M   part /boot/efi
├─nvme0n1p3 16M    part 
└─nvme0n1p4 348.3G part /windows
sda         931.5G  disk 
└─sda1      931.5G  part /

踏んだ手順

以下の作業には全くwindowsを使っていない

ssdの購入,接続

nvmeは高かったのでsataにした
samsungの960GBのやつを信頼して買った
普通にsata接続をした

ssdのフォーマット,クローン

$ sudo mkfs.ext4 /dev/sda
$ sudo ddrescue -r1 -f -v /dev/nvme0n1p5  /dev/sda1  ddrescue1.log # ddより少し安全
$ sudo fsck -n /dev/sda1 # なんとなく実行
$ sudo e2fsck /dev/sda1 # たしか実行しろという指示がどっかで出た
$ sudo resize2fs /dev/sda1 # これをしないとdf -hでの容量が128GBのままになる
$ sudo blkid # /dev/sda1のUUIDを控える(PARTUUIDは特に控えなかった)
$ sudo vi /etc/fstab # /をマウントしている部分のUUIDを変更

grubの修復 (boot-repair)

ubuntuのライブUSB(18.04, 日本語環境)を作成
18.04のライブUSBの日本語環境だとboot-repairのためのadd-apt-repositoryがうまくいかないため,

$ sudo mv /etc/apt/sources.list.d/ubuntu-ja.list /etc/apt-sources.list.d/ubuntu-ja.list.my-save
$ sudo add-apt-repository ppa:yannubuntu/boot-repair
$ sudo apt update
$ sudo apt install boot-repair
$ boot-repair # ここでgrubを更新
$ sudo mv /etc/apt/sources.list.d/ubuntu-ja.list.my-save /etc/apt-sources.list.d/ubuntu-ja.list
$ reboot

bootを確認

grubからubuntuを起動してubuntuが動作することを確認

元の領域を削除

$ sudo cgdisk /dev/nvme0n1 # ここでncursesの操作インターフェースからnvme0np5を削除