風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

CentOS 6.5 導入時のメモ(続き:mount関連)

USB HDD (ext4) を自動マウント

デバイスの確認
  • blkidコマンドの実行
  • /dev/disk/by-id ディレクトリの参照

を行い、当該 USB HDD の UUID とデバイスを特定。

# blkid
:
/dev/sdb1: UUID="cf68a854-7e32-4b3f-872c-70d29fc7b343" TYPE="ext4"
:
# ls -l /dev/disk/by-id
:
lrwxrwxrwx. 1 root root  9  1月  3 22:01 2014 usb-SAMSUNG_HM120JC_2060302072A1-0:0 -> ../../sdb
lrwxrwxrwx. 1 root root 10  1月  3 22:01 2014 usb-SAMSUNG_HM120JC_2060302072A1-0:0-part1 -> ../../sdb1
:

ちなみに、UUID や デバイスの確認方法は他にも

  • dmesg
  • lsusb
  • fdisk -l
  • /dev/disk/by-uuid ディレクトリの参照
  • /dev/disk/by-path ディレクトリの参照
  • cat /proc/scsi/scsi
  • cat /proc/bus/usb/devices

など、いろいろとあるので、必要に応じて組み合わせるとよいかも。

ボリュームラベル(LABEL)の設定

USB はPCの再起動や接続する毎にデバイス(/dev/sdb1等)が変更されてしまう可能性があるため、UUID もしくは LABEL 指定でマウントする必要がある。
UUID は管理しにくいため、LABEL をつけるとわかりやすいと思われる。
LABEL を付けるには、ext2/3/4の場合は e2label コマンドを使用する。

# e2label /dev/sdb1 bkuphdd
# blkid /dev/sdb1
/dev/sdb1: UUID="cf68a854-7e32-4b3f-872c-70d29fc7b343" TYPE="ext4" LABEL="bkuphdd"

mount ポジションの作成と fstab の追記後、マウント実施

# mkdir -p /mnt/bkuphdd
# vi /etc/fstab

追記例のみ(コメントアウトして、UUID 指定の場合と、LABEL指定・デフォルト状態のものも記述)。

# UUID=cf68a854-7e32-4b3f-872c-70d29fc7b343   /mnt/bkuphdd    ext4    defaults,relatime 0 0
# LABEL=bkuphdd   /mnt/bkuphdd    ext4    defaults 0 0
#  defaults(ext4) = rw, suid, dev, exec, auto, nouser, async
LABEL=bkuphdd   /mnt/bkuphdd    ext4    rw,suid,dev,exec,auto,nouser,sync,relatime 0 0

バックアップ目的なのでキャッシュでメモリを圧迫したくないこともあり、デフォルトから async → syncに変更。また、パフォーマンス上から relatime オプションを追加。

# mount -a
# mount -l
:
/dev/sdb1 on /mnt/bkuphdd type ext4 (rw,relatime) [bkuphdd]
:

USB HDD (NTFS) を自動マウント

今回は実施していないので、詳細は忘却の彼方へ…悪しからず。
以前、Fedora Core 5ではやったはずなのだが…。

とりあえず。
参照:

ALL about Linux: CentOS 6 で ntfs をマウントする
CentOS/CentOSでntfsドライブをマウントする - Linuxと過ごす

また、ボリュームラベルの設定は、ntfslabel で行うらしい。
ntslabel は ntfsprogsパッケージに含まれるので yum でインストールしておくこと

LinuxでUSBメモリ等の中のvfat/ntfsのラベル付け方法 (blog@browncat.org)

マウントした外付HDD を Samba で共有する場合の注意

例えば、ホームディレクトリを共有化し、その下から外付HDD へのシンボリックリンクを設定しているような場合、Windows PCからシンボリックリンク先へのアクセス時に SELinux によるアクセス制限にひっかかる(場合がある)。
参考:

Linux PCの外付HDDへのWindowsからのアクセスが制限される? - 風柳メモ

この場合、Linux(Sambaサービスの稼働している)側のホストで、

# setsebool -P samba_export_all_rw on

を実行する必要が出てくるかもしれない。

特定のディレクトリなら、

# chcon -R -t samba_share_t <target_dir>

のように、当該ディレクトリ下にタイプ samba_share_t を付けてやればよい、のかも(自信なし)。
なお、ls コマンドに -Z オプションを付けることで、対象のセキュリティコンテキストを確認できる。

Windows の共有フォルダ(NTFS)のマウント

ユーザID(uid) とグループID(gid)を確認
# id myname
uid=500(myname) gid=500(myname) 所属グループ=500(myname)
共有フォルダのマウント

確認した uid と gid を指定して、その権限でアクセス可能なようにマウントする。
下記はホスト winpc の share フォルダ(\\winpc\share)をマウントする例。

# mkdir -p /mnt/share
# mount -t cifs //winpc/share /mnt/share -o username=winuser,password=pass_for_winuser,uid=500,gid=500