見出し画像

Synology NAS上のVMでの不可解な現象

 私は現在、Synology社のDS220+というNASを使用しております。この中に今まで、Google Driveにため込んでいたドキュメント類、主にはPDFなどを保存しています。使い勝手という点では、Google Driveに保存しておいた方がいいのですが、いかんせんGoogleの突発的な発病行動によるGoogleアカウントのBANが怖く、重要なファイルがその瞬間にアクセス不可になることだけは避けようとした結果です。

 NASは、中身的にはLinuxをカスタマイズしたOSが載っているので、様々なアプリケーションを動かすことが出来ます。基本は、OSのパッケージセンターという場所からダウンロードできるものだけですが、その中に今回の主役である「Virtual Machine Manager」というパッケージがあります。名前で分かるとおり、NASの上で仮想環境を動かしてしまおうというものです。
 しかし、私の持っているDS220+には、CPUとしてIntel Celeron J4025というモバイル用の非力なものが載っていますので、その上でWindows 11を動かすと言うよりはLinuxのようなものを動かすのに適しているようです。一応、仕様上はVT-xも搭載されているので、おそらくそれを活用して仮想環境を構築しているものだと思います。

 さて、その「Virtual Machine Manager」を使用して、Ubuntu Server 22.04.3 LTSを動かそうとサイトからISOイメージをダウンロードして、インストールしました。インストールに手こずることなくサクッと環境を構築できました。しかし、私も本格的にLinuxを使うのは、今回が初めてです。今まで、適当にmacOSに仮想環境を作り、入れてものの数日使用するということはありましたが、メインはmacOSとWindowsのみ。一応、Linux上で動かしたいと思う、自作Pythonプログラムの導入とその環境構築までは出来ました。
 そして最後の最後、プログラムで生成したデータベースのファイルをNASのディレクトリに格納するため、SMBプロトコルでディレクトリをマウントしようとして、問題が発生しました。

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

 エラーメッセージからすると、ユーザー名、パスワード違いなどにより、アクセスが出来なかったという問題のようですが、もちろんそれらは合っています。
 カーネルログメッセージも見ろとのことだったので、見てみると、

[   24.235531] CIFS: Status code returned 0xc000006d STATUS_LOGON_FAILURE
[   24.235559] CIFS: VFS: \\192.168.1.2 Send error in SessSetup = -13

 やはり同じようなエラーメッセージです。最終的に、SMBではなくNFS で繋いでしまいましたが・・・(NFSはNASの設定変更は必要でしたが、サクッと問題なく繋がりました)。

 私のLinuxに対する知識不足か、と思い、Windows 11 Pro上のHyper-V上で同じように仮想環境を構築してみました。Hyper-Vを本格的に使うのは今回がはじめてです。それはそれで心配でしたが。
 環境構築ができ、いざNASのディレクトリをSMBプロトコルを使用してマウントすると、何の問題もなくマウントできました。驚くほどあっさりです。手順は、NAS上で仮想環境を構築したときに残していた操作ログ通りですので、全く差はなしです。

 こうなっては意地です。再度、NASのVMを一旦削除して、OSのインストールからやり直しました。でも実際表示されたのは・・・。

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

 同じです。やり方をかえて、smbclientというSMBプロトコルのCUIツールを使用して繋いでみると・・・。

session setup failed: NT_STATUS_LOGON_FAILURE

 セッション確立中に失敗しています。おそらく同じエラーという感じですが、Linuxの知識が乏しい私では、これ以上の問題解決が難しそうです。この問題以外の動作については、NASのVM上のLinuxは問題なく動いてくれています。

 自作のPythonプログラムでGoogle Chromeをヘッドレスで動かし、幾つかのWebサイトをスクレイピングして、データを収集。収集したデータをSQLite3のデータベースに情報を書き込み、それを元にExcelファイルを生成し、最終的にLibreOfficeをヘッドレスで動かし、PDF生成。生成したPDFをメールで送信する。
 ここまでは、macOSやWindowsでやっていたことと同じことをLinuxでも問題なくこなしています。ただ一つ、最後の最後、SQLite3のデータベースを保存するため、NASへ格納しようと、SMBで繋いだディレクトリへ格納しようとすると・・・、と言うところだけ失敗していますので、仕方なくNFSで代替しているところです。出来れば、NFSは使いたくないんですけどね。

 動いているのをヨシとしたくないので、これからも問題解決に向けて調査していきたいのですが、何かご存じの方いらっしゃいませんかね。やっぱり、Qiitaとか、他のテク系のところでもつぶやくべきですかね・・・。

この記事が気に入ったらサポートをしてみませんか?