2-5式(秋)簡易計算機
式が更新されました
SSHFSでファイル共有
私が大学入学時に買ってもらった8年物のノートPCを、自宅内のファイル共有サーバーとして再利用することにしました。その際にSSHFSを使い、サーバー上のディレクトリをクライアント上にマウントします。これにより他のファイルと同じようにサーバー上のファイルを扱うことができます。通信プロトコルはSSHで暗号化されるので安全になります。
以下構成概要です。
サーバー- ノートPC+CentOS6.2
- デスクトップPC+Windows 7
- MacBook+Mac OS X 10.7.2 Lion
CentOS6にNTFSな外付けHDDをUSB経由でマウント
最初にサーバーの準備をします。とはいえサーバーとして必要なのはSSHサーバーの立ち上げだけです。SSHFSで使う通信プロトコルは通常のSSHと変わらないためです。このSSHサーバーも初期状態でインストール済みなので、実質やることはありません。楽でいいですね。
次に共有させるHDDを用意します。これまでWindowsに直接つないでいたUSB外付けHDDをCentOSにつなぎ変えます。USBポートに指した状態でfdisk -lを実行すると以下のようになります。
[master@localhost ~]$ sudo fdisk -l [sudo] password for master: ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト ヘッド 255, セクタ 63, シリンダ 243201 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0xbbc438d9 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 1 243201 1953511008+ 7 HPFS/NTFS
とりあえず認識はしているようなので次にマウントします。/dev/sdaといったパスは再起動時に変わるかもしれないのでUUIDで指定します。
[master@localhost ~]$ sudo blkid /dev/sda1: UUID="16A8BA00A8B9DF05" TYPE="ntfs" [master@localhost ~]$ sudo mkdir /mnt/16A8BA00A8B9DF05 [master@localhost ~]$ sudo mount -U 16A8BA00A8B9DF05 /mnt/16A8BA00A8B9DF05 mount: 未知のファイルシステムタイプ 'ntfs'しかし、上記のとおりエラーが出て失敗します。調べたところCentOSは初期状態ではNTFSをマウントできないらしいので、マウントさせるためのモジュールを別途インストールします。
[master@localhost ~]$ sudo yum -y install fuse fuse-ntfs-3g dkms dkms-fuse Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp base | 3.7 kB 00:00 extras | 3.5 kB 00:00 updates | 3.5 kB 00:00 Setting up Install Process No package fuse-ntfs-3g available. No package dkms available. No package dkms-fuse available. Resolving Dependencies --> Running transaction check ---> Package fuse.i686 0:2.8.3-4.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: fuse i686 2.8.3-4.el6 base 71 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 71 k Installed size: 182 k Downloading Packages: fuse-2.8.3-4.el6.i686.rpm | 71 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : fuse-2.8.3-4.el6.i686 1/1 Installed: fuse.i686 0:2.8.3-4.el6 Complete! [master@localhost ~]$ sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/r pmforge-release-0.5.2-2.el6.rf.i686.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm を取得中 警告: /var/tmp/rpm-tmp.HniZd3: ヘッダ V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY 準備中... ########################################### [100%] 1:rpmforge-release ########################################### [100%] [master@localhost ~]$ sudo vi /etc/yum.repos.d/rpmforge.repo ### Name: RPMforge RPM Repository for RHEL 6 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge #enabled = 1 から修正 enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [master@localhost ~]$ sudo yum -y --enablerepo=rpmforge install fuse fuse-ntfs-3 g dkms dkms-fuse Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * rpmforge: apt.sw.be * updates: ftp.yz.yamagata-u.ac.jp rpmforge | 1.1 kB 00:00 rpmforge/primary | 1.5 MB 00:08 rpmforge 4253/4253 Setting up Install Process Package fuse-2.8.3-4.el6.i686 already installed and latest version No package dkms-fuse available. Resolving Dependencies --> Running transaction check ---> Package dkms.noarch 0:2.1.1.2-1.el6.rf will be installed ---> Package fuse-ntfs-3g.i686 0:2010.10.2-1.el6.rf will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: dkms noarch 2.1.1.2-1.el6.rf rpmforge 69 k fuse-ntfs-3g i686 2010.10.2-1.el6.rf rpmforge 637 k Transaction Summary ================================================================================ Install 2 Package(s) Total download size: 706 k Installed size: 1.6 M Downloading Packages: (1/2): dkms-2.1.1.2-1.el6.rf.noarch.rpm | 69 kB 00:01 (2/2): fuse-ntfs-3g-2010.10.2-1.el6.rf.i686.rpm | 637 kB 00:04 -------------------------------------------------------------------------------- Total 101 kB/s | 706 kB 00:07 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Installing : dkms-2.1.1.2-1.el6.rf.noarch 1/2 Installing : fuse-ntfs-3g-2010.10.2-1.el6.rf.i686 2/2 Installed: dkms.noarch 0:2.1.1.2-1.el6.rf fuse-ntfs-3g.i686 0:2010.10.2-1.el6.rf Complete!
fuse fuse-ntfs-3g dkmsモジュールをインストールします。標準リポジトリには含まれていないので、途中でrpmforgeリポジトリを追加しています。その上で改めてマウントを試します
[master@localhost ~]$ sudo -t ntfs-3g mount -U 16A8BA00A8B9DF05 /mnt/16A8BA00A8B 9DF05 [sudo] password for master:
NTFSとしてマウントを試すと無事成功しました。参考サイトにはdkms-fuseも必要とあったのですが、なくてもマウントに成功しました。リポジトリからも削除されているので不要になったのかもしれません。
長くなったのでいったん区切ります。次回はクライアント側の設定を行います。
はてなブログでの「続きを読む」の修正
前回紹介した「続きを読む」をichitasoさんの助言を元に修正しました。ichitasoさんありがとうございました。以下修正されたソースコードです。
はてなブログで「続きを読む」ができるようにしてみた
ふと思いついたので試してみます。ソースコードは以下のとおり。