ubuntu文件系统修改( for arm)
系统:ubuntu14.04
镜像:ubuntu-rootfs.img for aarch64
创建一个文件夹 ubuntu-mount
mkdir ubuntu-mount
将ubuntu-rootfs.img镜像挂载到ubuntu-mount
mount ubuntu-rootfs.img ubuntu-mount
进入ubunt-mount就可以看到文件系统的结构了。
cd ubuntu-mount
安装模拟处理器 qemu,这是一个可以模拟多种cpu构架平台的模拟器,类似于虚拟机。
详细情况可以参考官网网站https://www.qemu.org/
apt-get install qemu
复制关键文件到文件夹,根据自己系统的平台复制一份到虚拟文件系统下。
#this is for 32 bit arm system
cp /usr/bin/qemu-arm-static usr/bin/
#this is for 64 bit arm system
cp /usr/bin/qemu-aarch64-static usr/bin/
下面需要把根目录改变到ubuntu-mount上去,如果直接使用chroot的话,会存在proc已经dev下的文件无法检测到的问题,所以可以直接使用脚本 ch-mount.sh
#!/bin/bash
function mnt() {
echo "MOUNTING"
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2}dev
sudo chroot ${2}
}
function umnt() {
echo "UNMOUNTING"
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${2}dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
umnt $1 $2
else
echo ""
echo "Either 1'st, 2'nd or both parameters were missing"
echo ""
echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m /media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi
返回上一级目录,直接使用ch-mount.sh改变当前的根目录
./ch-mount.sh -m ubuntu-mount/
这个时候遇到了这个问题,就是挂载的文件系统的运行空间是按照镜像的大小来,所以无法再添加新的内容。由下图可知系统占用已满。
df -h
所以在当时在安装新的软件包的时候遇到以下的错误:
“ You don’t have enough free space in /var/cache/apt/archives/. ”
尝试使用 apt-get autoclean 和 apt-get clean都没有作用。
在这里需要重新修改镜像大小,然后重新挂载发现就可以解决问题了。
#退出当前虚拟环境
exit
#将挂载的目录取消挂载,不进行此操作会影响后续操作
./ch-mount -u ubuntu-mount
umount ubuntu-mount
修改镜像大小需要用到工具 qemu-img
apt-get install qemu-kvm
安装成功之后就可以使用qemu-img工具了,执行指令
qemu-img resize ubuntu-rootfs.img +5G
resize2fs -f ubuntu-rootfs.img
修改完大小之后,重新挂载之后检查存储设备的使用情况,发现已经有多余的空间了,接下来就可以对改文件系统进行适当的修改了。
可以自由地安装软件包
参考文献:
https://gnu-linux.org/building-ubuntu-rootfs-for-arm.html
ubuntu文件系统修改( for arm)的更多相关文章
- 使用Qemu运行Ubuntu文件系统 —— 搭建SVE学习环境(2)
开发环境 PC:ubuntu18.04 Qemu:4.1 Kernel:Linux-5.2 概述 由于要学习ARM的SVE技术,但是目前还没有支持SVE指令的板子,所以只能用Qemu来模拟,但是发现Q ...
- 使用ramdisk启动ubuntu文件系统
环境 Qemu 4.1 vexpress-ca9 概述 为了减小linux内核的大小,可以把一些外设驱动编译成内核模块,但是在启动ubuntu的时候,需要读取flash,但是此时flash的驱动模块存 ...
- I.MX6 使用Ubuntu文件系统
/********************************************************************************* * I.MX6 使用Ubuntu文 ...
- ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法
ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法 前几天卸掉了用了好多年的Windows,安装了Ubuntu12.04,就开始各种搭环境.今天装好了MySQ ...
- 怎样在 Ubuntu 中修改默认程序
导读 作为一个新手,你需要知道如何在 Ubuntu 中修改任何默认程序,这也是我今天在这篇指南中所要讲的. 对于我来说,安装 VLC 多媒体播放器是安装完 Ubuntu 16.04 该做的事中最先做的 ...
- ubuntu 下修改host文件
原文地址:http://www.cnblogs.com/kingcat/archive/2012/02/23/2364509.html 有些时候,我们需要让某些域名指向本地,来实现调试,下面介绍下ub ...
- 【Ubuntu 16】深入Ubuntu文件系统
Ubuntu文件系统的设计目的就是把文件有序地组织在一起,提供一个从逻辑上组织文件的文件系统.除了文件的组织外,文件安全也是文件系统的设计要点,所以文件的访问权限是文件系统不可缺少的组成部分 Ubun ...
- ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...
- ubuntu上修改root密码
ubuntu上修改root密码 author: headsen chen 2017-10-12 10:49:28 个人原创,转载请注明作者,出处. sudo passwd 两次输入想设置的r ...
随机推荐
- 猜数字和飞机大战(Python零基础入门)
前言 最近有很多零基础初学者问我,有没有适合零基础学习案例,毕竟零基础入门的知识点是非常的枯燥乏味的,如果没有实现效果展示出来,感觉学习起来特别的累,今天就给大家介绍两个零基础入门的基础案例:猜数字游 ...
- Netty 中的异步编程 Future 和 Promise
Netty 中大量 I/O 操作都是异步执行,本篇博文来聊聊 Netty 中的异步编程. Java Future 提供的异步模型 JDK 5 引入了 Future 模式.Future 接口是 Java ...
- Candy Distribution
Kids like candies, so much that they start beating each other if the candies are not fairly distribu ...
- Django系列操作
每次用到都去百度找....找的还不行~~得自己改~~耗时耗力虽然不难~~~直接贴代码记录下方便自己用~~~~ Django之分页 定义成一个块,直接引用到对应的位置即可... <div clas ...
- vue2.x学习笔记(十五)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12609450.html. 组件的自定义事件 这里来学习一下组件中的自定义事件. 事件名 不同于组件名和prop,事 ...
- 5. iphone 的:active样式
如果给按钮定义 :hover 样式,在 iPhone 上按钮点击一次是 hover 态,再点击一次 hover 态才会消失,这不是我们想要的,继而想通过定义 :active 样式来实现按钮按下时的效果 ...
- Canvas(3)---绘制饼状图
Canvas(3)---绘制饼状图 有关canvas之前有写过两篇文章 1.Canvas(1)---概述+简单示例 2.Canvas(2)---绘制折线图 在绘制饼状图之前,我们先要理解什么是圆弧,如 ...
- 必须先理解的RocketMQ入门手册,才能再次深入解读
RocketMQ入门手册 RocketMQ是一个分布式.队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具 ...
- 轻量级mysql安装教程-避免采坑
1:安装包获取 安装了很多次,来来回回踩,踩出了一片光明大道,简单好用. 百度网盘获取:链接:https://pan.baidu.com/s/13frFBTODaMeADZOHj5KdJQ 提取码:a ...
- Task启动方式及源码探究
启动Task有几种方式: 1.Task.Run() 2.new TaskFactory.StartNew() 3.var t=new Task(); t.start(); 平时用的最多是第一和第二种 ...