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

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

2015年6月5日 2015年11月21日
howto replace disk

今回は、旧来のディスク交換手順を簡単に解説してみたいと思います。 (ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパーティション拡張編) のpartedコマンド編になります。) また、ここでは、パーティションの編集には、partedコマンドを使用します。 ただし、2TiB以上のパーティションに拡張する際は、以降の手順の中で こちらの手順の中でGPTへ移行する必要があります。

では、早速、簡単に解説してみます。(ここでのファイルシステムは、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 が新ハードディスク となっています。
$ parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  1050MB  1049MB  primary  ext4            boot
 2      1050MB  18.9GB  17.8GB  primary  ext4
 3      18.9GB  21.0GB  2097MB  primary  linux-swap(v1)


Error: /dev/sdb: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

上記の出力例では、/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 が新ハードディスク となっています。
$ parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  1050MB  1049MB  primary  ext4            boot
 2      1050MB  18.9GB  17.8GB  primary  ext4
 3      18.9GB  21.0GB  2097MB  primary  linux-swap(v1)

 
# 最後に 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) なのは、上記の出力結果からわかります。


次は、ディスクの余っている分をルートディレクトリとして増量します。

パーティションを2TiB以上の大容量にしたい場合は、 パーティションテーブルがGPTでないと作成(拡張)できないため、 ここで、2TiB超えパーティションのためのMBR(msdos)からGPTへの移行 を参照の上、GPTへ移行した上で以降の作業を行ってください。 もちろん、現パーティションテーブルが既にGPTの場合は、そのまま以降の作業でOKです。 パーティションテーブルの確認は、partedコマンドで確認することができます。
# MBRの場合は、msdos と表記されます。
$ parted -l
...
Partition Table: msdos
...

# GPTの場合は、gpt と表記されます。
$ parted -l
...
Partition Table: gpt
...

ディスク容量を変更(増量)

先の手順にて、20GBのHDDを40GBの新HDDへ交換しました。
ただ、このままでは、20GB増量となった新HDDをフル活用できていないので、 余っている 20GB を既存のルートディレクトリの容量に追加増量してみます。

レスキューモード(リカバリモード)で起動する

一旦、現行パーティションを削除し、容量変更しますので、何かあった場合に、ディスク情報が読めなくなってしまうと大変です。
ここは、レスキューモード(リカバリモード)で変更します。

具体的な レスキューモード(リカバリモード)の起動方法は、 先の “レスキューモード(リカバリモード)で起動する” を参照してください。


parted を使って パーティションを拡張する

parted コマンドで、拡張するデバイスを指定します。

# parted コマンドでパーティションを変更します。
$ parted /dev/sda
...
(parted) 

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

# まずは、出力形式をセクター単位で出力するようにしておきます。
(parted) unit sreturn
# 次に、p (print の省略形)で現状を確認しておきます。
(parted) preturn
...
Disk /dev/sda: 83886080s
...
Number  Start      End        Size       Type     File system     Flags
 1      2048s      2050047s   2048000s   primary  ext4             boot
 2      2050048s   36866047s  34816000s  primary  ext4
 3      36866048s  40962047s  4096000s   primary  linux-swap(v1)

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

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

CentOS7以外の場合(resizeコマンドでサイズを拡張します。)

CentOS7の場合は、こちら

# 拡張するパーティション指定し、サイズ を変更します。
(parted) resizepart 2return
# 続けてパーティションの最終セクターを指定します。
# 終了位置は、領域を最大限にしたいので、 最終セクターからswap領域を引いた 83886080s - 4096000s - 1s = 79790079s を指定します。
End? 79790079sreturn

CentOS7の場合(resizeコマンドがないので、一旦、削除します。)

CentOS7以外の場合は、こちら

# 拡張するパーティションを 一旦削除します。
(parted) rmreturn
# 削除するパーティション番号を指定します。ここでは、2 とます。
Partition number? 2return

# p で現状を再確認しておきます。
(parted) preturn
...
Number  Start      End        Size       Type      File system     Flags
 1      2048s      2050047s   2048000s   primary   ext4            boot

# 次に新しいパーティションを作成しなおします。
#   パーティションの種類 : primary
#   ファイルシステム : ext4
(parted) mkpart primary ext4return
# 続けてパーティションの開始セクター、終了セクターを指定します。
# ここでは、開始位置は先に削除したパーティションと同じセクターを指定します。
# 終了位置は、領域を最大限にしたいので、 最終セクターからswap領域を引いた 83886080s - 4096000s - 1s = 79790079s を指定します。
Start? 2050048sreturn
End? 79790079sreturn

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

# 先に削除した swap エリアを作成しなおします。
#   パーティションの種類 : primary
#   ファイルシステム : linux-swap
(parted) mkpart primary linux-swapreturn
# 続けてパーティションの開始セクター、終了セクターを指定します。
# ここでは、開始位置を先に拡張したパーティションの次のセクターを指定します。
# 終了位置は、MiB単位で整数値となる 領域の末尾まで 83886079s を指定します。
Start? 79790080sreturn
End? 83886079sreturn

# p で現状を再確認しておきます。
(parted) preturn
...
Number  Start      End        Size       Type     File system     Flags
 1      2048s      2050047s   2048000s   primary  ext4             boot
 2      2050048s   79790079s  77740032s  primary  ext4
 3      79790080s  83886079s  4096000s   primary  linux-swap(v1)

# 最後に q (quitの省略形)で、終了します。
(parted) qreturn

システムの再起動をします。

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

$ reboot

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

$ 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です。


いかがだったでしょうか?
ディスクの交換手順をまとめてみた(通常パーティション&fdiskによるパーティション拡張編) の手順と全く同じです。パーティションの操作コマンドが、fdisk から parted コマンドに変わっただけです。

2TiB以上の大容量のパーティション操作を行う場合は、パーティションテーブルをGPTへ移行すれば、この記事のように parted コマンド で操作を行うことが可能です。

先に書きましたが、大容量ディスクが安価で手に入る時代では、partedコマンドを使えないと、無いかと不便です。 概ね fdiskの操作方法と同じなので、それほど難しくはありませんので、是非、トライしてみられてはいかがと思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

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

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

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

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

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

今回は、旧来のディスク交換手順を簡単に解説してみたいと思います。 最近では、LVMを利用することが当たり前になっていますが、 LVMが広く普 ...

2TiB超えパーティションのためのMBR(msdos)からGPTへの移行

一昔前では、ディスクを管理するレコードは、PC/AT互換機(いわゆるIBM PC互換機)で用いられた MBR(Master Boot Rec ...

ディスクの追加手順をまとめてみた(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.6434 [s]