ubuntu文件系统修改( for arm)

举报
小麦大叔 发表于 2021/12/30 00:27:59 2021/12/30
【摘要】 系统:ubuntu14.04 镜像:ubuntu-rootfs.img for aarch64 创建一个文件夹 ubuntu-mount mkdir ubuntu-mount1 将ubuntu-r...

系统:ubuntu14.04

镜像:ubuntu-rootfs.img for aarch64

创建一个文件夹 ubuntu-mount

mkdir ubuntu-mount
  
 
  • 1

将ubuntu-rootfs.img镜像挂载到ubuntu-mount

mount ubuntu-rootfs.img ubuntu-mount
  
 
  • 1

进入ubunt-mount就可以看到文件系统的结构了。

cd ubuntu-mount
  
 
  • 1

这里写图片描述

安装模拟处理器 qemu,这是一个可以模拟多种cpu构架平台的模拟器,类似于虚拟机。

详细情况可以参考官网网站https://www.qemu.org/

apt-get install qemu
  
 
  • 1

复制关键文件到文件夹,根据自己系统的平台复制一份到虚拟文件系统下。

#this is for 32 bit arm system
cp /usr/bin/qemu-arm-static usr/bin/
  
 
  • 1
  • 2
#this is for 64 bit arm system
cp /usr/bin/qemu-aarch64-static usr/bin/
  
 
  • 1
  • 2

下面需要把根目录改变到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
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

返回上一级目录,直接使用ch-mount.sh改变当前的根目录

./ch-mount.sh -m ubuntu-mount/
  
 
  • 1

这里写图片描述

这个时候遇到了这个问题,就是挂载的文件系统的运行空间是按照镜像的大小来,所以无法再添加新的内容。由下图可知系统占用已满。

df -h
  
 
  • 1

这里写图片描述

所以在当时在安装新的软件包的时候遇到以下的错误:

You don’t have enough free space in /var/cache/apt/archives/.

尝试使用 apt-get autocleanapt-get clean都没有作用。

在这里需要重新修改镜像大小,然后重新挂载发现就可以解决问题了。

#退出当前虚拟环境
exit
#将挂载的目录取消挂载,不进行此操作会影响后续操作
./ch-mount -u ubuntu-mount
umount ubuntu-mount
  
 
  • 1
  • 2
  • 3
  • 4
  • 5

修改镜像大小需要用到工具 qemu-img

apt-get install qemu-kvm
  
 
  • 1

安装成功之后就可以使用qemu-img工具了,执行指令

qemu-img resize ubuntu-rootfs.img +5G
  
 
  • 1
resize2fs -f ubuntu-rootfs.img
  
 
  • 1

修改完大小之后,重新挂载之后检查存储设备的使用情况,发现已经有多余的空间了,接下来就可以对改文件系统进行适当的修改了。

这里写图片描述

可以自由地安装软件包

这里写图片描述

参考文献:

https://gnu-linux.org/building-ubuntu-rootfs-for-arm.html

文章来源: great.blog.csdn.net,作者:小麦大叔,版权归原作者所有,如需转载,请联系作者。

原文链接:great.blog.csdn.net/article/details/78264942

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200