Armadilloフォーラム

Wired connection1をコピーする方法

hiragushi

2020年10月23日 15時27分

お世話になります。

あるG3L(Aとします)をマスターとしてブートディスクを作成し、他のG3Lにコピーしました。
量産したいため、どのG3LにおいてもWired connection1を同じ固定IPにしてコピーしたいと考えました。
しかし、ブートディスクで他のG3LにコピーするとWired connection1にその固定IPで設定されるのですが、MACアドレスがAのもので設定されるために使用できません。
(有線LANを接続すると、Wired connection3にその機種のMACアドレスが設定されましたがその固定IPにはなっていませんでした。また、プログラムの関係でWired connection1に設定したいです)

ブートディスクをどうにかして、Wired connection1に同じ固定IPで、その機種のMACアドレスで設定する方法はないでしょうか。
できるだけ操作を簡単にしたい(ブートディスクを挿入して起動するだけなど)ため、シリアル接続などは使用できません。

対処方法をお教えいただけないでしょうか。
よろしくお願いいたします。

コメント

at_syunya.ohshio

2020年10月23日 16時24分

大塩です。

> あるG3L(Aとします)をマスターとしてブートディスクを作成し、他のG3Lにコピーしました。
> 量産したいため、どのG3LにおいてもWired connection1を同じ固定IPにしてコピーしたいと考えました。
> しかし、ブートディスクで他のG3LにコピーするとWired connection1にその固定IPで設定されるのですが、MACアドレスがAのもので設定されるために使用できません。
> (有線LANを接続すると、Wired connection3にその機種のMACアドレスが設定されましたがその固定IPにはなっていませんでした。また、プログラムの関係でWired connection1に設定したいです)
>
> ブートディスクをどうにかして、Wired connection1に同じ固定IPで、その機種のMACアドレスで設定する方法はないでしょうか。
> できるだけ操作を簡単にしたい(ブートディスクを挿入して起動するだけなど)ため、シリアル接続などは使用できません。
>
> 対処方法をお教えいただけないでしょうか。
> よろしくお願いいたします。

基としたマスターのG3Lから、ブートディスクを作成されたとのことですが
具体的なブートディスクの作成手順をお聞きしてもよろしいでしょうか。

お手数をおかけしますが、宜しくお願い致します。

お世話になります。

「第15章 SDブートの活用」のとおりにブートディスクを作成します。
その後、下記の順番で実施します。
1.コピー元G3LでSDブート後、eMMC第2パーティションをマウント
2.eMMC第2パーティションの内容をブートSDにコピー
3.eMMC第2パーティションをアンマウント
4. コピー元のArmadillo-IoT G3Lをシャットダウン

つぎに、作成したブートディスクを別のG3Lに挿入します。
1.作成したブートディスクでコピー先のG3Lを起動
2.eMMC第2パーティションをマウント
3.ブートディスク内のルートファイルシステムをG3Lにコピー
4. eMMC第2パーティションをアンマウント

このような手順です。
よろしくお願いいたします。

> 大塩です。
>
> > あるG3L(Aとします)をマスターとしてブートディスクを作成し、他のG3Lにコピーしました。
> > 量産したいため、どのG3LにおいてもWired connection1を同じ固定IPにしてコピーしたいと考えました。
> > しかし、ブートディスクで他のG3LにコピーするとWired connection1にその固定IPで設定されるのですが、MACアドレスがAのもので設定されるために使用できません。
> > (有線LANを接続すると、Wired connection3にその機種のMACアドレスが設定されましたがその固定IPにはなっていませんでした。また、プログラムの関係でWired connection1に設定したいです)
> >
> > ブートディスクをどうにかして、Wired connection1に同じ固定IPで、その機種のMACアドレスで設定する方法はないでしょうか。
> > できるだけ操作を簡単にしたい(ブートディスクを挿入して起動するだけなど)ため、シリアル接続などは使用できません。
> >
> > 対処方法をお教えいただけないでしょうか。
> > よろしくお願いいたします。
>
> 基としたマスターのG3Lから、ブートディスクを作成されたとのことですが
> 具体的なブートディスクの作成手順をお聞きしてもよろしいでしょうか。
>
> お手数をおかけしますが、宜しくお願い致します。

at_syunya.ohshio

2020年10月23日 19時05分

大塩です。

> 「第15章 SDブートの活用」のとおりにブートディスクを作成します。
> その後、下記の順番で実施します。
> 1.コピー元G3LでSDブート後、eMMC第2パーティションをマウント
> 2.eMMC第2パーティションの内容をブートSDにコピー
> 3.eMMC第2パーティションをアンマウント
> 4. コピー元のArmadillo-IoT G3Lをシャットダウン
>
> つぎに、作成したブートディスクを別のG3Lに挿入します。
> 1.作成したブートディスクでコピー先のG3Lを起動
> 2.eMMC第2パーティションをマウント
> 3.ブートディスク内のルートファイルシステムをG3Lにコピー
> 4. eMMC第2パーティションをアンマウント
>
> このような手順です。
> よろしくお願いいたします。
>

手順の記載ありがとうございます。
上記の方法は、一度起動したArmadilloのルートファイルシステムをコピーしていることになります。
この方法ですと、マスター側のssh秘密鍵など固有の情報までコピーしてしまうため、動作に不都合が生じることになります。
以下製品マニュアルを参考に、x1-debian-builder からルートファイルシステムをカスタマイズして、ビルドしたものを展開してください。
https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…

IPアドレスの固定化ですが、方法としてはrc.local などを用いた起動時のIPアドレス固定化等が挙げられるかと思われます。

また、サービスの有効化は必要ですが、systemd による起動時のIPアドレス固定化も可能かと思われます。
以下ブログにて、Armadillo起動時に実行されるアプリケーションの作成方法をご紹介しています。
https://armadillo.atmark-techno.com/blog/6938/2865

以上です。

大塩様、ありがとうございます。

まずはお教えいただいた方法で実施してみます。
もし詰まったらお手数ですが、またよろしくお願いいたします。

> 大塩です。
>
> > 「第15章 SDブートの活用」のとおりにブートディスクを作成します。
> > その後、下記の順番で実施します。
> > 1.コピー元G3LでSDブート後、eMMC第2パーティションをマウント
> > 2.eMMC第2パーティションの内容をブートSDにコピー
> > 3.eMMC第2パーティションをアンマウント
> > 4. コピー元のArmadillo-IoT G3Lをシャットダウン
> >
> > つぎに、作成したブートディスクを別のG3Lに挿入します。
> > 1.作成したブートディスクでコピー先のG3Lを起動
> > 2.eMMC第2パーティションをマウント
> > 3.ブートディスク内のルートファイルシステムをG3Lにコピー
> > 4. eMMC第2パーティションをアンマウント
> >
> > このような手順です。
> > よろしくお願いいたします。
> >
>
> 手順の記載ありがとうございます。
> 上記の方法は、一度起動したArmadilloのルートファイルシステムをコピーしていることになります。
> この方法ですと、マスター側のssh秘密鍵など固有の情報までコピーしてしまうため、動作に不都合が生じることになります。
> 以下製品マニュアルを参考に、x1-debian-builder からルートファイルシステムをカスタマイズして、ビルドしたものを展開してください。
> https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…
>
> IPアドレスの固定化ですが、方法としてはrc.local などを用いた起動時のIPアドレス固定化等が挙げられるかと思われます。
>
> また、サービスの有効化は必要ですが、systemd による起動時のIPアドレス固定化も可能かと思われます。
> 以下ブログにて、Armadillo起動時に実行されるアプリケーションの作成方法をご紹介しています。
> https://armadillo.atmark-techno.com/blog/6938/2865
>
> 以上です。

お世話になります。

早速ですが本件につきまして、担当から懸念点が挙げられました。

●インストーラのスタンスは以下のようになっているようです。
・独自のファイルは指定箇所に配置しておけばコピーされる。
・パッケージ系はインストーラ実行時にインストール。

●そのうえで、懸念事項としては以下が挙げられます。
・DB、FTP等インストール後に設定を変更しているものはどうするべきなのか。
・パッケージのバージョンを固定する必要がある場合はどうするのか。
 (機器を管理したいのでバージョンはできるだけ固定したいと考えます)
・コピーされたファイルのUID/GIDはrootになる旨の記載があるが、それだとweb系が動かないのではないか。
・インストール時だけ実行するスクリプトのようなものはあるのか。

お手数ですがお教えください。
よろしくお願いいたします。

> 大塩様、ありがとうございます。
>
> まずはお教えいただいた方法で実施してみます。
> もし詰まったらお手数ですが、またよろしくお願いいたします。
>
> > 大塩です。
> >
> > > 「第15章 SDブートの活用」のとおりにブートディスクを作成します。
> > > その後、下記の順番で実施します。
> > > 1.コピー元G3LでSDブート後、eMMC第2パーティションをマウント
> > > 2.eMMC第2パーティションの内容をブートSDにコピー
> > > 3.eMMC第2パーティションをアンマウント
> > > 4. コピー元のArmadillo-IoT G3Lをシャットダウン
> > >
> > > つぎに、作成したブートディスクを別のG3Lに挿入します。
> > > 1.作成したブートディスクでコピー先のG3Lを起動
> > > 2.eMMC第2パーティションをマウント
> > > 3.ブートディスク内のルートファイルシステムをG3Lにコピー
> > > 4. eMMC第2パーティションをアンマウント
> > >
> > > このような手順です。
> > > よろしくお願いいたします。
> > >
> >
> > 手順の記載ありがとうございます。
> > 上記の方法は、一度起動したArmadilloのルートファイルシステムをコピーしていることになります。
> > この方法ですと、マスター側のssh秘密鍵など固有の情報までコピーしてしまうため、動作に不都合が生じることになります。
> > 以下製品マニュアルを参考に、x1-debian-builder からルートファイルシステムをカスタマイズして、ビルドしたものを展開してください。
> > https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…
> >
> > IPアドレスの固定化ですが、方法としてはrc.local などを用いた起動時のIPアドレス固定化等が挙げられるかと思われます。
> >
> > また、サービスの有効化は必要ですが、systemd による起動時のIPアドレス固定化も可能かと思われます。
> > 以下ブログにて、Armadillo起動時に実行されるアプリケーションの作成方法をご紹介しています。
> > https://armadillo.atmark-techno.com/blog/6938/2865
> >
> > 以上です。

at_syunya.ohshio

2020年10月28日 16時17分

大塩です。

ご質問いただいた内容につきまして、回答いたします。

> ・インストール時だけ実行するスクリプトのようなものはあるのか。
以下のブログにて、インストール時に起動できるスクリプトを作成する方法が記載されています。
https://armadillo.atmark-techno.com/blog/1913/2426

> ・DB、FTP等インストール後に設定を変更しているものはどうするべきなのか。
コマンド実行で設定を変更しているものであれば、
設定コマンドを記載したスクリプトをrc.localで実行させることで
起動時に設定させることで解決できると思われます。

> ・パッケージのバージョンを固定する必要がある場合はどうするのか。
>  (機器を管理したいのでバージョンはできるだけ固定したいと考えます)
x1-debian-builder の packages ファイルに、ルートファイルシステム作成時に
インストールするパッケージ名が記載されています。
ここに、apt でバージョンを指定するときと同様に [パッケージ名]=[バージョン]と追記することで
バージョンを指定したインストールが可能です。

> ・コピーされたファイルのUID/GIDはrootになる旨の記載があるが、それだとweb系が動かないのではないか。
コピーしたいファイルのUID/GID を変更する[usermod][groupmod]コマンドをスクリプトに記載し、
rc.local で起動時実行することで可能かと思われます。

以上です。

中村です。

> ・DB、FTP等インストール後に設定を変更しているものはどうするべきなのか。
> ・コピーされたファイルのUID/GIDはrootになる旨の記載があるが、それだとweb系が動かないのではないか。
> ・インストール時だけ実行するスクリプトのようなものはあるのか。

x1-debian-builderのbuild.shとfixupのスクリプトを改造することで
対応可能だと思います。
以前の私の投稿
https://armadillo.atmark-techno.com/forum/armadillo/3914
を参考にしてみてください。
これはArmadillo-640用のat-debian-builderでしたが、
x1-debian-builderでもほぼ同じです。

> ・パッケージのバージョンを固定する必要がある場合はどうするのか。

これについては、大塩さんが
> x1-debian-builder の packages ファイルに、ルートファイルシステム作成時に
> インストールするパッケージ名が記載されています。
> ここに、apt でバージョンを指定するときと同様に [パッケージ名]=[バージョン]と追記することで
> バージョンを指定したインストールが可能です。

と説明してくれています。
packagesファイルに記載があるものはこれで対応できると思いますが、
packagesファイルに記載がないデフォルトでインストールされる
パッケージ(そういうパッケージもありましたよね?)の場合に
どうするのかは、わかりません。

--
なかむら