rsyncを用いたLinuxのストレージ移行 (wiki)

この記事は私が自前のwiki上で書いていた記事です。

本記事の自前wiki上での最終更新日時は2020/04/09 00:43:13なので情報が古くなっているかもしれません。


最近、主にゲームサーバとして運用するようになったkryptonサーバは、ストレージがHDDでありswapによる[?]ラグが度々起こりゲーム進行が阻害されていた。

そのうちSSDへ移行しようかと思っていたのでちょうど良い機会であるため重い腰を上げて取り組んでみた。

SSDのパーティショニングとフォーマット

これはcgdiskにより行った。

コンソールソフトウェアにしてはCUIが直感的で使いやすい。

Part. #     Size        Partition Type            Partition Name
----------------------------------------------------------------
   1        512.0 MiB   EFI System                ESP
   2        4.0 GiB     Linux swap                Swap space
   3        234.0 GiB   Linux filesystem          Linux file system

最終的にこのような構成になった。

このkryptonサーバはUEFIなのでEFIパーティションが必須である。

フォーマットは以下の通り。

# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda3

swapについては後でもできるので保留

パーティションのマウント先ディレクトリの作成

ルートパーティションにあたるものは/media/mroot

EFIパーティション/media/mroot/boot/efi

パーティションのマウント

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 238.5G  0 disk 
├─sda1   8:1    0   512M  0
├─sda2   8:2    0     4G  0
└─sda3   8:3    0   234G  0
# mount /dev/sda3 /media/mroot
# mount /dev/sda1 /media/mroot/boot/efi

rsyncによるフルコピー

# rsync -aHAXxSvP --numeric-ids /boot/efi /media/mroot/boot/efi
# rsync -aAXS --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /media/mroot

fstabの設定

SSDにコピーしたシステムを起動させるため/etc/fstabの設定をする。

blkidでUUIDを確認し、それらを/etc/fstabの該当箇所に書き込むだけだ。

# blkid
/dev/sda1: UUID="3E91-B3DE" TYPE="vfat" PARTLABEL="ESP" PARTUUID="f7a96089-de36-43b3-9e2c-c3a28fd90b05"
/dev/sda2: UUID="7d7093f7-d19b-4d4c-8c85-17029018d878" TYPE="swap" PARTLABEL="Swap space" PARTUUID="2c04a23a-944a-4ad1-97fd-d98516746e47"
/dev/sda3: UUID="f039c202-93b6-491e-bdd4-be488bc50431" TYPE="ext4" PARTLABEL="Linux file system" PARTUUID="d0f9227f-3785-4bf0-ad0b-55414ab46da7"
UUID=f039c202-93b6-491e-bdd4-be488bc50431 / ext4 defaults 0 0
UUID=3E91-B3DE /boot/efi vfat defaults 0 0

grubの設定

/boot/grub/grub.cfg/boot/efi/EFI/ubuntu/grub.cfgの編集をする。

/boot/grub/grub.cfgはUUIDとあからさまに書いてあるのでそのUUIDを今回の/dev/sda3に置換するだけである。

/boot/grub/grub.cfgのUUIDを置き換えないとGrubシェルが起動してしまう(Grubシェルから起動させようとしてもinitramfsシェルでKernel Panicが起きた)

EFIパーティションの方も同様に下のような行にあるUUIDを書き換える。

search.fs_uuid f039c202-93b6-491e-bdd4-be488bc50431 root hd0,gpt2

あとは起動するだけ

swapの割り当て

# mkswap /dev/sda2
# swapon /dev/sda2
UUID=f039c202-93b6-491e-bdd4-be488bc50431 / ext4 defaults 0 0
UUID=3E91-B3DE /boot/efi vfat defaults 0 0
UUID=7d7093f7-d19b-4d4c-8c85-17029018d878 swap swap defaults 0 0

所感

*swapファイルというものがあるのでswapパーティションは別に必要なかったかなと思う。

今回は仕方なくswapパーティションのまま使った。

参考