制作linux-Rootfs

简介: 制作linux-Rootfs

在home下新建文件夹

mkdir /home/ubuntu-rootfs
cd /home/ubuntu-rootfs

从Ubuntu官网获取裸文件系统

wget https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-amd64.tar.gz

解压下载的系统文件包

sudo tar -xzvf ubuntu-base-22.04-base-amd64.tar.gz
# 退回到上一级目录
cd ..

chroot实现文件系统隔离,需要qemu static解释器;

可能无法链接到qemu-aarch64-static, 到/usr/bin 文件下查找

sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-aarch64-static /home/ubuntu-rootfs/usr/bin/

复制网络配置文件  修改源

;不修改源后续可能无法联网

sudo cp -b /etc/resolv.conf /home/ubuntu-rootfs/etc/resolv.conf
sudo vim /home/ubuntu-rootfs/etc/apt/source.list

source.list中原有的可以注释掉,替换为

#中科大源
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main universe restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main universe restricted
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse

在 /home/ubuntu-rootfs 中编写挂载脚本

#!/bin/bash
function help() {
    echo ""
    echo "usage: ch-mount.sh [-m <path>] [-u <path>] <command> [<args>]"
    echo ""
    echo "For example: bash ch-mount.sh -m /media/sdcard/"
    echo ""
}
while getopts "m:u:" arg
do
    case $arg in
        m)
            echo "I:MOUNTING"
            sudo mount -t proc /proc ${2}proc
            sudo mount -t sysfs /sys ${2}sys
            sudo mount -o bind /dev ${2}dev
            sudo mount -o bind /dev/pts ${2}dev/pts        
            sudo chroot ${2}
            ;;
        u)
            echo "I:UNMOUNTING"
            sudo umount ${2}proc
            sudo umount ${2}sys
            sudo umount ${2}dev/pts
            sudo umount ${2}dev
            ;;
        ?)
            echo "E:Unknow parameter"
            help
            exit 1
    esac
done

执行挂载命令

sudo bash ch-mount.sh -m /home/ubuntu-rootfs/
//卸载命令
//sudo bash ch-mount.sh -u /home/ubuntu-rootfs/


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
8天前
|
Ubuntu Linux 开发工具
ubuntu linux搭建lvgl
ubuntu linux搭建lvgl
15 6
|
20天前
|
Linux
在Linux中,如何挂载一个ISO文件?
在Linux中,如何挂载一个ISO文件?
|
4月前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
166 0
|
Linux Shell
Linux 根文件系统
虚拟文件系统(VFS) 为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统——VFS(Virtual File System),为各类文件系统提供统一的操作界面和应用编程接口
Linux 根文件系统
|
Ubuntu
使用debootstrap构建制作aarch64/arm64 Debian rootfs文件系统
使用debootstrap构建制作aarch64/arm64 Debian rootfs文件系统
1480 0
|
Ubuntu Linux
Linux (Ubuntu)磁盘管理与文件压缩解压(入门必看)
Linux (Ubuntu)磁盘管理与文件压缩解压(入门必看)
|
Linux Shell 开发工具
基于busybox的Linux小系统制作 (initrd)
<span style="line-height: 22.390625px; font-family: 宋体, Arial, Helvetica, san-serif; font-size: 14px;">我们有时候有需要在busybox基础上,制作linux,可是却不知道具体怎么做,这里将对基于busybox的linux小系统制作做出详细的步骤说明。</span><br style="lin
3840 0
|
Ubuntu Linux 数据安全/隐私保护
Linux学习之ubuntu文件系统
主要记录学习ubuntu的学习过程
293 0
Linux学习之ubuntu文件系统
|
存储 Linux Shell
Linux根文件系统(rootfs原理详解)(下)
Linux根文件系统(rootfs原理详解)(下)
428 0
|
存储 Linux Shell
Linux根文件系统(rootfs原理详解)(中)
Linux根文件系统(rootfs原理详解)(中)
1781 0

热门文章

最新文章