#はじめに
HDDが壊れたため、HDDを交換。
物理的なHDD交換からバックアップからのリストアまで解説します。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 110.8G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.6G 0 lvm [SWAP]
└─centos-home 253:2 0 53.2G 0 lvm /home
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part /mnt/bkp_primary
sdc 8:32 0 2.7T 0 disk
└─sdc1 8:33 0 2.7T 0 part /mnt/bkp_secondly
sdd 8:48 0 2.7T 0 disk
└─sdd1 8:49 0 2.7T 0 part /mnt/primary
sde 8:64 0 2.7T 0 disk #←今回壊れたHDD
└─sde1 8:65 0 2.7T 0 part /mnt/secondly
##環境
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
作業はすべてroot権限で行ってください。
#準備
HDDをアマゾンで買いましょう。6TBで1.2万円ほどでした。TB単価がどんどん安くなってますね。
壊れているHDDを特定し、交換しましょう。
なお、lsblkコマンド結果を控えておくと、交換後のデバイス名(/dev/sdeとか)の特定が簡単になります。
ディスク番号の確認
lsblkコマンドで交換前後で比較しましょう。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 110.8G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.6G 0 lvm [SWAP]
└─centos-home 253:2 0 53.2G 0 lvm /home
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part /mnt/bkp_primary
sdc 8:32 0 2.7T 0 disk
└─sdc1 8:33 0 2.7T 0 part /mnt/bkp_secondly
sdd 8:48 0 2.7T 0 disk
└─sdd1 8:49 0 2.7T 0 part /mnt/primary
sde 8:64 0 5.5T 0 disk
交換前と比較すると、sdeが違うことがわかります。よって、sdeが今回交換したHDDです。
今回は6TBが1つだけなので、特定が簡単ですが、すでにマウント済みのHDDと同容量の場合でも、交換前と比較することで、比較的簡単に交換後のデバイス名を特定することができます。
#パーティションの作成
##パーティションテーブルの作成
2TB以上のHDDに対してfdiskコマンドが使えないので、partedコマンドを使っていきます。
2TB以上の場合のパーティションテーブルはGPTです。
# parted /dev/sde
(parted) mklabel gpt
警告: いま存在している /dev/sde のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? Y
パーティションの作成
HDDすべての領域を使い、ext4でパーティションを作成します。
(parted) mkpart
パーティションの名前? []? secondly
ファイルシステムの種類? [ext2]? ext4
開始? 0%
終了? 100%
(parted) print
モデル: ATA ST6000DM003-2CY1 (scsi)
ディスク /dev/sde: 6001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 6001GB 6001GB secondly
以上のようになっていればokです。
##フォーマット
# mkfs.ext4 /dev/sde1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
・・・略・・・
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
このあと、再起動してください。
# reboot
#マウント
# mount -t ext4 /dev/sde1 /mnt/secondly
[root@localhost shotaro]# df -H
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 54G 3.0G 51G 6% /
devtmpfs 4.0G 0 4.0G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 4.0G 9.5M 4.0G 1% /run
tmpfs 4.0G 0 4.0G 0% /sys/fs/cgroup
/dev/sda1 1.1G 150M 914M 15% /boot
/dev/sdb1 3.0T 2.1T 794G 72% /mnt/bkp_primary
/dev/sdc1 3.0T 2.4T 420G 86% /mnt/bkp_secondly
/dev/sdd1 3.0T 2.1T 799G 72% /mnt/primary
/dev/sde1 6.0T 194G 5.5T 4% /mnt/secondly
/dev/mapper/centos-home 58G 34M 58G 1% /home
/dev/sde1が/mnt/secondlyにマウントされていることがわかります。
しかし、これでは再起動した場合に自動でマウントされないので、自動マウントの設定をする必要があります。
#自動マウント設定
UUIDの確認
# blkid /dev/sde1
/dev/sde1: UUID="3168bbd1-03e8-40f8-94c3-4b4014bfbd31" TYPE="ext4" PARTLABEL="secondly" PARTUUID="a09d8463-02dc-4ecf-8f4a-117e855e9d8b"
/etc/fstabの編集
以下を/etc/fstabの末尾に追記
UUID="3168bbd1-03e8-40f8-94c3-4b4014bfbd31" /mnt/secondly ext4 nofail 0 0
#バックアップからの復元
/mnt/bkp_secondlyから/mnt/secondlyへリストアします。
これで進捗を確認しつつ、/mnt/bkp_secondly/と同様のものが出来上がります。
# rsync -a --delete -P /mnt/bkp_secondly/ /mnt/secondly/
#まとめ
バックアップ大事。