自宅鯖のシステムドライブを入れ替えたときのメモ

Contents
ほぼメモみたいなもんです。
自宅鯖のシステムドライブを Samsung 980 (500GB) から KIOXIA EXCERIA G2 (1TB) に換装したので作業手順を残しておきます。
Gists 以上 ブログ未満の文章を書いておく場所としてかつては Shaarli を運用していたんですが、自分で同じようなサービスを書こうと思って書けていないのでこうしてブログに書いています。
用意したもの
- Arch Linux の bootable USB drive
- 初めて Rufus を使って焼いた
- M.2 NVMe SSD エンクロージャ
- 今回は UGREEN の USB Type-C 接続のやつ を用意
手順
1. 書き込み先のブロックデバイス名を確認する
エンクロージャに入れた SSD は /dev/sdX
として出現する。
$ fdisk -l
2. dd でデータをコピー
if と of を逆にすると終わるので細心の注意を払って実行するべし。 ちなみにだいたい 400~500MB/s ぐらいの速度だった。
$ dd status=progress if=/dev/nvme0n1 of=/dev/sdc bs=64K
3. GPT テーブルを操作する
バックアップテーブルをディスクの末尾に移動する必要があるので編集する。
$ fdisk /dev/sdc
> x
> e
> w
4. パーティションを拡張する
パーティションテーブルを編集する。今回は / のパーティションがディスクで最後にあるので単に拡張するだけ。
$ parted /dev/sdc
(parted) print
...
...
(parted) resizepart 3 1TB
5. ファイルシステムを拡張する
btrfs
コマンドは(resize2fs
と異なり)マウントしないと拡張できないらしい。
$ mount /dev/sdc3 /mnt
$ btrfs filesystem resize max /mnt
$ umount /mnt
6. おしまい
物理的に入れ替えて従来通り起動し、 df
でファイルシステムのサイズが拡張されていれば成功。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
dev 16349644 0 16349644 0% /dev
run 16361484 1872 16359612 1% /run
/dev/nvme0n1p3 968172868 66774980 900622780 7% /
tmpfs 16361484 0 16361484 0% /dev/shm
tmpfs 16361484 1940 16359544 1% /tmp
/dev/sda1 244197540 44740552 198495608 19% /media
/dev/nvme0n1p1 522224 93684 428540 18% /boot
tmpfs 3272296 4 3272292 1% /run/user/1000