zoukankan      html  css  js  c++  java
  • 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 autocleanapt-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

  • 相关阅读:
    Docker决战到底(三) Rancher2.x的安装与使用
    golang实现给图片加水印
    golang实现图片水印效果
    百度ueditor 编辑器使用问题收集
    重要的文件和数据,别放在/tmp下
    在CentOS 7上切换默认的java版本
    [转载]Centos和RedHat的区别和联系
    在Excel的公式框内输入换行符
    Outlook打不开,报错信息为“The time limit for logging on was reached while waiting for system resources. Try again. MAPI 1.0 [000004C2]”
    VMXNET3与E1000E与E1000的比较
  • 原文地址:https://www.cnblogs.com/unclemac/p/12783431.html
Copyright © 2011-2022 走看看