|
現: 2024-08-23 (金) 11:35:49 yuji |
| + | * LinuxからWindowsの共有フォルダにアクセスする [#ff7c00c1] |
| + | WindowsからLinuxへファイルを送る場合,Windowsに共有フォルダを作成してそこをLinuxでアクセスするのが手っ取り早い。~ |
| | | |
| + | ** Linuxマシンでの準備 [#i27ee30e] |
| + | LinuxマシンがWindowsマシンの共有フォルダにアクセスするには,''cifs-utils''パッケージをインストールする必要がある。~ |
| + | インストールすると,SMBプロトコルをLinuxマシンで扱えるようになる。 |
| + | |
| + | CentOSなんかの場合, |
| + | # yum install cifs-utils |
| + | |
| + | もし,Linuxマシンのディレクトリを共有したい場合は,''samba''パッケージをインストールする。 |
| + | |
| + | ** LinuxマシンでWindowsの共有フォルダをマウントする [#n3937b97] |
| + | 任意の場所にマウントポイントを作成する。~ |
| + | # mkdir -p /mnt/win |
| + | |
| + | ディレクトリ名も,好きな名前で良い。~ |
| + | |
| + | ** Windowsマシンで共有フォルダを用意する [#pa3897aa] |
| + | Windowsマシンで共有フォルダを用意する。共有フォルダ名も好きな名前(Shareにしてみる)で良い。~ |
| + | - 作成したフォルダで右クリックしてプロパティを選択する。~ |
| + | - 共有タブをクリック~ |
| + | - 適当なユーザで共有を設定する。~ |
| + | ここでEveryoneにすると,どこからでも誰でもアクセスできるようになる。~ |
| + | 通常は,フォルダの所有者を設定しておく。~ |
| + | |
| + | ** LinuxマシンでWindowsの共有フォルダをマウントする [#dd58cb39] |
| + | Windowsマシンの共有フォルダをLinuxマシンでファイルシステムとしてマウントする。~ |
| + | # mount -t cifs //[Windowsサーバー名 or IP Address]/[共有フォルダ名] /mnt/win -o username=[Windowsユーザー名],password=[Windowsパスワード],uid=[Linuxのユーザー名] |
| + | |
| + | uidでLinuxマシンでのユーザー名を指定して,マウント先のディレクトリとファイルの権限をユーザーに設定する。~ |
| + | /mnt/winは,上記で作成したマウントポイント。~ |
| + | |
| + | マウント時にアクセス権を変更したい場合は,file_modeやdir_modeオプションを使う。~ |
| + | file_mode=0777,dir_mode=0777 |
| + | のようにしてアクセス権の設定を追加する。(デフォルトだと777になっている) |
| + | |
| + | これでWindowsマシンの共有フォルダがLinuxマシンのファイルシステムにマウントされるので,Windowsマシンでファイルを保存すると,Linuxマシンで保存したファイルにアクセスできるようになる。~ |
| + | |
| + | ** よくあるトラブル [#e02b2456] |
| + | マウントする時にエラー等でうまくマウントできないことがある。~ |
| + | |
| + | mount.cifsコマンドのバージョンにより,オプション等に違いがあったりデフォルト値に違いがあるので注意する。~ |
| + | mount.cifsコマンドのバージョンの確認は以下のようにする。~ |
| + | # mount.cifs -V |
| + | mount.cifs version: 6.8 |
| + | |
| + | man mount.cifsでインストールされているmount.cifsのオプション等が確認できる。~ |
| + | |
| + | *** cifs_mount failed w/return code = -111 [#h8319b58] |
| + | CIFS VFS: Error connecting to socket. Aborting operation. |
| + | CIFS VFS: cifs_mount failed w/return code = -111 |
| + | Unable to find suitable address. |
| + | このエラーは,ネットワークでWindowsマシンとLinuxマシンで接続出来ないのが原因です。~ |
| + | |
| + | *** mount error(13): Permission denied [#y0c7a38a] |
| + | この場合,考えられる原因はいくつかある。~ |
| + | - 共有フォルダのパスに,エスケープすべき文字やスペース等が含まれている。~ |
| + | ?や!,@などがある場合やスペースがある場合は,その文字の前を\でエスケープする必要がある。~ |
| + | nomapposixオプションを使う方法もある。(デフォルトはmapposixで,?や!なんかは使用できない。~ |
| + | - cifsマウントする際の認証方式(secオプション)が合っていない。~ |
| + | secオプションで,認証方式を指定する。~ |
| + | sec=none 空のユーザー名(名前なし)で接続を行なう |
| + | sec=krb5 Kerberos5認証を用いる |
| + | sec=krb5i Kerberos認証とパケット署名を用いる |
| + | sec=ntlm NTLMパスワードハッシュを用いる(mount.cifsのv3.8以前のデフォルト) |
| + | sec=ntlmi NTLMパスワードハッシュと署名を用いる |
| + | sec=ntlmv2 NTLMv2パスワードハッシュを用いる |
| + | sec=ntlmv2i NTLMv2パスワードハッシュとパケット署名を用いる |
| + | sec=ntlmssp NTLMv2パスワードハッシュでカプセル化する(mount.cifsのv3.8以上のデフォルト) |
| + | sec=ntlmsspi NTLMv2パスワードハッシュでカプセル化して署名を追加する |
| + | -smbバージョンが合っていない |
| + | versオプションでsmbバージョンをWindowsマシンに合わせる必要がある。~ |
| + | 1.0 古いsmbバージョンで古いNASやWindows XPが使用している(kernelが4.13未満でのデフォルト) |
| + | 2.0 SMB2.0 or 2.002でWindows Vista SP1/Windows Server 2008から使用されている |
| + | 2.1 SMB2.1でWindows 7/Windows Server 2008R2から使用されている(kernelが4.13.5以上のデフォルト) |
| + | 3.0 SMB3.0はWindows 8/Windows Server 2012から使用されている(kernelが4.13から4.13.5までデフォルト) |
| + | 3.1.1 or 3.11 SMB3.1.1はWindows Server 2016から使用されている |
| + | - オプション指定の内容が間違っている・指定していないなど。~ |
| + | username,passwordと共に,domain/workgroupを指定しないとmount出来ない場合がある。~ |
| + | |
| + | *** cifs_mount failed w/return code = -112 [#x53041d4] |
| + | Windows 10の共有フォルダでこれが発生することが多い。~ |
| + | CIFS VFS: cifs_mount failed w/return code = -112 |
| + | mount: mount … failed: Host is down |
| + | |
| + | この場合,SMBのバージョンをmountコマンドで指定するようにする。~ |
| + | # mount -t cifs //xxx.xxx.xxx.xxx/Share /mnt/win -o username=user,password=pass,vers=2.0 |
| + | |
| + | *** ioctl error in smb2_get_dfs_refer rc=-5 [#rdb59a06] |
| + | こんなエラーが出る場合がある。~ |
| + | CIFS VFS: ioctl error in smb2_get_dfs_refer rc=-5 |
| + | mount error(16): Device or resource busy |
| + | Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) |
| + | これは,SMB3を使用する時にWindowsマシンにDFS対応がない場合に,表示されるワーニングです。~ |
| + | ファイルのアクセスには,特に問題はない。 |
| + | |
| + | このワーニングを非表示にするには,kernelを変更するかビルドし直す必要がある。~ |