ubuntu制作chroot系统镜像

这篇具有很好参考价值的文章主要介绍了ubuntu制作chroot系统镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里的使用场景是在ubuntu x64上编译arm程序,需要一个开发环境,而最省心的方式就是自己做一个arm环境的chroot镜像,然后自由用apt-get安装依赖,然后编译程序。所以这里就以制作arm镜像为例。

在我们开始之前,我们需要了解一下ARM的几种架构:
armel(abi):这个是老架构,之前的arm硬件没有浮点处理单元,所以采用软件模拟的方式进行浮点计算,兼容新架构
armhf:这个是新架构,有了独立的硬件浮点处理单元,这个不兼容老架构
arm64:这个就直接用了新架构,没有el和hf之分了
kernel、rootfs和app编译的时候,指定的必须保持一致才行

1、首先我们需要安装相关程序来支持chroot环境

sudo apt-get install qemu-user-static

如果你有现成的镜像,那么只需要安装这个就行了,然后你就可以chroot进去了

2、接着我们需要安装制作镜像所需要的工具环境

sudo apt-get install binfmt-support debootstrap qemu

这里最主要是这个debootstrap,另外两个看着办

3、然后我们利用debootstrap来制作镜像
首先我们建立一个文件夹

sudo mkdir /opt/ubuntu-arm-64

然后我们运行debootstrap来联网下载对应的ubuntu版本基础镜像来制作我们的镜像

debootstrap --arch=arm64 --foreign trusty /opt/ubuntu-arm-64 http://ports.ubuntu.com/

这里的trusty是ubuntu 14.04的版本代号,关于debootstrap支持的版本代号,可以在debootstrap的脚本目录下查看,路径为 /usr/share/debootstrap/scripts/ 这下面有很多以ubuntu代号命名的文件

4、接着我们就等待3的操作完成,然后拷贝qemu-aarch64-static 到我们镜像的bin目录

cp  /usr/bin/qemu-aarch64-static  /opt/ubuntu-arm-64/usr/bin/

这里要注意了,是aarch64,如果你是armhf环境,那么请使用【qemu-arm-static】接着我们chroot进去

sudo chroot /opt/ubuntu-arm-64

这一步的时候,你可能会遇到 "i have no name" 的情况,不要急,我们来利用debootstrap对我们的镜像进行初始化操作

debootstrap/debootstrap --second-stage

如果没找到debootstrap脚本,那么请检查步骤3中遇到的错误,可能是mount proc失败。
然后等待初始化完成,你就会发现一切ok了。

5、接着我们来编辑apt的源,方便我们安装其他依赖

deb http://ports.ubuntu.com/ trusty main restricted universe multiverse
deb-src http://ports.ubuntu.com/ trusty main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main universe

这里的trusty根据你版本的不同,可以换

6、接着就是关于chroot挂载真实系统设备到我们的虚拟系统,这个需要在chroot之前调用挂载,作用是比如你想多线程编译 make -j4 那么你就需要运行下面的脚本,挂载设备

#!/bin/bash
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -t devpts pts dev/pts/

参考:
http://www.360doc.com/showweb/0/0/804170657.aspx
https://wiki.debian.org/EmDebian/CrossDebootstrap
https://linux.cn/article-4936-1.html文章来源地址https://www.toymoban.com/news/detail-655367.html

到了这里,关于ubuntu制作chroot系统镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用ubuntu-base制作根文件系统

    1 :ubuntu官网下载最小根文件系统: 放置到电脑的ubuntu中, Mkdir Ubuntu_rootfs Cd Ubuntu_rootfs Sudo tar –zxvf Ubuntu-bash-xxxxxx.tar.gz 2 :电脑的ubuntu安装qemu搭建arm模拟系统 将/usr/bin/qemu-arm-static/(64位拷贝)qemu-aachr64-static到解压的目录中的/usr/bin中 sudo apt install qemu-user-static sudo /usr/bin/qemu-

    2024年02月14日
    浏览(40)
  • ubuntu 20.04 使用systemback自定义系统镜像和系统备份

    Systemback是一个简单的系统备份和恢复应用程序,根据GPLv3许可条款发布。 Systemback的功能包括: 创建系统备份和用户配置文件。 将系统还原到以前的状态,就像Virtualbox的快照功能一样。 从现有安装创建可启动ISO文件。 将系统从一个分区复制到另一个分区。 升级软件。 16.

    2024年02月04日
    浏览(51)
  • 制作RK3568 ubuntu20.04桌面版镜像

    主控: RK3568 编译主机: Ubuntu 20.04 AMD64 目标版本: Ubuntu 20.04      RK3568 是极具性价比的高能国产“芯“ , 是Rockchip面向与AIOT和工业市场打造的一款高性能、低功耗、功能丰富的国产化应用处理器。采用四核64位Cortex-A55架构,主频高达2.0GHz,集成Rockchip自研NPU, 1TOPS算力,满足轻

    2024年02月19日
    浏览(49)
  • 使用Windows To Go工具制作你的U盘系统【含下载Windows10系统镜像】亲测已成功23.06.21

    WinToGo是一款辅助工具:专为能够让你将系统装进U盘,移动硬盘里,让你在任意电脑都能运行U盘里装的系统! 一、下载,安装“Windows To Go”工具 1、下载Windows To Go工具 口袋系统WinToGo: 安装Win 10到U盘    2、双击WinToGo.exe,完成“安装”  3、安装完成,开始菜单会生成一个W

    2024年02月17日
    浏览(50)
  • Dockerfile制作Web应用系统nginx镜像

    目录 1.所需实现的具体内容 2.编写Dockerfile Dockerfile文件内容: 默认网页内容: 3.构建镜像 4.现在我们运行一个容器,查看我们的网页是否可访问 5.现在再将我们的镜像打包并上传到镜像仓库 基于centos基础镜像。 指定作者信息。 安装nginx服务,将提供的dest目录(提供默认主页

    2024年02月12日
    浏览(35)
  • Centos7 制作系统镜像iso文件

    这部分针对有系统备份需求,防止系统遭受意外状况,无法紧急恢复。整体备份内容较大,建议考虑后再进行操作 本次使用 mondo 软件进行备份及制作镜像,基本上是一键到底 mondo 官网 1.1 安装mondo 1.2 制作备份镜像 选择备份到本地磁盘 Hard disk 选择备份路径,输入备份ISO镜像

    2024年01月15日
    浏览(61)
  • 快速简单制作macOS Ventura系统ISO格式镜像

    ISO格式的镜像其实没有什么制作难度,下面教大家怎么快速简单制作ISO格式的镜像,教程使用到的都是Mac官方的命令。制作好的ISO格式镜像可以用于虚拟机安装或者制作到U盘或者直接在Mac里面打开安装升级。   首先下载好macOS 镜像,可以下载DMG格式镜像,然后打开DMG包并把

    2024年02月14日
    浏览(49)
  • 编写Dockerfile制作Web应用系统nginx镜像

    编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下: 基于centos基础镜像; 指定作者信息; 安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录; 暴露80端口; 设置

    2024年02月11日
    浏览(41)
  • Docker | 使用Dockerfile制作镜像

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容: Docker | 使用Dockerfile制作镜像 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家访

    2024年02月04日
    浏览(44)
  • 这里做一篇关于wsl2更新到最新版本使用镜像网络,但是docker创建的容器不能被访问的问题(困扰了我一整天)

    在windows2023年9月的一次更新中,wsl2支持了新的网络模式镜像模式,他能够通过localhost地址从wsl2内部连接到windows的127.0.0.1地址 ##相当于是和本地主机拥有同一个ip 原wsl2是不支持的,虽说是net网络模式,可访问主机,主机也可访问wsl2,同时也可上网,但是不能被网络访问,如

    2024年04月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包