ディスク交換
ここでは、20GBの元ディスクを40GBの交換用ディスクへ入れ替えてみます。
電源断状態で、追加ディスクを取り付ける
まずは、電源断します。
$ poweroff
...
|
poweroffコマンドは、shutdown -h now
とほぼ同じ動作をします。
shutdownコマンドに慣れている方は、そちらでもOKです。
電源断したら、交換する新しいディスクを取り付けます。
ただし、古いディスクから新しいディスクへ中身をコピーするまで、古いディスクも装着したままとします。
レスキューモード(リカバリモード)で起動する
新しいディスクの取り付けを終えたら、電源投入ですが、ここでは、レスキューモード(リカバリモード)で起動します。
ディスクの入れ替え等々ストレージのメンテナンスは、通常のシステム状態で行うことはありません。
一般的に、シングル(ユーザ)モードやレスキューモード(リカバリモード)などで作業を行うことが求められます。
ここでは、万全を期すためにも
レスキューモード ( Debian or Ubuntu では、リカバリーモード ) で作業を行うこととします。
CentOS ScientificLinux
CD/DVDドライブに インストールディスクを挿入し、システム再起動します。
CentOS 7 では、以下のような画面が表示されます。
Trouble Shooting を選択します。
Rescue a CentOS System を選択し、レスキューモードへ切り替えます。
上記のように環境設定を行うか確認メッセージが表示されます。
今回は、ディスクの変更だけですので、特別な環境設定は必要ありませんので、ここではSkipで良いでしょう。
上記のように レスキューモード のプロンプトが表示されますので、あとは、コマンドにてパーティションの変更を行います。
Debian Ubuntu
電源投入と同時に(GRUB2の場合)Shiftキーを押下します。
Ubuntu 14(LinuxMint) では、以下のような画面が表示されます。
BIOSによっては、Shiftキーに特別な意味があったり、起動のタイミングが短すぎる場合など、うまく GRUBのメニューが表示されないことがあります。
その場合は、GRUB 起動時のタイミングを少し伸ばしてやるとうまくいくでしょう。
$ vi /etc/default/grub
...
GRUB_HIDDEN_TIMEOUT=10
...
GRUB_TIMEOUT=10
...
|
変更したら、grub の設定を更新します。
$ update-grub
...
|
これで再起動した際に、BIOSの起動画面からOS起動までに10秒のタイムラグがありますから、(ほとんどは真っ暗な画面)そこで Shiftキーを押下すれば、GRUBのメニューが表示されるでしょう。
ディストリビューション名 — recoverry mode を選択します。
起動の後、上記のようにリカバリーメニューが表示されます。
root Drop to root shell prompt を選択し、リカバリーモードのシェルを起動します。
上記のように Give root password …(…): とパスワードを聞かれるので、root(管理者)のパスワードを入力します。
上記のように リカバリーモード のプロンプトが表示されますので、あとは、コマンドにて各作業を行います。
Debian or
Ubuntu のリカバリモードで作業を行う場合、
リカバリモードのデフォルトでは、
ファイルが読み取り専用となっていることに注意してください。
そのため、ファイルシステムの拡張などの実行時にエラーが発生する場合があります。
それらの作業を行う前に、
読み書き可で再マウントしておきましょう。
$ mount -o remount,rw /
|
(参考)レスキューモード(リカバリモード)とともによく利用されるのが、シングルユーザモードです。
シングルユーザモードへの切り替えは、以下のコマンドで実行することができます。
遠隔操作では不可で、端末から直接、テキストモードでログインし、以下のように入力すればシングルユーザモードに切り替わります。(参考まで)
$ init 1; exit
: (rootパスワードを入力)
|
新しいディスクが認識できているか確認する
コマンドにて、新しく取り付けたディスクが認識できているか確認します。
$ dmesg|grep sd
[ 1.645723] sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
...
[ 1.647064] sd 3:0:0:0: [sdb] 83886080 512-byte logical blocks: (42.8 GB/40.0 GiB)
...
$ fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000e28d3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2050047 1024000 83 Linux
/dev/sda2 2050048 36866047 17408000 83 Linux
/dev/sda3 36866048 40962047 2048000 82 Linux swap / Solaris
Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
上記の出力例では、/dev/sdb が新しく追加されたディスクとなります。
新しく交換するディスクが、まっさらのハードディスクであれば、/dev/sdb には、上記のようにパーティションがないはずです。
古いディスクをそのまま新しいディスクへコピーする
dd コマンドを使って、ディスクコピーします。
$ dd if=/dev/sda of=/dev/sdb bs=256M
80+0 records in
80+0 records out
21474836480 bytes (21 GB) copied, 182.5555 s, 118 MB/s
|
dd コマンドは、パラメータに bs (1度にコピーするブロックサイズ) を指定しないと、かなり、時間がかかります。
ここでは、256M (256MB) を指定しています。
電源断状態で、古いディスクを取り外す
まずは、電源断します。
$ poweroff
...
|
電源断したら、古いディスクを取り外します。
また、先に接続した新しいディスクのSATA接続先を取り外した古いディスクのそれに差し替えます。
作業を終えたら、電源投入します。
$ dmesg|grep sd
[ 1.645723] sd 2:0:0:0: [sda] 83886080 512-byte logical blocks: (42.8 GB/40.0 GiB)
...
$ fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000e28d3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2050047 1024000 83 Linux
/dev/sda2 2050048 36866047 17408000 83 Linux
/dev/sda3 36866048 40962047 2048000 82 Linux swap / Solaris
$ df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 1.1G 16G 7% /
devtmpfs 514M 0 514M 0% /dev
tmpfs 522M 0 522M 0% /dev/shm
tmpfs 522M 6.9M 515M 2% /run
tmpfs 522M 0 522M 0% /sys/fs/cgroup
/dev/sdb1 1.1G 110M 837M 12% /boot
|
上記のように、ディスク容量の合計は、20GBのままとなっています。
ただ、実際のディスク容量は、40GB(厳密には42.9GB) なのは、上記の出力結果からわかります。
次は、ディスクの余っている分をルートディレクトリとして増量します。
ディスク容量を変更(増量)
先の手順にて、20GBのHDDを40GBの新HDDへ交換しました。
ただ、このままでは、20GB増量となった新HDDをフル活用できていないので、
余っている 20GB を既存のルートディレクトリの容量に追加増量してみます。
レスキューモード(リカバリモード)で起動する
一旦、現行パーティションを削除し、容量変更しますので、何かあった場合に、ディスク情報が読めなくなってしまうと大変です。
ここは、レスキューモード(リカバリモード)で変更します。
具体的な レスキューモード(リカバリモード)の起動方法は、 先の “レスキューモード(リカバリモード)で起動する” を参照してください。
fdisk を使って パーティションを拡張する
fdisk コマンドで、拡張するデバイスを指定します。
$ fdisk /dev/sda
...
Command (m for help):
|
現在のパーティションを出力し、swapを削除します。
Command (m for help): p
...
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
...
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2050047 1024000 83 Linux
/dev/sda2 2050048 36866047 17408000 83 Linux
/dev/sda3 36866048 41962047 2048000 82 Linux swap / Solaris
Command (m for help): d
Partition number (1-3): 3
|
パーティションを拡張します。
Command (m for help): d
Partition number (1-3): 2
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2050047 1024000 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4): 2
First cylinder (2050048-83886079, default 2050048):
Using default value 2050048
Last sector or +size or +sizeM or +sizeK (2050048-83886079, default 83886079): 79790079
Partition 2 of Linux and size 36.1 GiB is set
|
削除したswapを元のサイズで作成しなおします。
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4): 3
First cylinder (79790080-83886079, default 79790080):
Using default value 79790080
Last sector or +size or +sizeM or +sizeK (79790080-83886079, default 83886079):
Partition 3 of Linux and size 2.0 GiB is set
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2050047 1024000 83 Linux
/dev/sda2 2050048 79790079 38870016 83 Linux
/dev/sda3 79790080 83886079 2048000 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w
|
最後に、変更したパーティションを反映するために システム再起動を実施します。
(次回もレスキューモード(リカバリーモード)で起動します。)
$ reboot
|
ファイルシステム を拡張する
レスキューモード(リカバリーモード)で、ファイルシステムのサイズを変更します。
ファイルシステムのチェックを行います。
$ e2fsck -f /dev/sda2
e2fsck 1.42.9 (28-Dec-2013)
...
|
もし、チェックで異常などが検出された場合は、以下のように出力されるかもしれません。
$ e2fsck -f /dev/sda2
e2fsck 1.42.9 (28-Dec-2013)
...
Free blocks count wrong (4000963, counted=4000911)
Fix<y>? yes
Free blocks count wrong (1063899, counted=1063896)
Fix<y>? yes
/dev/sda2: ***** FILE SYSTEM WAS MIDIFIED *****
/dev/sda2: 25640/1089536 files (0.2% non-contiguous), 351089/4352000 blocks
|
上記の例では、”修復しますか?” と聞かれますので、
yesと入力し、ファイルシステムのチェックを完了してください。
異常の内容によってメッセージも異なりますで、確認の上、指示に従って作業を行ってください。
xfsの場合は、xfs_repair コマンドで、ファイルシステムのチェックおよび修復を行います。
ファイルシステム を 拡張します。
$ resize2fs /dev/sda2
...
|
xfsの場合は、xfs_growfs コマンドで、ファイルシステムの拡張を行います。
スワップ を作成する
レスキューモード(リカバリーモード)で、スワップ を作成します。
先に一旦削除したスワップをここで再作成します。
mkswapでswap領域を作成します。
$ mkswap /dev/sda3
Setting up swapspace version 1, size = 3030012 KiB
no label, UUID=xxxxxxxx-xxxxx-xxxx-xxx-xxxxxxxxxxx
|
ディスクの入れ替えなどで swap領域を変更した(作成しなおした)際、ここの UUID が変わっています。
ここで出力されたUUIDをメモしておきます。
fstab に ファイルシステム情報を設定します。
レスキューモード(リカバリモード)などで、/etc ディレクトリががマウントされていない場合、マウントします。
$ mkdir /mnt/root
$ mount /dev/sda2 /mnt/root
|
ここでは、/dev/sda2 に /etc があるものとしています。
/etc/fstab を編集します。
先のようにマウントしている場合、/mnt/root/etc/fstab を編集することになります。
$ vi /mnt/root/etc/fstab
...
UUID=xxxxxxxx-xxxxx-xxxx-xxx-xxxxxxxxxxx swap swap defaults 0 0
...
|
最後に、システム再起動します。
(CD/DVDドライブの インストールディスクなどを装着している場合は、それらを取り出した上で再起動します。)
$ reboot
|
最後に容量を確認
システム再起動後、正しくディスクの交換および容量変更ができたか確認してみましょう。
$ df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 39G 1.1G 36G 3% /
devtmpfs 514M 0 514M 0% /dev
tmpfs 522M 0 522M 0% /dev/shm
tmpfs 522M 6.9M 515M 2% /run
tmpfs 522M 0 522M 0% /sys/fs/cgroup
/dev/sda1 1.1G 105M 842M 12% /boot
$ free
total used free shared buffers cached
Mem: 1025956 405236 620720 17244 60396 260092
-/+ buffers/cache: 84748 941208
Swap: 2000892 0 2000892
|
ルートディレクトリ( /dev/sda2 ) の容量がアップし、
スワップ領域( Swap total )が先に作成したスワップ領域のサイズと同じであればOKです。
これが、昔からあるディスク交換手順です。
LVMが出てきて、オンラインでの増設は、確かに便利になりましたが、ディスク交換となると、それほどのメリットもないのかなぁと思いますね。
いずれにせよ、この手順が基本ですから、これを理解しているとLVMの手順も、理解しやすいのかなぁと思います。
コメントを投稿 :