Armadilloフォーラム

ラズパイからArmadilloへの移行で、ループバックディスクが生成できない

ahirata

2025年2月3日 14時38分

お世話になります。
Armadillo-X2を購入し、ATDEの環境構築を行って、
X2が立ち上がるところまでできております。次に、
Raspberry PiからArmadilloへの移行をやりたい
と思っており、下記のサイトを参考にしていましたが、
エラーが出ており対処方法に困っております。
どなたか同じようなエラーを解決された方はおられませんでしょうか?
私は、ラズパイを使った機器開発をしているソフト屋ですが、
Linuxのコマンドについては、それほど詳しくない状態です。

参考にしたのは下記のサイトです。
https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…

この中の「imgファイルのrootfsを使用する場合」の箇所で、
実施した手順は下記の通りです。
手順1)
$ sudo losetup --show -f -P kernel8.img (←使用していたラズパイのイメージ)
出力結果1)
/dev/loop0
losetup: kernel8.img: Warning: file does not fit into a 512-byte sector; the end of the file will be ignored. (←Warningが出ている)

手順2)
Warningは出ていますが、/dev/loop0自体できているので、先に進めると、
下記のエラーが出ます。
$ mkdir rpi
$ sudo mount /dev/loop0 rpi
出力結果2)
mount: /home/atmark/rpi: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepae or helper program, or other error. (←errorが出ている)

なお、こちらではラズパイはラズパイ5とラズパイ4Bを使用しており、
どちらのイメージを使っても同じ結果になりました。
ラズパイのイメージが悪いような気がしますが、それを修復する方法がわかりません。

コメント

rpiのディスクイメージの構造がhowtoで想定していない状態のようです。

もともとのディスクイメージをどうやって作ったorどこからダウンロードしたものか
教えてもらえるでしょうか。
ツールを利用している場合はそのバージョンも教えてほしいです。

> rpiのディスクイメージの構造がhowtoで想定していない状態のようです。
>
> もともとのディスクイメージをどうやって作ったorどこからダウンロードしたものか
> 教えてもらえるでしょうか。
> ツールを利用している場合はそのバージョンも教えてほしいです。

https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…
「imgファイルのrootfsを使用する場合」に
>1.ATDEにRaspberry Piで使用しているimgファイルを保存します。
の記載があるので、ラズパイに挿しているSDカードに格納してあった
kernel8.imgをそのまま保存しています。

> https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…
> 「imgファイルのrootfsを使用する場合」に
> >1.ATDEにRaspberry Piで使用しているimgファイルを保存します。
> の記載があるので、ラズパイに挿しているSDカードに格納してあった
> kernel8.imgをそのまま保存しています。

いいえ、そちらではなくラズパイのSDカード自体に書き込んでいるイメージを
どう作ったのかを教えてほしいです。

> > https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…
> > 「imgファイルのrootfsを使用する場合」に
> > >1.ATDEにRaspberry Piで使用しているimgファイルを保存します。
> > の記載があるので、ラズパイに挿しているSDカードに格納してあった
> > kernel8.imgをそのまま保存しています。
>
> いいえ、そちらではなくラズパイのSDカード自体に書き込んでいるイメージを
> どう作ったのかを教えてほしいです。

コメントありがとうございます。
進展がありましたので展開します。

[前提1]
まず、
https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…
の「imgファイルのrootfsを使用する場合」に記載されている
>1.ATDEにRaspberry Piで使用しているimgファイル
が何か分からなかったので、
「SDカードのrootfsを使用する場合」にやり方を切り替えたところ、
先にお話ししていたWarningやErrorはでなくなりました。

手順1)
その上で、ご質問に対する回答ですが、
>ラズパイのSDカード自体に書き込んでいるイメージ
==>
ラズベリーパイの公式サイト(https://www.raspberrypi.com/software/)から
imager_1.8.5.exeをダウンロードし、「ラズパイ4」「ラズパイOS(Legacy=Bullseye, 64-bit)」
を選択しました。

手順2)
「SDカードのrootfsを使用する場合」は、記載の通りに実行でき、
「rootfsをPodmanのイメージとして読み込む」を実行しました。

画面出力)
「rootfsをPodmanのイメージとして読み込む」において、
#podman import /mnt/rpi_rootfs.tar rpi_image
を実行したところで、下記エラーが出ました。
Getting image source signatures
Copying blob 7cba8c809c8e done !
Error : writing blob: adding layer with blob "sha256:...(文字列省略)....."/""/"sha256:.....(文字列省略).....":
unpacking failed (error: exit status 1; output: write /usr/share/pocketsphinx/model/en-us/en-us.lm.bin: no space left on device)

このようなエラーについて、解決方法を教えてください。

> imager_1.8.5.exeをダウンロードし、「ラズパイ4」「ラズパイOS(Legacy=Bullseye, 64-bit)」
> を選択しました。

imagerを使って取得しているのですね。イメージからの抜き出しではなく
rootfsを使うのであればこちらをQAする意味は無いのですが、rpiのイメージの
パーティションオフセット等の仕様が記事作成時から変わっているかもしれません。
別途確認しておきます。

> 手順2)
> 「SDカードのrootfsを使用する場合」は、記載の通りに実行でき、
> unpacking failed (error: exit status 1; output: write /usr/share/pocketsphinx/model/en-us/en-us.lm.bin: no space left on device)

そこに書かれているようにArmadilloのeMMCの容量を超えて
読み込もうとしてeMMCの容量がなくなっています(no space left on device)

rpi_rootfs.tarの容量を知りたいので以下で確認してみてください。単位はバイトです。
もし、7Gバイト近いのであれば絶対にeMMC上に配置できないので、イメージの
ダイエットをする必要があります。
また、リモートアップデート時は2面分持つためその半分以下の3GB前後である
必要があるため、ギリギリを狙うと最初に一旦展開できても、アップデートできません。
これについてもダイエット必要なので、容量が大きければ具体的な容量やシステムの内容を
教えてください。

(rpiで意識せずに開発すると、かなり運用には不要なパッケージが入っている場合が多い
のとログ等多いので、かなりの部分を消せるとは思います。)

# tar -tvf rpi_rootfs.tar | awk '{print $3}' | paste -sd+ | bc

また、すでにArmadillo上に幾つかコンテナを作っていることで
容量を消費しているのであれば、必要なければ削除することで
広げることができます。 "podman images"の結果にコンテナが
すでに存在していれば、その名前と容量が表示されます。