CentOS ディスクの追加、パーティションの新規作成、マウント処理
仕事でCentOSのディスク新規追加や、取り外しをした際の作業Tips。
対象OS:CentOS 6.6 64bit Plain (CentOS 64bit)
アンマウント、ディスクを取り外す場合に、対象ディスクを認識したまま切断すると、
異常な状態になるので、以下の処理を行う。
マウントを解除
#umount -l /home/test
認識を外すデバイスを確認する
# dmesg | grep -i 'Attached SCSI disk' sd 2:0:0:0: [sda] Attached SCSI disk sd 2:0:1:0: [sdb] Attached SCSI disk
外すデバイスを指定。
/sys/class/scsi_device/2:0:1:0/device/delete
正常に外れているかを確認をする。
# fdisk -l
ディスクを再接続後、スキャンで追加されたDISKが見えるようにする
# for i in $(find /sys/class/scsi_host -name 'scan') $(find /sys/devices -name 'scan') ;do echo "- - -" > $i ; done
追加されたDISKを確認
# fdisk -l ディスク /dev/sda: 32.2 GB, 32212254720 バイト ヘッド 255, セクタ 63, シリンダ 3916 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x0004bc0c デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 1 66 524288 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 66 334 2150400 82 Linux スワップ / Solaris パーティション 2 は、シリンダ境界で終わっていません。 /dev/sda3 334 3917 28781568 83 Linux ディスク /dev/sdb: 107.4 GB, 107374182400 バイト ヘッド 255, セクタ 63, シリンダ 13054 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000
領域を作成します。
# fdisk /dev/sdb 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): m コマンドの動作 a ブート可能フラグをつける b bsd ディスクラベルを編集する c dos 互換フラグをつける d 領域を削除する l 既知の領域タイプをリスト表示する m このメニューを表示する n 新たに領域を作成する o 新たに空の DOS 領域テーブルを作成する p 領域テーブルを表示する q 変更を保存せずに終了する s 空の Sun ディスクラベルを作成する t 領域のシステム ID を変更する u 表示/項目ユニットを変更する v 領域テーブルを照合する w テーブルをディスクに書き込み、終了する x 特別な機能 (エキスパート専用) コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 1 最初 シリンダ (1-13054, 初期値 1): 初期値 1 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1-13054, 初期値 13054): 初期値 13054 を使います コマンド (m でヘルプ): p ディスク /dev/sdb: 107.4 GB, 107374182400 バイト ヘッド 255, セクタ 63, シリンダ 13054 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x083d66ef デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 1 13054 104856223+ 83 Linux コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 ディスクを同期しています。
パーティションの更新情報を認識させます。
# partprobe
パーティションをフォーマットします。
# mkfs -t ext4 /dev/sdb1
自動マウント設定を行ないます。再起動した場合も自動的にマウントするよう設定を行ないます。
# vi /etc/fstab # diff /etc/fstab /etc/fstab.ORG 12d11 < /dev/sdb1 /home/test ext4 defaults 1 2
作成したディレクトリにマウントします。
# mount /dev/sdb1 /home/test
マウントしたディスクが認識されているか、確認。
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 28198044 1297680 25461288 5% / tmpfs 4028756 0 4028756 0% /dev/shm /dev/sda1 499656 30892 442552 7% /boot /dev/sdb1 103079868 61044 97776016 1% /home/test
一応、これで完成。
なお、同じディスクで、パーティションの削除、作成を繰り返していると、下記のエラーが出ることがあります。
コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。 カーネルはまだ古いテーブルを使っています。 新しいテーブルは次回リブート時に使えるようになるでしょう。 ディスクを同期させます。
メッセージを読むとリブートするの??って思いますが、partprobe コマンドで再読み込みをすれば、OSを再起動しなくても認識されます。