さて、購入したての外付けUSB-HDDを物理的に接続、電源をONにします。近頃のLinuxは優秀ですから、これでHDDを認識して勝手にマウントしてくれますが、これからフォーマットをかけなければいけないので、マウントされたのを確認したらまずはumountします。
さて、問題は今接続したUSB-HDDがデバイスのどれか、ということ。だいたいアタリは付くのですが、念のため調べてみると、partedというコマンドがいいみたい。早速実行してみます。
# parted -l
モデル: ATA SAMSUNG HD400LJ (scsi)
ディスク /dev/sda: 400GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
2 32.3kB 526MB 526MB プライマリ ext3 boot
3 526MB 11.0GB 10.5GB プライマリ linux-swap
1 11.0GB 400GB 389GB プライマリ ext3
モデル: I-O DATA HDH-U (scsi)
ディスク /dev/sdb: 300GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 300GB 300GB プライマリ ext3 boot
モデル: I-O DATA HDJ-HSU (scsi)
ディスク /dev/sdd: 2000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 2000GB 2000GB プライマリ ntfs
普通はdmsgで確認するのかも?
でも、おぉ、HDJ-HSU2.0は/dev/sddとして認識されているのかー。なるほどファイルタイプも確かにntfsになっている。では、/dev/sddをフォーマットだ!
# fdisk /dev/sdd
このディスクのシリンダ数は 243186 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)
コマンド (m でヘルプ): p
Disk /dev/sdd: 2000.2 GB, 2000273039360 bytes
255 heads, 63 sectors/track, 243186 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdd1 1 243186 1953391513+ 7 HPFS/NTFS
コマンド (m でヘルプ):d
Selected partition 1
コマンド (m でヘルプ): p
Disk /dev/sdd: 2000.2 GB, 2000273039360 bytes
255 heads, 63 sectors/track, 243186 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-243186, default 1): 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-243186, default 243186): 243186
コマンド (m でヘルプ): p
Disk /dev/sdd: 2000.2 GB, 2000273039360 bytes
255 heads, 63 sectors/track, 243186 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdd1 1 243186 1953391513+ 83 Linux
コマンド (m でヘルプ): w
領域テーブルは交換されました!
ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
fdiskで領域確保をやり直したら、引き続きext3でフォーマットします。
# mkfs -t ext3 /dev/sdd1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244187136 inodes, 488347878 blocks
24417393 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14904 block groups
32768 blocks per group, 32768 fragments per group
16384 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
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
これで/dev/sddへのフォーマット作業は完了、引き続きLABEL設定を行います。これは接続するPCを変更しても、LABELでマウントを管理できるようにするためです。
# e2label /dev/sdd1
現時点では何もラベルが付けられていません。
# e2label /dev/sdd1 /isos
# e2label /dev/sdd1
/isos
ラベルが付けられました。ラベルを付けると、fstabにラベル名でマウントをかけるようになります。このラベル名のおかげで、認識されるデバイスファイルが変わってしまっても(たとえば次回、HDJ-HSU2.0を認識させたとき、/dev/sddとして認識されなかったとしても)、ラベル名でマウント管理ができるので、デバイスがないといってマウントされない、などの面倒を避けることが可能になります。
#vi /etc/fstab
LABEL=/isos /test ext3 user 0 0
などとすれば、HDJ-HSU2.0は/testにマウントされます。また、user指定なので、一般ユーザでもマウント・アンマウントができるようになります。
ただし、コレはあくまでマウント・アンマウントができるだけで、書き込みができることと同義ではありません。
書き込みを許可するには、マウントポイントの所有者を変更するか、マウントポイントに他のユーザに書き込み権限を与えるかです。
今回久しぶりにやってみたのですが、後者の場合、マウントした状態でchmod 777しないとダメみたい?
マウントしない状態でマウントポイントのアクセス権を777にしても、マウントした途端に755に変更され、書き込みができなくなってしまいました。こんな仕様だったっけ??
One thought to “使えるようにしよう。”