Debian 新版本的资源最小化要求越来越高,现在最新 Bookworm 已经无法在 128MB 内存的小鸡上安装和运行了。。。。
研究了几天,终于把裁剪内核和最小化DD底包搞出来了,内核 10MB 左右,可在 128MB 内存小鸡上平稳运行;DD底包 80MB 左右,安装后硬盘占用 210MB左右。。。。
一、裁剪内核
- File: linux-image-6.5.10_6.5.10-1_amd64.deb
- SHA256: a3f62b4d45ffcfab93c581fe8e24ad1713b1dbc5989075af00cfec29b3556650
- URL: 点击下载
- 警告: 内存最小需求为 80MB,64MB内存小鸡不要去尝试;仅支持EXT4文件系统;不支持LVM;仅支持KVM/Xen/Hyper-V/VMware/VBox,OVZ和LXC的小鸡不支持换内核别费劲折腾!!!
二、最小化DD底包
- File: debian_20231130.gz
- SHA256: 0bd65aa4d8b2976cac9b93f70ca53b020cda020ab30b25c05c0b0ad8bdbb17d4
- URL: 点击下载
- root密码: abcd@1234
- 警告: 仅支持基于DHCP的IPv4地址,静态IPv4和IPv6需要DD完手工配置;确定你会用DD底包再去搞!!!
-
简易教程:
一、 仅使用内核
说明:既然官方内核可以正常引导系统就没啥必要使用这个裁剪内核了,除非是为了少占用点儿内存和磁盘空间;可以先试试官方cloud内核,如果觉得还是占用空间大再考虑这个裁剪版的;
使用SFPT或其他方式上传裁剪内核deb文件到vps,然后
$ sudo apt-get install xxxxx.deb
然后重启;
不出意外此时应该使用的就是裁剪内核了,SSH登陆后的提示信息里面会显示当前内核;
也可以用 uname -r 命令确认一下;
然后可以选择移除旧内核腾出磁盘空间:
$ dpkg --list | grep linux-image
查出都有哪些旧内核,然后先移除下面这些,你机器上可能只有下面的 1 个或 2 个,反正执行一下也没啥副作用:
$ sudo apt-get purge linux-image-amd64 linux-image-cloud-amd64 linux-image-arm64 linux-image-cloud-arm64
然后移除所有旧内核:
$ sudo apt-get purge 旧内核1 旧内核2 旧内核3....
基本就差不多了,可以更新一下内存文件系统镜像和grub配置文件:
$ sudo update-initramfs -u
$ sudo update-grub
再重启一下子试试一切正常就OK了。二、使用DD底包
说明:此种方式适用于小鸡内存太小从面板中直接安装Debian12后,启动系统直接内核崩溃无法正常启动;或者是磁盘空间比较小想用个极致精简版的Debian12系统;
必须条件:小鸡面板上有VNC, 没有VNC会比较麻烦
步骤:
a. 首先记录下小鸡的ip/netmask/gateway地址;
b. 然后看看小鸡面板中有没有提供ISO挂载,提供了哪些ISO,如果提供了ISO挂载那么随便挂载个alpine、netboot.xyz 或者任意的 LiveCD 什么的都行;
c. 如果没有提供ISO挂载功能,就只能通过iPXE或grub直接加载netboot.xyz然后通过netboot.xyz再网络引导个alpine什么的;
d. 使用步骤 2 或 3 的方式进入到alpine或其他系统后,先连上网,用ifconfig命令就行,总之DD操作必须在一个可联网的环境中才行:
$ ifconfig -a # 查看小鸡网络接口,一般是eth0或者ensxxx这种
$ ifconfig eth0 小鸡IP netmask 小鸡子网掩码 # 设置IP
$ route add default gw 小鸡网关 # 设置网关
$ echo 'nameserver 8.8.8.8' > /etc/resolv.conf # 设置DNS
e. 联网后可以开始DD了,以alpine为例:
先看一下你的小鸡磁盘是哪个:
$ lsblk
例如看到你的磁盘是vda, 那么下面命令随便选一个执行就好,DD包地址换成我帖子中提供的DD包下载地址即可:
$ curl -s -L http://x.x.x.x/debian.gz | gzip -dc | dd of=/dev/vda iflag=fullblock bs=8M
$ wget -qO - http://x.x.x.x/debian.gz | gzip -dc | dd of=/dev/vda iflag=fullblock bs=8M
此过程依赖网速,完成后直接reboot应该就可以进入到这个精简Debian12系统;
分区大小和文件系统会根据磁盘大小自动扩容;
登录系统后在cat /etc/network/interfaces文件里面修改eth0为静态IP地址即可,有IPv6的也在这里添加上;
然后重启,验证下确实没啥问题就可以正常使用了,内存不足以运行apt-get install命令安装软件包的小鸡可以临时添加个swap文件:
$ dd if=/dev/zero of=/swap bs=1M count=512 && chmod 600 /swap && mkswap /swap && swapon /swap
或者可以考虑用zram压缩内存:
$ apt-get install zram-tools
$ systemctl status zramswap.service
文章评论