Buildroot 扩展文件系统大小

简介: Buildroot 扩展文件系统大小

平台


 Ubuntu 16.04 + Buildroot-2021.02


问题


mkdir -p /home/anson/codes/buildroot-2021.02/output/images
rm -rf /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2
mkdir -p /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2
rsync -auH --exclude=/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM /home/anson/codes/buildroot-2021.02/output/target/ /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target
echo '#!/bin/sh' > /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
echo "set -e" >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
echo "chown -h -R 0:0 /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target" >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
PATH="/home/anson/codes/buildroot-2021.02/output/host/bin:/home/anson/codes/buildroot-2021.02/output/host/sbin:/home/anson/bin:/home/anson/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" /home/anson/codes/buildroot-2021.02/support/scripts/mkusers /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/full_users_table.txt /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
echo "/home/anson/codes/buildroot-2021.02/output/host/bin/makedevs -d /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/full_devices_table.txt /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target" >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
printf '   \n' >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
printf '   \n' >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
printf '    rm -f /home/anson/codes/buildroot-2021.02/output/images/rootfs.ext2\n /home/anson/codes/buildroot-2021.02/output/host/sbin/mkfs.ext2 -d /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target -r 1 -N 0 -m 5 -L "rootfs" -O ^64bit /home/anson/codes/buildroot-2021.02/output/images/rootfs.ext2 "64M" || { ret=$?; echo "*** Maybe you need to increase the filesystem size (BR2_TARGET_ROOTFS_EXT2_SIZE)" 1>&2; exit $ret; }\n' >> /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
chmod a+x /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
PATH="/home/anson/codes/buildroot-2021.02/output/host/bin:/home/anson/codes/buildroot-2021.02/output/host/sbin:/home/anson/bin:/home/anson/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" FAKEROOTDONTTRYCHOWN=1 /home/anson/codes/buildroot-2021.02/output/host/bin/fakeroot -- /home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/fakeroot
rootdir=/home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/ext2/target
table='/home/anson/codes/buildroot-2021.02/output/build/buildroot-fs/full_devices_table.txt'
mke2fs 1.45.6 (20-Mar-2020)
Creating regular file /home/anson/codes/buildroot-2021.02/output/images/rootfs.ext2
Creating filesystem with 65536 1k blocks and 16384 inodes
Filesystem UUID: 7882b549-c37b-4741-9546-c893e7457164
Superblock backups stored on blocks: 
  8193, 24577, 40961, 57345
Allocating group tables: done                            
Writing inode tables: done                            
Copying files into the device: __populate_fs: Could not allocate block in ext2 filesystem while writing file "modules"
mkfs.ext2: Could not allocate block in ext2 filesystem while populating file system
*** Maybe you need to increase the filesystem size (BR2_TARGET_ROOTFS_EXT2_SIZE)
fs/ext2/ext2.mk:46: recipe for target '/home/anson/codes/buildroot-2021.02/output/images/rootfs.ext2' failed
make[1]: *** [/home/anson/codes/buildroot-2021.02/output/images/rootfs.ext2] Error 1
Makefile:84: recipe for target '_all' failed
make: *** [_all] Error 2


 前面的编译过程没有的报错, 所以基本判断可以从Maybe you need to increase the filesystem size (BR2_TARGET_ROOTFS_EXT2_SIZE)


解决


 查看当前配置(.config):


BR2_TARGET_ROOTFS_EXT2_SIZE="64M"


 改为:


BR2_TARGET_ROOTFS_EXT2_SIZE="256M"


 产生这个问题的原因是尝试加入了OPENJDK的环境导致系统文件增加(rootfs.ext2), 最终超出了指定的镜像文件大小.


 修改后:


~/codes/buildroot-2021.02$ ls -lh output/images/
total 128M
-rw-r--r-- 1 anson anson 256M 7月  16 14:04 rootfs.ext2
-rwxr-xr-x 1 anson anson  477 7月  16 14:01 start-qemu.sh
-rwxr-xr-x 1 anson anson  14K 7月  16 12:03 vexpress-v2p-ca9.dtb
-rw-r--r-- 1 anson anson 4.7M 7月  16 12:03 zImage
相关文章
|
1月前
|
移动开发 Linux
Linux 文件与目录管理
Linux 文件与目录管理
22 3
|
5月前
|
Linux 数据安全/隐私保护 Windows
分布式系统详解--Linux(权限)
分布式系统详解--Linux(权限)
43 0
|
5月前
|
存储 数据挖掘 Linux
在 Linux 中找目录中最大文件
【6月更文挑战第7天】在 Linux 中找目录中最大文件:使用 `du` 加 `sort` 命令 (`du -a /path | sort -nr | head -n 1`),`find` 加 `xargs` 和 `sort` (`find /path -type f -print0 | xargs -0 du -h | sort -nr | head -n 1`) 或编写 Python 脚本。适用于服务器管理、数据分析和文件清理,注意文件权限、目录深度和文件系统类型。结合其他命令可提升效率。
53 0
|
5月前
|
监控 Linux
探索 Linux 中的 Chronyc:一个用于配置和管理 Chrony 的实用工具
Chronyc 是一款用于配置和管理 Linux 系统中 Chrony 时间同步工具的命令行实用程序。Chrony 结合了 ntpd 和 ntpdate 的优点,提供高精度和灵活性。要安装 Chrony,可使用包管理器(如 `apt` 或 `yum/dnf`)。常用 `chronyc` 命令包括:查看时间源状态(`sources`)、跟踪信息(`tracking`)、添加或删除服务器、手动同步时间(`makestep`)以及查看其他信息和帮助。`chronyc` 提供了便捷的方式来监控和调整系统时间同步。
|
安全 Linux 数据安全/隐私保护
Linux 文件、目录和用户权限管理指南
Linux 文件、目录和用户权限管理指南
458 0
|
6月前
|
存储 Linux
|
存储 监控 安全
深入理解 Linux 文件系统:从根目录到用户主目录
深入理解 Linux 文件系统:从根目录到用户主目录
718 0
|
Linux 数据库
Linux文件与目录管理总结
Linux文件与目录管理总结
81 0
|
安全 IDE Linux
Linux各目录及每个目录的详细介绍
Linux各目录及每个目录的详细介绍
|
Linux
Linux的目录管理
在 Linux 系统中建立新目录的命令是 mkdir。该命令的使用方式如下