ubuntu / debian 根文件系统制作

一、前情提要

  • 在工作中,不可避免的需要制作各种客户需要的文件系统,常用的ubuntu、debian等
  • 主要需求有:
    • 带图形化界面
    • 不带图形化界面
    • 需提前打包一些应用依赖包进去
    • 需要提前内置一些文件或开机自启执行脚本等
  • 环境:ubuntu20.04 服务器版本

一、操作流程

1.1 构建工具下载

# 切换更新源
sudo vim /etc/apt/sources.list
:%s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g
或:%s/archive.ubuntu.com/mirrors.aliyun.com/g
sudo apt-get update
sudo apt-get upgrade

sudo apt install qemu-user-static -y

  • 利用当前操作系统来运行其它架构的一个仿真模拟器,类似虚拟机。

sudo apt install debootstrap -y

  • Debian/ubuntu 制作文件系统的工具
  • 支持的发行版本可以在/usr/share/debootstrap/scripts查看
  • sudo debootstrap --arch [平台] [发行版本代号] [目录]
  • –include=systemd,systemd-coredump,makedev,locales,vim,openssh-serve,bash-completion // 定制文件系统所包含的软件包

ubuntu 20.04 版本代号 focal 查看
sudo debootstrap --foreign --verbose --arch=amd64 focal ubuntu20.04 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/

debian 12 版本代号 bookworm 查看
sudo debootstrap --foreign --verbose --arch=arm64 bookworm debian12 http://mirrors.tuna.tsinghua.edu.cn/debian/

sudo cp /usr/bin/qemu-aarch64-static debian12/usr/bin/

  • 64位 系统

sudo cp /usr/bin/qemu-arm-static debian12/usr/bin/

  • 32位 系统

sudo LC_ALL=C LANGUAGE=C LANG=C chroot debian12 /debootstrap/debootstrap --second-stage --verbose

  • 将下载的根文件系统进行一些初始化配置
  • 显示Base system installed successfully即表示初始化成功。

sudo chroot debian12

  • 切换工作目录,为后续工作准备

passwd root

  • 设置root的密码

useradd -G sudo -m -s /bin/bash user-name

  • 添加 user-name 用户,属于sudo组,并且可执行bash shell

passwd user-name

  • 为 user-name 用户添加密码

echo debian12 > /etc/hostname

  • 设置主机名,可自定义

rm debian12/usr/bin/qemu-aarch64-static

一个基本的根文件系统已经制作完成

安装需要的软件
apt install vim curl fdisk wget zip unzip openssh-server tasksel

安装图形界面所需要的库文件(可选)

  • apt update
  • 执行tasksel命令
  • 图形用户界面,操作上下键,使用空格键选择,tab键跳出

history -c

  • 清除之前的命令历史

exit

  • 退出模拟 root,进行文件系统的下一步制作。

1.2 根文件系统制作(此处rootfs即上文debian12文件夹)

# 查看文件系统的大小
du -h rootfs/
# 创建 rootfs.img 大小 1G
sudo dd if=/dev/zero of=rootfs.img bs=1M count=1024
# rootfs.img  ext4 格式化
sudo mkfs.ext4 rootfs.img
# 挂载 rootfs.img
mkdir tmp
sudo mount rootfs.img tmp
# 文件系统 拷贝
sudo cp rootfs/* tmp/ -a
# 卸载 rootfs.img
sudo umount tmp
# 删除临时文件夹
sudo rm -rf tmp
# 磁盘检查
sudo e2fsck -p -f rootfs.img
# 调整文件系统到最小值
sudo resize2fs -M rootfs.img
# 查看最终文件系统大小
ls –lht rootfs.img
# 以上为制作一个文件系统的标准操作,按说明操作即可

烧录测试 rootfs.img

你可能感兴趣的:(Linux,linux,服务器,debian,ubuntu)