[教程]制作Ubuntu精简版
2023-11-8 230

本文教大家如何利用Ubuntu Base镜像文件和kernel构建属于自己的Ubuntu精简版。

本贴以制作Ubuntu 22.04.3为例。

准备

在你的Windows电脑中安装VMware workstation虚拟机软件,安装任意发行版Linux,例如Ubuntu Server系列;

登录Linux,准备一个文件夹用于制作,这里举例使用/data目录,rootfs用于放置根文件系统

mkdir /data/rootfs -p
cd /data/rootfs

image.webp

下载Ubuntu Base

下载地址:Index of /ubuntu-base/releases

选择你需要的发行版,这里选择22.04.3,点击release

image.webp

image.webp

右键复制链接,下载到rootfs目录

wget http://cdimage.ubuntu.com/ubuntu-base/releases/22.04.3/release/ubuntu-base-22.04.3-base-amd64.tar.gz -C /data/rootfs

image.webp

解压缩

tar -zxf ubuntu-base-22.04.3-base-amd64.tar.gz
#也可以删除tar.gz文件,我这里是移动到上层目录/data
mv ubuntu-base-22.04.3-base-amd64.tar.gz ..

image.webp

定制根文件系统

软件源

默认的/etc/apt/sources.list内容都是指向Ubuntu官网,但在中国大陆访问Ubuntu官方源的速度比较慢,建议更换为中国大陆一些公司对外提供的软件源,例如阿里云:

Ubuntu 22.04 的代号是Jammy

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

有小伙伴会问,为啥你这里只有这两行,因为其他源对于我们这种极度精简的根文件系统来说没有必要,添加了反而成为负担。

image.webp

DNS域名解析

默认的DNS服务器是空的,需要我们手动指定

echo "nameserver 8.8.8.8"  > etc/resolv.conf

image.webp

灵活定制预装软件

设置了软件源和DNS后,我们就可以愉快的使用apt命令来安装和更新软件啦。

此处内容隐藏,回复后可见!立即回复  回复后请刷新页面!刷新

 

启动文件制作

如果此时打包,并配合kernel启动后是无法启动根文件系统的,kernel会报错崩溃,这时需要先创建init启动文件。

我们直接使用vi或者vim工具创建一个文件,vi编辑器的用法我不想多说,网上有相关教程

vim init

按 i 键,写入以下内容:

此处内容隐藏,登录后可见!立即登录  登录后请刷新页面!刷新

按 :x 保存并退出

image.webp

还需要给init文件可执行权限

chmod +x init

清理垃圾文件

如果此时直接打包,会发现体积还是比较大,所以建议清理垃圾文件。

优雅方式

apt-get clean

暴力方式

在chroot之后,执行:

此处内容隐藏,回复后可见!立即回复  回复后请刷新页面!刷新

这样清理过后,根文件系统的体积会小很多,而且对系统并不会产生坏的影响。

构建根文件系统

构建并压缩

保证当前目录是/data/rootfs,使用以下命令开始打包构建

find . | cpio -o -H newc | gzip -9 > ../initrd.gz

image.webp

得到了29MB大小的根文件系统压缩包,此时可以配合你编译好的Linux kernel进行启动啦。

 

解压命令

gzip -d initrd.gz
cpio -idm < initrd

 

启动测试

我们用Qemu模拟启动

image.webp

qemu-boot.gif

不错,可以正常启动shell

最后于 4天前 被caocaofff编辑 ,原因:
收藏
点赞
道具卡
分享
哈哈😊
最新回复 (7)
  • avatar image
    wanglj 28天前

    👍牛人厉害啊 !感谢支持!

    安静随和与世无争
  • avatar image
    wanglj 28天前

    这么快就出文档了效率很高 😁

    安静随和与世无争
  • avatar image
    cchh543 25天前

    真的是牛人

    pecmd@hh
  • avatar image
    minigg 23天前

    好好好,学废了,可以定制想要的功能进去了

  • avatar image
    minigg 4天前

    制作了好多次,始终领悟不到版主的精简版的精髓,提出来的initrd.gz都在80多90M

  • avatar image
    caocaofff 4天前
    楼主   7
    minigg 制作了好多次,始终领悟不到版主的精简版的精髓,提出来的initrd.gz都在80多90M

    删除apt缓存

    哈哈😊
  • avatar image
    Win78102006 2天前

    厉害,学废了

    qwq
返回