【Linux】CentOS7の自宅サーバーをHDDからSSDに移行してみた

サーバー

ファイルサーバーとして使用している自宅サーバーをSSDに移行しました。

移行するのは写真や大容量のファイルを保存するため使用していたサーバーです。2008年製のWindows Vista搭載パソコンをサーバーに改造して使っていましたが、もっと起動を速くしたいこと、データベースへのアクセスが遅くNextcloudの同期に時間がかかるため、使っていなかったSSD(Crucial BX500 120GB)に移行します。

  • OS:CentOS 7.4
  • メモリ:2GB DDR2-800 dual channel
  • OS用ストレージ:HDD320GB(2008年製 HITACHI HDP72503 320GB)
    →Crucial BX500 120GBに移行します
  • ストレージ(メイン):WD Blue 4TB
  • ストレージ(バックアップ):WD Blue 4TB

あらかじめOSのバックアップは取っておきましょう。また、作業前にデータ用ディスクは取り外しておきます。

スポンサーリンク

ファイルシステムの構成を考える

既存のファイルシステムは以下の通りです。

#parted -l
モデル: ATA Hitachi HDP72503 (scsi)
ディスク /dev/sda: 320GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  31.5GB  31.5GB  primary  ext4              boot
 4    31.5GB  250GB   218GB   primary  ext4
 2    250GB   270GB   20.0GB  primary  ext4
 3    270GB   271GB   1023MB  primary  linux-swap(v1)
#df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
/dev/sda1      ext4        29G   15G   13G   55% /
devtmpfs       devtmpfs   900M     0  900M    0% /dev
tmpfs          tmpfs      915M     0  915M    0% /dev/shm
tmpfs          tmpfs      915M  9.0M  906M    1% /run
tmpfs          tmpfs      915M     0  915M    0% /sys/fs/cgroup
/dev/sda2      ext4        19G  3.4G   14G   20% /home
/dev/sdc1      ext4       3.6T  2.8T  866G   77% /sambadata
tmpfs          tmpfs      183M     0  183M    0% /run/user/0
/dev/sda4      ext4       200G   85G  105G   45% /mnt/sd
tmpfs          tmpfs      183M     0  183M    0% /run/user/1001

Linuxを触り始めたばかりの頃に適当に自作したため、めちゃくちゃなパーティション構成になっています。今回のSSD以降を機にもっと拡張性に優れた構成に変更したいと思います。

パーティションサイズ
1BIOS Boot Partition1MB
2/boot1GB
3/残り‐swap分
4swap2〜4GB
更新後のパーティション構成

上記の表のような構成にすることにしました。既存の構成では/home用のパーティンションを作っていましたが、廃止して/に統合します。swapは必要なさそうでしたが、一応作っておくことにしました。

スポンサーリンク

新しいSSDにパーティションをつくる

SSDを取り付けてサーバーを起動します。誤操作によるデータ損失を防ぐため、データ用など不要なディスクは外しておきましょう。

ディスクのパスを確認します。

lsblk
parted -l

既存のOSディスクが/dev/sda、SSDが/dev/sdbであることが確認できました。

partedでパーティションを操作します。Enterキーを押すごとに変更が反映されていくため注意しましょう。

まず、GPTラベルを付与します。

parted /dev/sdb --script mklabel gpt

次にパーティションを作成します。

parted /dev/sdb
mkpart primary 1MiB 2MiB
set 1 bios_grub on

mkpart primary ext4 2MiB 1026MiB
mkpart primary ext4 1026MiB 110GB
mkpart primary linux-swap 110GB 100%
quit

ファイルシステムを作成します。

mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkswap /dev/sdb4

SSDにデータをコピーしていく

マウント先のディレクトリを作成し、SSDをマウントします。

mkdir -p /mnt/newroot
mount /dev/sdb3 /mnt/newroot

mkdir -p /mnt/newroot/boot
mount /dev/sdb2 /mnt/newroot/boot

rsyncでコピーします。

rsync -aHAXv --exclude={"/proc/*","/sys/*","/dev/*","/run/*","/tmp/*","/mnt/*","/media/*","/lost+found"} / /mnt/newroot

fstabの変更

新しいSSDに対して、fstabを変更したりブートローダーをインストールしたりします。

chrootしておきます。

mount --bind /dev /mnt/newroot/dev
mount --bind /proc /mnt/newroot/proc
mount --bind /sys /mnt/newroot/sys
mount --bind /run /mnt/newroot/run

chroot /mnt/newroot /bin/bash

ディスクのUUIDをチェック。

blkid
 #SSDのUUIDを確認

/etc/fstabを編集。

vi /etc/fstab

UUID=<UUID_boot>  /boot    ext4  defaults  1 2
UUID=<UUID_root>  /        ext4  defaults  1 1
UUID=<UUID_swap>  swap     swap  defaults  0 0

ブートローダ(GRUB2)のインストール

grub2-install /dev/sdb
grub2-mkconfig -o /boot/grub2/grub.cfg

サーバーの再起動

chrootから抜けます。

exit
umount -R /mnt/newroot

サーバーをシャットダウンします。

shutdown -h now

HDDを取り外し、正常に起動することを確認しましょう。

まとめ

無事にSSDへの移行が完了しました。

体感速度は大幅に向上。これまで30秒ほどかかっていた起動時間が10秒ほどに短縮されました。Nextcloudの同期も爆速になり快適です。

コメント

タイトルとURLをコピーしました