CentOS6.x
gpt
parted
ハードディスク

Linux: 2TB以上あるUSBハードディスクを認識させる方法

More than 3 years have passed since last update.

私の自宅の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を再起動したとしても自動的にマウントするようになります。ぜひお試しあれ!!