レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパーティション拡張編)

2015年1月23日 2015年6月5日
howto replace disk

今回は、旧来のディスク交換手順を簡単に解説してみたいと思います。 最近では、LVMを利用することが当たり前になっていますが、 LVMが広く普及する前は、普通に以下のような手順でディスクの交換を行っていました。
LVMでの交換手順 を比較するとよくわかりますが、こちらが基本手順です。 これを理解しているとLVMでの交換手順も、案外、すんなり飲み込みが速くなるのでは・・・と思います。

では、早速、簡単に解説してみます。(ここでのファイルシステムは、ext4 について記載しています。)



 ディスク交換手順記事一覧 


 fdiskコマンド編 

LVMを使用したディスク追加手順は、ディスクの追加手順をまとめてみた(LVM編) です。

LVMを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(LVMパーティション&fdiskによるパーティション拡張編) です。

通常ディスクを使用したディスク追加手順は、ディスクの追加手順をまとめてみた(通常ディスク編) です。

通常ディスクを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパーティション拡張編) です。


 partedコマンド編 

パーティションテーブルを MBR(msdos)からGPTへ移行する手順は、2TiB超えパーティションのためのMBR(msdos)からGPTへの移行 です。

LVMを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(LVMパーティション&partedによるパーティション拡張編) です。

通常ディスクを使用したディスク交換手順は、ディスクの交換手順をまとめてみた(通常パーティション&partedによるパーティション拡張編) です。

fdisk コマンドは、古くから利用されているコマンドで、2TiB以上の大きなパーティションを作成することはできません。 その場合は、parted コマンドを使用することになります。

ディスク交換

ここでは、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 起動時のタイミングを少し伸ばしてやるとうまくいくでしょう。
# grub のデフォルト設定を変更します。
$ vi /etc/default/grub
...
# grubの非表示タイムアウトを10秒に変更します。
# GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT=10
...
# grubの起動待ち時間が10秒であることを確認します。
# (デフォルト10秒になっているはずですが、10秒でない場合は 10 秒に変更しましょう。)
GRUB_TIMEOUT=10
...
変更したら、grub の設定を更新します。
$ update-grub
...
これで再起動した際に、BIOSの起動画面からOS起動までに10秒のタイムラグがありますから、(ほとんどは真っ暗な画面)そこで Shiftキーを押下すれば、GRUBのメニューが表示されるでしょう。
Grub画面

ディストリビューション名 — recoverry mode を選択します。

インストール初期画面

起動の後、上記のようにリカバリーメニューが表示されます。
root Drop to root shell prompt を選択し、リカバリーモードのシェルを起動します。

レスキュー選択画面

上記のように Give root password …(…): とパスワードを聞かれるので、root(管理者)のパスワードを入力します。

レスキュー選択画面

上記のように リカバリーモード のプロンプトが表示されますので、あとは、コマンドにて各作業を行います。

Debian or Ubuntu のリカバリモードで作業を行う場合、 リカバリモードのデフォルトでは、ファイルが読み取り専用となっていることに注意してください。 そのため、ファイルシステムの拡張などの実行時にエラーが発生する場合があります。
それらの作業を行う前に、読み書き可で再マウントしておきましょう。
# マウントを読み書き可でしなおす。
$ mount -o remount,rw /

(参考)レスキューモード(リカバリモード)とともによく利用されるのが、シングルユーザモードです。
シングルユーザモードへの切り替えは、以下のコマンドで実行することができます。 遠隔操作では不可で、端末から直接、テキストモードでログインし、以下のように入力すればシングルユーザモードに切り替わります。(参考まで)
# ランレベル 1 を指定し、シングルユーザモードへ切り替えます。
$ init 1; exit
: (rootパスワードを入力)

新しいディスクが認識できているか確認する

コマンドにて、新しく取り付けたディスクが認識できているか確認します。

# カーネルメッセージにディスク情報が出力されていることを確認します。
# 以下の例では、SATA に新旧ディスクがそれぞれ接続されている状態です。
$ 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)
...

# ハードディスクのパーティションを確認します。
# 以下の例では、/dev/sda が旧ハードディスク、/dev/sdb が新ハードディスク となっています。
$ 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 : コピー元、 of : コピー先 です。間違えないようにします。
$ 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接続先を取り外した古いディスクのそれに差し替えます。

作業を終えたら、電源投入します。

# カーネルメッセージにディスク情報が出力されていることを確認します。
# 以下の例では、SATA に新ディスクのみが接続されている状態です。
$ dmesg|grep sd
[    1.645723] sd 2:0:0:0: [sda] 83886080 512-byte logical blocks: (42.8 GB/40.0 GiB)
...

# ハードディスクのパーティションを確認します。
# 以下の例では、/dev/sda が新ハードディスク となっています。
$ 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 コマンドで現在の各パーティションの容量を確認します。
$ 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 コマンドでパーティションを変更します。
$ fdisk /dev/sda
...
Command (m for help): 

現在のパーティションを出力し、swapを削除します。

# まずは、p で現状を確認しておきます。(デフォルトでは、開始、終了位置はセクター表示です。)
Command (m for help): preturn
...
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

# 拡張するパーティションを連続で割り付けるので、後に続く swap 領域を 一旦削除します。
Command (m for help): dreturn
# 削除するパーティション番号を指定します。ここでは、3 とます。
Partition number (1-3): 3return

パーティションを拡張します。

# 拡張するパーティションを 一旦削除します。
Command (m for help): dreturn
# 削除するパーティション番号を指定します。ここでは、2 とます。
Partition number (1-3): 2return

# p で現状を再確認しておきます。
Command (m for help): preturn

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2050047     1024000   83  Linux

# 次に新しいパーティションを作成しなおします。
Command (m for help): nreturn
# 続けてパーティションの種類を指定します。ここでは、プライマリ 2 とます。
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): preturn
Partition number (2-4): 2return
# ここでパーティションのサイズを指定します。
# ここでは、開始位置はデフォルトのままで、
# 終了位置は、領域を最大限にしたいので、 最終セクターからswap領域を引いた 83886080s - 4096000s - 1s = 79790079s を指定します。
First cylinder (2050048-83886079, default 2050048):return
Using default value 2050048
Last sector or +size or +sizeM or +sizeK (2050048-83886079, default 83886079):79790079return
Partition 2 of Linux and size 36.1 GiB is set

削除したswapを元のサイズで作成しなおします。

# 先に削除した swap エリアを作成しなおします。
Command (m for help): nreturn
# 続けてパーティションの種類を指定します。ここでは、プライマリ 3 とます。
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): preturn
Partition number (3,4): 3return
# ここでパーティションのサイズを指定します。
# ここでは、残りの領域を全て swap領域にしたので、デフォルトのままとします。
First cylinder (79790080-83886079, default 79790080):return
Using default value 79790080
Last sector or +size or +sizeM or +sizeK (79790080-83886079, default 83886079):return
Partition 3 of Linux and size 2.0 GiB is set


# p で現状を再確認しておきます。
Command (m for help): preturn

   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

# 作成した swapのパーティションがswapではないので、t を使って変更しておきます。
Command (m for help): treturn

Partition number (1-4): 3return
Hex code (type L to list all codes): 82return
Changed type of partition 'Linux' to 'Linux swap / Solaris'


# 変更したパーティション情報を書き込み、終了します。
Command (m for help): wreturn

最後に、変更したパーティションを反映するために システム再起動を実施します。 (次回もレスキューモード(リカバリーモード)で起動します。)

$ 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>? yesreturn
Free blocks count wrong (1063899, counted=1063896)
Fix<y>? yesreturn

/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 を編集することになります。

# swap の UUID を変更します。(ここのUUIDは先にswap領域を作成した際にメモしたものです。)
$ vi /mnt/root/etc/fstab
...
UUID=xxxxxxxx-xxxxx-xxxx-xxx-xxxxxxxxxxx  swap  swap  defaults  0 0
...

最後に、システム再起動します。
(CD/DVDドライブの インストールディスクなどを装着している場合は、それらを取り出した上で再起動します。)

$ reboot

最後に容量を確認

システム再起動後、正しくディスクの交換および容量変更ができたか確認してみましょう。

# df コマンドでファイルシステム毎の容量をチェックします。
$ 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 コマンドでスワップの容量をチェックします。
$ 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の手順も、理解しやすいのかなぁと思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

ディスクの交換手順をまとめてみた(通常パーティション&partedによるパーティション拡張編)

今回は、旧来のディスク交換手順を簡単に解説してみたいと思います。 (ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパー ...

ディスクの追加手順をまとめてみた(LVM編)

自宅で動画サーバーなどを構築した際は、やっぱり、動画の容量から、かなりディスク容量が圧迫され、容量不足に陥ることがあります。 そういうとき、デ ...

ディスクの追加手順をまとめてみた(通常ディスク編)

今回は、古くからのディスク増設手順です。 LVMは使いません。非常にシンプルに、ディスクを増設し、マウントする手順を備忘録も兼ねてまとめてみま ...

ディスクの交換手順をまとめてみた(LVMパーティション&fdiskによるパーティション拡張編)

ディスクの読み込み、書き込みの障害がボツボツと発生し始めると、一気に、読み書きできなくなるのが常だと思います。 一時的な回避策もハード障害の場 ...

ディスクの交換手順をまとめてみた(LVMパーティション&partedによるパーティション拡張編)

今回は、ディスク交換手順とLVMパーティションの拡張を簡単に解説してみたいと思います。 (ディスクの交換手順をまとめてみた(LVMパーティショ ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2122 [s]