Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

新しいパーティションをディスクに追加して、再起動せずにそれを RHEL6 で使用する方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 6

Issue

  • 既にマウントされているパーティションがあるディスクに新しいパーティションを追加しました。再起動せずにその新しいパーティションを RHEL6 で使用できますか?

Resolution

RHEL 5 では、ディスク上のパーティションテーブルが変更したことを OS に知らせるために、通常は partprobe が使用されます。RHEL 6 では、partprobe は使用されていない (マウントされていない) ディスク上のパーティションを更新するために OS をトリガーします。ディスク上のパーティションが使用中の場合、partprobe はシステムでパーティションを更新する事をトリガーしません。なぜなら、安全でないと見なされる場合があるからです。

そのため、一般的には、以下をお勧めします。

  1. ディスク上のパーティションテーブルを変更する前にそのディスクのパーティションをすべてアンマウントし、システムのパーティションを更新するために partprobe を実行してください。
  2. これが可能でない場合 (たとえばマウントされたパーティションがシステムパーティションである場合、) パーティションテーブルを修正してからシステムを再起動してください。再起動後にパーティション情報が再度読み込まれます。

新しいパーティションを追加しただけで既存のパーティションが変更されていない場合、システムパーティションテーブルを更新するために partx コマンドを使用できます。partx コマンドはシステムの新しいパーティションテーブルか既存のパーティションテーブルかチェックせず、何を行っているのかお客様自身が分かっているのが前提である事に注意してください。もし既存のパーティションが変更されていたり正しく設定されていない場合、ディスク上のデータが破損します。したがいまして、お客様の責任において使用してください。

たとえば、パーティション #1 が既存のパーティションで、fdisk によって新しいパーティション #2 が既に /dev/sdb に追加されています。ここで、システムに新しいパーティションを追加するために partx -v -a /dev/sdb を使用します。

# ls /dev/sdb*  
/dev/sdb  /dev/sdb1  

ディスクのパーティションテーブルの一覧を表示します。

# partx -l /dev/sdb
# 1:        63-   505007 (   504945 sectors,    258 MB)  
# 2:    505008-  1010015 (   505008 sectors,    258 MB)  
# 3:         0-       -1 (        0 sectors,      0 MB)  
# 4:         0-       -1 (        0 sectors,      0 MB)  

ディスクを読み込み、すべてのパーティションをシステムに登録します。

# partx -v -a /dev/sdb                                         
device /dev/sdb: start 0 size 2097152  
gpt:0 slices  
dos:4 slices  
# 1:        63-   505007 (   504945 sectors,    258 MB)  
# 2:    505008-  1010015 (   505008 sectors,    258 MB)  
# 3:         0-       -1 (        0 sectors,      0 MB)  
# 4:         0-       -1 (        0 sectors,      0 MB)  
BLKPG:Device or resource busy
error adding partition 1

(パーティション 1 は パーティション 2 が追加される前にすでにシステムに追加されているため、ここの最後の 2 行はこの例では正常です。)

/dev/sdb のデバイスノードそのパーティションのデバイスノードがある事を確認します。

# ls /dev/sdb*  
/dev/sdb  /dev/sdb1  /dev/sdb2

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.