Prismjs

2019年1月27日日曜日

ラズパイからWindowsの共有フォルダにCIFSでアクセスする~失敗(読み込みだけ可)~

ラズパイを買ったので、スクショやその他データをメインのWindows7機に移したくなりました。
いろんな方法があると思いますが、Windowsで作成した共有フォルダにラズパイからアクセスしてデータのやり取りを行わせることにしました。
ルーター経由で無線でもできると思いますが、まずは有線でPCとラズパイを1対1でつないで行うことにしました。

結果から言うと、ラズパイで共有フォルダを見ることができましたが書き込み(作成・編集・削除)ができませんでした。

以下、備忘録として記録を残します。



環境としては、
PC:Windows7
ラズパイ3B+:raspbian9.6
です。

まずはPC-ラズパイ間のpingを通す

PCとラズパイのイーサコネクタにLANケーブルを接続して双方をつなげます。

次にPCのIPアドレスを固定します。
コントロールパネル→ネットワークとインターネット→ネットワークと共有センターを開きます。ローカルエリア接続をクリックし、プロパティをクリックします。

インターネットプロトコルバージョン4(TCP/IPv4)を選択しプロパティをクリックします。

デフォルトだとIPアドレスを自動的に取得するになってると思うので、次のIPアドレスを使うをチェックし、IPアドレスに192.168.0.10、サブネットマスクに255.255.255.0を入力し、デフォルトゲートウェイは空欄でOKをクリックします。
(IPアドレスは別にこの値でなくてもOKです。)

これでPC側のIPアドレスを固定しました。
ラズパイからこのIPアドレスにpingを叩いてみます。
ping 192.168.0.10と入力します。変化がないようなら(おそらく変化がないはず)Ctrl+cでpingを終了させます。
うまくいきません。

ifconfig eth0と打ち込みラズパイのIPアドレスを確認します。
inetのとこに書いてあるのがIPアドレスです。

sudo ifconfig eth0 192.168.0.100と入力し、ラズパイのIPアドレスを192.168.0.100に変更します。(rebootしたりすると元に戻ってしまうので再度このコマンドを入力すること)
再びifconfig eth0を打ち込んでみるとIPアドレスが変わっているのが確認できます。

Windowsのファイアウォールの設定を変更します。
コントロールパネル→システムとセキュリティ→Windows ファイアウォールの詳細設定をクリックし、受信の規則を選択します。
3つあるうちの(2つのこともある)ファイルとプリンターの共有(SMB受信)のプロファイルがプライベートのものをダブルクリックします。

プロパティウィンドウが開いたら、スコープを選択し、これらのIPアドレスにチェックを入れた後、追加をクリックし、このIPアドレスまたはサブネットにチェックを入れ変更後のラズパイのIPアドレス(192.168.0.100)を入力しOKを押します。するとプロパティのスコープのこれらのIPアドレスにラズパイのIPアドレスが追加されるので適用をクリックした後OKを押してファイアウォールの設定を終えます。

ラズパイでpingを打ってみます。
ping 192.168.0.10と打ち込みます。以下のような画面になりpingが通っていることが確認できました。

Windowsのコマンドプロンプトからラズパイにpingを打ってみます。
Windowsからラズパイへもpingが通りました。

Windowsで共有フォルダを作る

結果的にラズパイからWindows共有フォルダに書き込みができなかったので以下の手順は間違っている可能性があります。

管理者権限(administrator)のないユーザーを作成します。(すでに管理者権限のないユーザーを作成済みの場合は作成手順は飛ばしてOK)
コントロールパネル→ユーザーアカウント→アカウントの管理→新しいアカウントの作成で標準ユーザーでアカウント(ユーザー)を作成します。

作成後、アカウントの管理で作ったユーザーをクリックしパスワードの作成でパスワードをつけます。この時のパスワードやユーザー名は忘れないようにします。

Cドライブ直下に共有するための新規フォルダを作成します。

作成したフォルダを右クリック→共有→特定のユーザーをクリックします。

▼を押して先ほど作成した管理者権限なしユーザーを選択し追加します。

アクセス許可のレベルを読み取り/書き込みに変更して共有ボタンを押します。
終了をクリックすると共有が完了します。

ラズパイにCIFSをインストールする

コマンドラインでsudo apt-get install cifs-utilsを入力しCIFSのユーティリティをインストールします。(僕の場合は最初から入ってました。)


共有フォルダをマウントする

ラズパイ内に共有するフォルダをマウントする場所を作成します。
sudo mkdir /mnt/windowsとでも入力しフォルダを作成しときましょう。

その後sudo mount -t cifs -o user=hoge,password=piyopiyo //192.168.0.10/CIFS_TEST /mnt/windowsと入力します。
hogeは先ほど作ったユーザー名、piyopiyoはそのパスワード、192.168.0.10は先ほど固定したWindowsPCのIPアドレス、CIFS_TESTは先ほど作った共有フォルダ名、/mnt/windowsは先ほど作ったラズパイ内の共有するフォルダをマウントする場所です。

エラー等がなければマウントできているはずです。ためしにwindowsPCで適当なファイルを共有フォルダに入れて、ラズパイで開いてみます。
たしかにwindowsで入れたファイルがラズパイからも見れます。やったね!

と思ったのもつかの間、編集しようとして保存すると保存できません。
エラーが出ます。

いろいろ共有フォルダ関係をいじってみましたが、初心者のぼくには原因がわかりません。共有フォルダのアクセス権関係のなんかだと思うんですが、いろいろ変えてみても(フルコントロールにしたりetc)ダメでした。ググってもよい情報がなかなか出て来ませんでしたorz
sambaでラズパイ内のフォルダを共有してwindowsからアクセスする形でファイル共有するのが簡単で確実そうですね。。。。。。。。

ちなみにマウント時に管理者権限のあるユーザー名とパスワードでやるとなぜかエラーが起きました。だからわざわざ権限のないユーザーを作ってます。

0 件のコメント:

コメントを投稿