ftokioka
2024年6月14日 8時57分
abos-ctrl make-installer(Armadillo-640)で異常となる現象が発生しました。
BaseOSのディスクイメージのバージョンは、下記を使用しております。
baseos-600-installer-3.19.1-at.2.img
USBにar640-bto-installer.imgを出力するにあたり、下記のエラーとなりました。原因と対策はわかりますでしょうか?
armadillo:~# mount /dev/sda1 /mnt
armadillo:~# abos-ctrl make-installer --output /mnt/ar640-bto-installer.img
WARNING: using emmc for podman-storage is a development option and not supported for production
WARNING: consider switching back to tmpfs with 'abos-ctrl podman-storage --tmpfs' first
Continue building image? [y/N]
y
An installer system is already available on image file. Use it? [Y/n]
y
Would you like to create a windows partition?
That partition would only be used for customization script at the end of
install, leave at 0 to skip creating it.
Custom partition size (MB, [0] or 16 - 53): y
Please enter digits only
Checking and growing installer main partition
Resize device id 1 (/dev/loop0p1) from 394.00MiB to max
Copying boot image
Copying rootfs
Copying appfs
At subvol app/snapshots/volumes
At subvol app/snapshots/boot_volumes
At subvol app/snapshots/boot_containers_storage
At subvol app/snapshots/containers_storage
Terminating, cleaning up...
lzop: short write: No space left on device
ERROR: Failed compressing or writing lzo file
コメント
ftokioka
> > lzop: short write: No space left on device
>
> このエラーは、コンテナのイメージを保存している際にディスクの容量が足りないというメッセージです。
> ここのディスクというのは、USB ディスクではなく作ろうとしているイメージのことです:abos-ctrl make-installer コマンドが自動設定したサイズが足りません。
> (細かいところまで説明すると、Armadillo Base OS のコンテナは圧縮されていて、イメージを書込みする際にも圧縮しますがその際の圧縮方式は違いますので、圧縮率の差で齟齬があります。今回不足したサイズは結局当てているだけなので、余裕を残したつもりでしたが今回は足りませんでしたね…すみません。)
>
> 対策としては abos-ctrl make-installer に「--image-size」の引数でサイズを手動に選べばいいです。
> ファイルは後で最適化されますので、多めに設定しても問題ありません。
>
> 例えば 16GB の USB メモリではこういう風に設定できます:
>
> armadillo:~# df -h /mnt > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 15G 33M 14G 1% /mnt > armadillo:~# abos-ctrl make-installer --output /mnt/bto-installer.img --image-size 13G >
>
> その際にすでに存在しているイメージを使いまわしても問題ありません。
>
>
> また、今後の対応としてはサイズを参考にしたいですが、イメージを保存できた後に以下の出力を提供していただけますでしょうか?
>
> # appfs のサイズ確認 > armadillo:~# df -h /var/app/volumes/ > Filesystem Size Used Avail Use% Mounted on > /dev/mmcblk2p5 6.5G 99M 5.9G 2% /var/app/volumes > # ネットワーク接続があれば、compsize をメモリ上にインストールして圧縮状態も確認したいです。 > # (ネットワーク接続なければスキップしてください) > # 再起動すると消えますので影響ありません(make-installer のイメージにも影響ありません) > # このコマンドはちょっと時間かかります。 > armadillo:~# apk add btrfs-compsize > armadillo:~# compsize -x /var/app/volumes/ /var/app/rollback/volumes/ /var/lib/containers/storage_readonly/ /var/lib/containers/storage/ > Processed 983 files, 1235 regular extents (1316 refs), 334 inline. > Type Perc Disk Usage Uncompressed Referenced > TOTAL 65% 92M 142M 152M > none 100% 70M 70M 74M > zstd 30% 21M 71M 78M > > # 生成したイメージをマウントして、インストーラー圧縮のサイズ確認 > armadillo:~# mount -o offset=10485760 /mnt/bto-installer.img /target/ > armadillo:~# ls -lh /target/appfs.lzo > -rw-r--r-- 1 root root 75M Jun 14 10:16 /target/appfs.lzo > armadillo:~# umount /target >
>
> お手数ですが、よろしくお願いします。
回答ありがとうございます。
確認した情報は、下記となります。
armadillo:~# df -h /var/app/volumes/
Filesystem Size Used Available Use% Mounted on
/dev/mmcblk0p5 2.7G 159.6M 2.0G 7% /var/app/volumes
armadillo:~# mount -o offset=10485760 /mnt/ar640-bto-installer.img /target/
armadillo:~# ls -lh /target/appfs.lzo
-rw-r--r-- 1 root root 130.6M Jan 1 09:22 /target/appfs.lzo
armadillo:~# umount /target
at_dominique.m…
at_dominique.m…
2024年6月14日 10時32分
ftokiokaさん
お世話になっています、
マルティネです。
> lzop: short write: No space left on device
このエラーは、コンテナのイメージを保存している際にディスクの容量が足りないというメッセージです。
ここのディスクというのは、USB ディスクではなく作ろうとしているイメージのことです:abos-ctrl make-installer コマンドが自動設定したサイズが足りません。
(細かいところまで説明すると、Armadillo Base OS のコンテナは圧縮されていて、イメージを書込みする際にも圧縮しますがその際の圧縮方式は違いますので、圧縮率の差で齟齬があります。今回不足したサイズは結局当てているだけなので、余裕を残したつもりでしたが今回は足りませんでしたね…すみません。)
対策としては abos-ctrl make-installer に「--image-size」の引数でサイズを手動に選べばいいです。
ファイルは後で最適化されますので、多めに設定しても問題ありません。
例えば 16GB の USB メモリではこういう風に設定できます:
その際にすでに存在しているイメージを使いまわしても問題ありません。
また、今後の対応としてはサイズを参考にしたいですが、イメージを保存できた後に以下の出力を提供していただけますでしょうか?
お手数ですが、よろしくお願いします。