私の自宅のUSB ハードディスク・・・無駄に、6TB もありまして・・・ あぁ・・Linuxの外付けハードディスクとして活用しよう。。USBハードディスクなんで、挿せばなんとかなる・・・と思いきや・・全く認識していない・・。
ということで、Linux上の6TBのディスクとして認識させる為の経緯を下記に記載します。しんどかった。。
ちなみに、細かい話しはよくわからんのですが、Linuxの現在のファイルシステムでは、2TB以上のディスクを認識できないらしく、新たに、2Tを超えるようなHDDを扱えるようGPT ( GUID Partition Table ) と呼ばれる方式が策定されたとのことです。知らなかった。
じゃあ、いままでやってた、fdisk とかは利用できないの?ってはい、出来ません!(断言)
2TB 以上のHDDを認識させる為に、新たに、parted というユティリティを利用するようです。
早速ですが、その証跡を書きます。
parted -l で確認
[root@server01~]# parted -l
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 20.5kB 210MB 210MB fat32 EFI System Partition boot
2 211MB 6001GB 6001GB Usb HD
parted /dev/sda
[root@server01~]# parted /dev/sda
GNU Parted 2.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER ファイルシステムの簡単なチェックする
cp [転送元デバイス] 転送元NUMBER 転送先NUMBER
ファイルシステムを他のパーティションにコピーする
help [コマンド] ヘルプ表示。コマンド指定でそのヘルプを表示
mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る
mkfs NUMBER ファイルシステムの種類
指定した種類のファイルシステムを作る
mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
パーティションを作る
mkpartfs パーティションの種類 ファイルシステムの種類 開始 終了
パーティションとファイルシステムを作る
move NUMBER 開始 終了 パーティションを移動する
name NUMBER 名前 パーティションに名前をつける
print [devices|free|list,all|NUMBER]
パーティションテーブルや、利用可能なデバイス、空き領域、
見つかった全てのパーティション、あるいは特定のパーティションについて表示する
quit プログラムを終了する
rescue 開始 終了 開始、終了で指定した範囲付近にあるパーティションを復活させる
resize NUMBER 開始 終了 パーティションとその中のファイルシステムをリサイズする
rm NUMBER パーティションを削除する
select デバイス 操作するデバイスを選択
set NUMBER フラグ 状態 ファイルシステムのフラグと状態を設定する
toggle [NUMBER [FLAG]] パーティションのフラグの状態を反転する
unit UNIT デフォルトの単位を UNIT にする
version GNU Parted のバージョンと著作権情報を表示
ラベルを設定します
[root@server01~]# parted /dev/sda
GNU Parted 2.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mklabel gpt
警告: いま存在している /dev/sda のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? Y
パーティションが消えていることを確認
[root@server01~]# parted -l
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
[root@server01~]# parted
GNU Parted 2.1
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit MB
(parted) print
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001042MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
パーティションの作成
(parted) unit GB
(parted) print
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
(parted) mkpart
パーティションの名前? []? usbhdd
ファイルシステムの種類? [ext2]? ext4
開始? 0
終了? 6000
(parted) p
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 0.00GB 6000GB 6000GB usbhdd
パーティションが生成されているか確認する(ファイルシステムが生成されていないことも確認)
[root@server01~]# parted -l
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 6000GB 6000GB usbhdd
ext4 でフォーマット開始
[root@server01~]# mkfs -t ext4 /dev/sda
mke2fs 1.41.12 (17-May-2010)
/dev/sda is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
366280704 inodes, 1465098240 blocks
73254912 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
44712 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
再度領域を確認
[root@server01~]# parted -l
モデル: BUFFALO HD-QLSU2/R5 1 (scsi)
ディスク /dev/sda: 6001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: loop
番号 開始 終了 サイズ ファイルシステム フラグ
1 0.00B 6001GB 6001GB ext4
マウント領域を作り、マウントします
[root@server01data]# mkdir -p /usr/local/data; chmod -Rf 775 /usr/local/data
[root@server01data]# mount -t ext4 /dev/sda /usr/local/data/
マウントされたか確認します
できているっぽいです
[root@server01~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_nas01-lv_root 50G 12G 36G 25% /
tmpfs 497M 232K 497M 1% /dev/shm
/dev/sdb1 485M 33M 427M 8% /boot
/dev/mapper/vg_nas01-lv_home 59G 182M 56G 1% /home
/dev/sda 5.4T 186M 5.1T 1% /usr/local/data
このままですと、再起動した際、マウントが外れてしまうので、/etc/fstab に設定を入力する必要があります
バルクIDを求めます(UUID?)
[root@server01~]# blkid /dev/sda
/dev/sda: UUID="e38f3397-6259-4627-a956-a7a7018ef5b7" TYPE="ext4"
取得したuuidを、/etc/fstab に設定します
[root@server01~]# echo 'UUID=e38f3397-6259-4627-a956-a7a7018ef5b7 /usr/local/data ext4 defaults 1 2' >> /etc/fstab
[root@server01~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun May 11 17:53:18 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_nas01-lv_root / ext4 defaults 1 1
UUID=e950f35e-7c89-42b9-8eea-a47479a215e6 /boot ext4 defaults 1 2
/dev/mapper/vg_nas01-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_nas01-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /data ext3 defaults 1 2
UUID=e38f3397-6259-4627-a956-a7a7018ef5b7 /usr/local/data ext4 defaults 1 2
上記作業で、OSを再起動したとしても自動的にマウントするようになります。ぜひお試しあれ!!