exec /gns3/init.sh: no such file or directory

(FB に載せたものを、こちらにも載せておく ことにした)


手元の M1 Macbook にスタンドアロンで使える GNS3 環境を用意しようと思い立ち、

- VMWare Fusion + GNS3 VM で gns3server を構築
- GNS3 クライアント(フロントエンドといったほうがいいかも)としては GNS3.app を使用
という環境を構築して、いろいろと学習していた。複雑なことをやろうとすると、備えつけのサーバイメージである VPCS では機能不足であり(なにせ、ネットワークインタフェースがひとつしか持てない)、知り合いから GNS3 の Docker container の設定で Alpine Linux が動かせることを教えてもらっていたので導入した。導入それ自身は問題なく進んだのだけれど、その Alpine を GNS3 上で「電源投入」すると
exec /gns3/init.sh: nosuch file or directory
と言われてしまう。なんどやっても同じだ。電源が投入できないことには、コンソールも立ち上げられない。その先に何も進めない。
このエラーメッセージとは、もう何十年という古い付き合いであるのだけれど、VMWare + Docker container という環境の中で出てくると検討がつかない。そもそも /gns3 なんてファイルシステムどこにあるんだ?まそんな感じで暮れた途方であった。
わたくしの知識だけではまったく埒が開かないので、検索をしていたら https://github.com/GNS3/gns3-server/issues/2069 での議論に行き当たった。結論としては、Docker container で動く busybox というコマンドが M1 用(ARM64 用?)のものではないのだ、それを入れ替えよ、ということであった。とはいえ「GNS3 VM は M1 用のものをいれていたのだけどなぁ」という魂の U2 的叫びのもと、よく読んでみると、Docker container の環境は、直接の GNS3 VM 配下から独立したものであるらしく、そこには別の busybox があるとのこと。そしてこいつが M1 対応ではないものらしい。ということで、GNS3 VM のものである /usr/bin/busybox をそちらにもコピーする、つまり GNS3 VM にログインして
$ sudo cp /usr/bin/busybox /usr/local/lib/python3.8/dist-packages/gns3server/compute/docker/resources/bin
を実行せよということであった。わたくしが利用した GNS3 VM は ARM 版が出ている最新のものであったのだけれど、そこにはこのようなバグが入っている。次の版からはこういう問題には遭遇しないだろうね。
結果、万事丸くお開きになったのだけど、いやあ、なんだよ busybox って。それに Docker の仕掛け仕組み動作構造が全くわかっておらん。うーみゅ、凹むなぁ。とはいえ、同じ沼にはまる人がいるかもしれないで、対応方法だけをかかせていただきました。でもこの内容 Facebook 向きとは言えないですね。Facebook 的には長すぎるきらいがあるし。どういう場がいいのだろう(note や Qiita もちと考えたのだけど‥‥)。
なお、VMWare Fusion Player 上での GNS3 VM の設定については https://qiita.com/tarachan291/items/b16bdea5a0a1888a641d が丁寧であり、
GNS3 の Docker container を利用した Alpine Linux のインストールについては https://www.n-study.com/.../how-to-add-docker-container.../ が非常に有用です。ご参考まで。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。