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

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux 文件系统制作方法有很多,常见的有以下几种: 1. 使用已有的 Linux 发行版镜像,如 DebianUbuntu、CentOS 等 2. 使用操作系统安装工具,如 debootstrap、yum 等 3. 手动构建,在纯净系统中手动安装基本系统和必要软件,适用于需要定制系统的场景。 具体的制作过程取决于使用的方法,建议您搜索相关教程或询问更专业的人员。 ### 回答2: Linux文件系统Linux系统的核心。当一个Linux系统启动时,它会首先加载文件系统,该文件系统包含了内核驱动程序和其他文件,这些文件为系统中所有进程和服务提供支持。 制作Linux文件系统的过程通常分为以下三个步骤: 1.选择Linux发行版 制作Linux文件系统的第一步是选择一个Linux发行版,因为Linux发行版提供了包含内核和大量软件的完整操作系统,可以作为我们制作文件系统的基础。最流行的Linux发行版包括Red Hat、DebianUbuntu等等。 2.安装基本包 第二步是安装基本的Linux包,这些包包括像binutils、coreutils、findutils、glibc、grep、sed、tar、bash等工具。这些工具是Linux中必不可少的,因为它们为系统提供了标准的命令行工具和库。 3.安装必要的软件包 第三步是安装我们需要的软件包,这些软件包包括Apache、MySQL、PostgreSQL、PHP、Python等等。这些软件包提供了我们在这个Linux系统上运行的应用程序和服务。 在制作Linux文件系统的过程中,我们应该考虑以下几个因素: 1.文件系统 我们可以选择一个合适的文件系统,通常是EXT4。EXT4是一个快速并且安全的文件系统,适用于大多数的Linux系统。 2.内核配置 Linux内核提供了大量的选项来定制我们的系统,我们可以通过内核配置文件自定义内核并增加适应性。在内核配置时,我们应该据自己的需求进行选择,以确保我们的文件系统能够顺利地运行。 3.调整系统设置 我们还需要调整系统设置,以确保系统在运行时能够最大化效率。这包括在/etc/fstab文件中添加挂载点、在/etc/sysctl.conf文件中添加内核参数和在/etc/hosts中添加主机名等。 总之,在制作Linux文件系统时,我们需要严格控制所有组件的配置、组合等元素,以确保它们在部署后能够稳定地运行。 ### 回答3: Linux文件系统是一个在启动Linux系统时必要的部分。在Linux系统中,文件系统扮演着存储系统文件、部分二进制程序和一些必要的库文件的角色。它的制作是系统启动的一个必要的流程,因此对Linux系统的运行至关重要。 我们制作Linux文件系统的具体步骤如下: 1.创建一个文件系统的设置目录: 为了创建文件系统,我们需要先创建一个保存整个文件树的目录。这个目录是整个文件系统目录的一个虚拟影像。我们创建这个目录并命名为“rootdir”。 mkdir rootdir 2.添加必要的文件和目录: 接下来,我们需要将一些必要的文件和目录添加到rootdir中,包括“/dev”,“/tmp”和“/proc”等目录,它们都是操作Linux系统所必需的目录。这一步有些繁琐而且需要一定的Linux操作技能。 3.编辑并生成文件系统配置文件: 现在我们需要创建文件系统的配置文件。这个文件是存储我们之前所做的设置的基础,用于生成文件系统。 下面是一个示例配置文件: IMAGE_ROOTFS_TYPE="ext4" IMAGE_ROOTFS_EXTRA_SPACE=0 IMAGE_ROOTFS_SIZE="" IMAGE_ROOTFS_BLOCKSIZE=4096 IMAGE_ROOTFS_INODE_SIZE=256 使用您选择的文本编辑器,您需要编辑该文件,以便它与您的所需的设置相匹配。 4.使用genext2fs或其他工具生成文件系统: 一旦配置文件完成,我们将使用genext2fs或其他工具据配置文件生成文件系统。例如: sudo genext2fs -b $IMAGE_ROOTFS_BLOCKSIZE -i $IMAGE_ROOTFS_INODE_SIZE -M "/" -N $IMAGE_ROOTFS_BLOCK_COUNT -m ${IMAGE_ROOTFS_EXTRA_SPACE} -d rootdir/ $ROOTFS_IMAGE 此命令创建一个名为ROOTFS_IMAGE的文件系统。 以上就是制作Linux文件系统的基本步骤。当您成功创建一个文件系统时,它将允许您运行一些基本的Linux命令,并开始在您的计算机上运行Linux系统。但请注意,在此过程中涉及到许多细节和配置,并需要一定的Linux操作经验,否则可能会遇到一些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值