500M以下如何安装Debian?

500M以下如何安装Debian?

是否可以搭建500M以下apt的Debian系统?我尝试使用 Debian 的网络安装程序并选择了最准系统的设置(实际上什么也没安装)。然后启动并删除一些非必需的软件包。我将系统的包数量减少到大约 160 个。不过,操作系统仍然超过 1G:bashsystemd

$ df -h
Filesystem     Size  Used Avail Use% Mounted on
udev           2.1G     0  2.1G   0% /dev
tmpfs          414M  5.6M  409M   2% /run
/dev/sda1       13G  1.1G   11G  10% /
tmpfs          2.1G     0  2.1G   0% /dev/shm
tmpfs          5.3G     0  5.3G   0% /run/lock
tmpfs          2.1G     0  2.1G   0% /sys/fs/cgroup

为什么 /dev 这么大?

我尝试了一堆微型操作系统但他们有奇怪/令人困惑的包管理,和/或奇怪/令人困惑的方法来启用持久文件系统,或者有损坏/令人困惑的安装程序。我只需要一个超小型的 Debian 操作系统。

答案1

debootstrap 可以传递一个变体;目前 (2020-08-19) Arm64 Debian 10 的 minbase 变体为 184MB,不含内核,约为 18MB,不含 systemd,以及之后的apt-get clean.

有一些针对小型 GNU/Linux 的项目

  • OSMC为300MB,
  • Alpine Linux 为 130 MB
  • Termux 为 69 MB
  • 该死的小Linux只有50MB
  • dd-wrt ​​Mega 为 26MB

还有一些关于自己制作的指南(例如 Linux From Scratch)。

可以排除 Debian 软件包,并且可以配置内核以进一步减少。问题是,一旦有人想做某事,就会发现自己正在安装大型软件包。

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn | head
15200   coreutils
9805    perl-base
9746    libc6
6673    dpkg
6482    bash
4106    util-linux
3944    apt
3098    libapt-pkg5.0
3064    libc-bin
3036    tzdata

上面清楚地说明了为什么小型发行版使用 BusyBox、自定义包管理器并避免运行时(perl/python/php/etc)

但对于 16 TB 驱动器和 TB NVMe 来说,分布大小对于容器或嵌入式工作之外的人员来说并不重要。

答案2

不是一个功能齐全的系统。

# debootstrap buster /var/tmp/bustertest
# chroot /var/tmp/bustertest apt update
# chroot /var/tmp/bustertest apt install linux-image-amd64
# chroot /var/tmp/bustertest apt policy systemd
systemd:
  Installed: 241-7~deb10u4
  Candidate: 241-7~deb10u4
  Version table:
 *** 241-7~deb10u4 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
# du -hsx /var/tmp/bustertest
651M    /var/tmp/bustertest

该安装唯一缺少的就是grub能够启动它,而且这是很小的。但这仍然超过了您的 500M 目标。

没有内核的话,它达到了365M。

为什么 /dev 这么大?

因为它不在磁盘上,而是在内存中 - 所以它反映了您的 RAM 大小,与/sys/fs/cgroup实际情况相同。

相关内容