Trying to squeeze Debian rootfs into 128 MB NAND storage. November 01, 2020 03:49PM |
Registered: 5 years ago Posts: 27 |
debootstrap --arch=armel --variant=minbase stretch . http://SomeDebianMirrorCreated a rootfs that was still much too big. Somewhere near 250 MB+ if memory serves. After some research I found that Debian produces a slimmed down rootfs for docker that is small enough, but lacks several components to run on actual hardware as there's no init system, no kernel, and no networking, After still more hours of work/research I added back the missing components and was surprised the whole rootfs was roughly ~85 MB total uncompressed (24 MB compressed). I've taken the liberty of uploading it here:
apt list --installed Listing... Done adduser/now 3.115 all [installed,local] apt/now 1.4.10 armel [installed,local] base-files/now 9.9+deb9u13 armel [installed,local] base-passwd/now 3.5.43 armel [installed,local] bash/now 4.4-5 armel [installed,local] bsdutils/now 1:2.29.2-1+deb9u1 armel [installed,local] busybox/now 1:1.22.0-19+b3 armel [installed,local] coreutils/now 8.26-3 armel [installed,local] cpio/now 2.11+dfsg-6 armel [installed,local] dash/now 0.5.8-2.4 armel [installed,local] debconf/now 1.5.61 all [installed,local] debian-archive-keyring/now 2017.5+deb9u1 all [installed,local] debianutils/now 4.8.1.1 armel [installed,local] dialog/now 1.3-20160828-2 armel [installed,local] diffutils/now 1:3.5-3 armel [installed,local] dpkg/now 1.18.25 armel [installed,local] dropbear-bin/now 2016.74-5+deb9u1 armel [installed,local] dropbear-initramfs/now 2016.74-5+deb9u1 all [installed,local] dropbear-run/now 2016.74-5+deb9u1 all [installed,local] e2fslibs/now 1.43.4-2+deb9u2 armel [installed,local] e2fsprogs/now 1.43.4-2+deb9u2 armel [installed,local] findutils/now 4.6.0+git+20161106-2 armel [installed,local] gcc-6-base/now 6.3.0-18+deb9u1 armel [installed,local] gpgv/now 2.1.18-8~deb9u4 armel [installed,local] grep/now 2.27-2 armel [installed,local] gzip/now 1.6-5+b1 armel [installed,local] hostname/now 3.18+b1 armel [installed,local] ifupdown/now 0.8.19 armel [installed,local] init-system-helpers/now 1.48 all [installed,local] initramfs-tools/now 0.130 all [installed,local] initramfs-tools-core/now 0.130 all [installed,local] initscripts/now 2.88dsf-59.9 armel [installed,local] insserv/now 1.14.0-5.4+b1 armel [installed,local] iproute2/now 4.9.0-1+deb9u1 armel [installed,local] isc-dhcp-client/now 4.3.5-3+deb9u1 armel [installed,local] isc-dhcp-common/now 4.3.5-3+deb9u1 armel [installed,local] klibc-utils/now 2.0.4-9 armel [installed,local] kmod/now 23-2 armel [installed,local] libacl1/now 2.2.52-3+b1 armel [installed,local] libapt-pkg5.0/now 1.4.10 armel [installed,local] libattr1/now 1:2.4.47-2+b2 armel [installed,local] libaudit-common/now 1:2.6.7-2 all [installed,local] libaudit1/now 1:2.6.7-2 armel [installed,local] libblkid1/now 2.29.2-1+deb9u1 armel [installed,local] libbz2-1.0/now 1.0.6-8.1 armel [installed,local] libc-bin/now 2.24-11+deb9u4 armel [installed,local] libc6/now 2.24-11+deb9u4 armel [installed,local] libcap-ng0/now 0.7.7-3+b1 armel [installed,local] libcomerr2/now 1.43.4-2+deb9u2 armel [installed,local] libdb5.3/now 5.3.28-12+deb9u1 armel [installed,local] libdebconfclient0/now 0.227 armel [installed,local] libdns-export162/now 1:9.10.3.dfsg.P4-12.3+deb9u7 armel [installed,local] libelf1/now 0.168-1 armel [installed,local] libfdisk1/now 2.29.2-1+deb9u1 armel [installed,local] libgcc1/now 1:6.3.0-18+deb9u1 armel [installed,local] libgcrypt20/now 1.7.6-2+deb9u3 armel [installed,local] libgpg-error0/now 1.26-2 armel [installed,local] libisc-export160/now 1:9.10.3.dfsg.P4-12.3+deb9u7 armel [installed,local] libklibc/now 2.0.4-9 armel [installed,local] libkmod2/now 23-2 armel [installed,local] liblz4-1/now 0.0~r131-2+b1 armel [installed,local] liblzma5/now 5.2.2-1.2+b1 armel [installed,local] libmnl0/now 1.0.4-2 armel [installed,local] libmount1/now 2.29.2-1+deb9u1 armel [installed,local] libncurses5/now 6.0+20161126-1+deb9u2 armel [installed,local] libncursesw5/now 6.0+20161126-1+deb9u2 armel [installed,local] libpam-modules/now 1.1.8-3.6 armel [installed,local] libpam-modules-bin/now 1.1.8-3.6 armel [installed,local] libpam-runtime/now 1.1.8-3.6 all [installed,local] libpam0g/now 1.1.8-3.6 armel [installed,local] libpcre3/now 2:8.39-3 armel [installed,local] libprocps6/now 2:3.3.12-3+deb9u1 armel [installed,local] libselinux1/now 2.6-3+b3 armel [installed,local] libsemanage-common/now 2.6-2 all [installed,local] libsemanage1/now 2.6-2 armel [installed,local] libsepol1/now 2.6-2 armel [installed,local] libsmartcols1/now 2.29.2-1+deb9u1 armel [installed,local] libss2/now 1.43.4-2+deb9u2 armel [installed,local] libssl1.0.2/now 1.0.2u-1~deb9u2 armel [installed,local] libstdc++6/now 6.3.0-18+deb9u1 armel [installed,local] libsystemd0/now 232-25+deb9u12 armel [installed,local] libtinfo5/now 6.0+20161126-1+deb9u2 armel [installed,local] libudev1/now 232-25+deb9u12 armel [installed,local] libustr-1.0-1/now 1.0.4-6 armel [installed,local] libuuid1/now 2.29.2-1+deb9u1 armel [installed,local] linux-base/now 4.5 all [installed,local] linux-image-4.20.6-kirkwood-tld-1/now 1.0 armel [installed,local] login/now 1:4.4-4.1 armel [installed,local] lsb-base/now 9.20161125 all [installed,local] mawk/now 1.3.3-17+b3 armel [installed,local] mount/now 2.29.2-1+deb9u1 armel [installed,local] multiarch-support/now 2.24-11+deb9u4 armel [installed,local] ncurses-base/now 6.0+20161126-1+deb9u2 all [installed,local] ncurses-bin/now 6.0+20161126-1+deb9u2 armel [installed,local] net-tools/now 1.60+git20161116.90da8a0-1 armel [installed,local] netbase/now 5.4 all [installed,local] passwd/now 1:4.4-4.1 armel [installed,local] perl-base/now 5.24.1-3+deb9u7 armel [installed,local] procps/now 2:3.3.12-3+deb9u1 armel [installed,local] sed/now 4.4-1 armel [installed,local] sensible-utils/now 0.0.9+deb9u1 all [installed,local] startpar/now 0.59-3.1 armel [installed,local] sysv-rc/now 2.88dsf-59.9 all [installed,local] sysvinit-core/now 2.88dsf-59.9 armel [installed,local] sysvinit-utils/now 2.88dsf-59.9 armel [installed,local] tar/now 1.29b-1.1 armel [installed,local] tzdata/now 2020a-0+deb9u1 all [installed,local] u-boot-tools/now 2016.11+dfsg1-4 armel [installed,local] udev/now 232-25+deb9u12 armel [installed,local] util-linux/now 2.29.2-1+deb9u1 armel [installed,local] zlib1g/now 1:1.2.8.dfsg-5 armel [installed,local]
docker pull debian@sha256:ee521e00a735696b1d44cb15620e924bd6f2e9b69553ce873f8efc0a567f376bPull up the Image ID of the container you just downloaded:
sudo docker images -aSave it as a tar archive:
docker save -o SomeName.tar IMAGE-IDOnce you extract the archive, there should be a file called "layer.tar" inside. That's the base rootfs archive that's used (~53 MB). This will need to be copied over to an Armel based system.
dd if=/dev/zero of=ImageName.img bs=1M count=200 status=progress mkfs.ext3 ImageName.img mount -o loop ImageName.img SomeMountPoint/
cp layer.tar SomeMountPoint/ cd SomeMountPoint/ tar -xvf layer.tar
busybox_1.22.0-19+b3_armel.deb cpio_2.11+dfsg-6_armel.deb dialog_1.3-20160828-2_armel.deb dropbear-bin_2016.74-5+deb9u1_armel.deb dropbear-initramfs_2016.74-5+deb9u1_all.deb dropbear-run_2016.74-5+deb9u1_all.deb ifupdown_0.8.19_armel.deb initramfs-tools_0.130_all.deb initramfs-tools-core_0.130_all.deb initscripts_2.88dsf-59.9_armel.deb insserv_1.14.0-5.4+b1_armel.deb iproute2_4.9.0-1+deb9u1_armel.deb isc-dhcp-client_4.3.5-3+deb9u1_armel.deb isc-dhcp-common_4.3.5-3+deb9u1_armel.deb klibc-utils_2.0.4-9_armel.deb kmod_23-2_armel.deb libdns-export162_9.10.3.dfsg.P4-12.3+deb9u7_armel.deb libelf1_0.168-1_armel.deb libisc-export160_9.10.3.dfsg.P4-12.3+deb9u7_armel.deb libklibc_2.0.4-9_armel.deb libkmod2_23-2_armel.deb libmnl0_1.0.4-2_armel.deb libncurses5_6.0+20161126-1+deb9u2_armel.deb libprocps6_3.3.12-3+deb9u1_armel.deb libssl1.0.2_1.0.2u-1~deb9u2_armel.deb linux-base_4.5_all.deb netbase_5.4_all.deb net-tools_1.60+git20161116.90da8a0-1_armel.deb procps_3.3.12-3+deb9u1_armel.deb startpar_0.59-3.1_armel.deb sysvinit-core_2.88dsf-59.9_armel.deb sysv-rc_2.88dsf-59.9_all.deb u-boot-tools_2016.11+dfsg1-4_armel.deb udev_232-25+deb9u12_armel.deb
In the root of SomeMountPoint: mkdir dev/pts touch dev/urandom mount -t proc /proc/ proc/ mount devpts dev/pts/ -t devpts mount --bind /dev/urandom dev/urandom chroot . /bin/bash
/etc/network/interfaces /etc/fw_env.config /etc/fstabThese can be copied over from Bodhi's rootfs without issue.
passwd
exit umount proc/ umount dev/pts umount dev/urandom cd .. umount SomeMountPoint
Re: Trying to squeeze Debian rootfs into 128 MB NAND storage. November 01, 2020 05:59PM |
Registered: 5 years ago Posts: 125 |
Re: Trying to squeeze Debian rootfs into 128 MB NAND storage. November 01, 2020 07:01PM |
Registered: 5 years ago Posts: 27 |
Re: Trying to squeeze Debian rootfs into 128 MB NAND storage. November 02, 2020 07:13PM |
Registered: 5 years ago Posts: 125 |
Re: Trying to squeeze Debian rootfs into 128 MB NAND storage. November 02, 2020 07:48PM |
Admin Registered: 13 years ago Posts: 18,841 |
Re: Trying to squeeze Debian rootfs into 128 MB NAND storage. November 04, 2020 11:54AM |
Registered: 5 years ago Posts: 27 |