【调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小】

本文主要是介绍【调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

调试笔记-系列文章目录

调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小


文章目录

  • 调试笔记-系列文章目录
    • 调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小
  • 前言
  • 一、调试环境
    • 操作系统:Ubuntu 22.04.4 LTS
    • 工作环境
    • 调试目标
  • 二、调试步骤
    • 预置条件
    • 扩展 OpenWrt-23.05 发行版镜像文件
      • 打开 PuTTY 终端连接开发主机
      • 解压 OpenWrt-23.05 发行版镜像文件
      • 扩展 OpenWrt-23.05 发行版镜像文件大小
      • 下载扩展后的 OpenWrt-23.05 镜像文件
      • 测试扩展后的 OpenWrt-23.05 镜像文件
  • 三、应用场景
    • 初始安装 OpenWrt 分区大小不够
  • 四、参考资料
  • 总结


前言

本文记录在 Linux 环境下扩展在 QEMU/x86_64 虚拟机系统上运行的 OpenWrt-23.05 EXT4 镜像文件大小的步骤。

实验使用的电脑如下:

CPU:

Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz

操作系统:

Ubuntu 22.04.4 LTS

一、调试环境


操作系统:Ubuntu 22.04.4 LTS

操作系统详细信息如下:

Kernel                : Linux 6.5.0-35-generic (x86_64)
Version                : #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May  7 09:00:52 UTC 2
C Library                : GNU C Library / (Ubuntu GLIBC 2.35-0ubuntu3.7) 2.35
Distribution                : Ubuntu 22.04.4 LTS

工作环境

  • Windows 工作主机通过 PuTTY 远程连接 Linux 开发主机,Linux 开发主机安装 Ubuntu 22.04 LTS 发行版本

参考【安装笔记-20240519-Windows-安装测试 PuTTY】

  • Windows 工作主机通过 FileZilla 客户端远程连接 Linux 开发主机,使用 SFTP 协议传输文件
    参考【安装笔记-20240523-Windows-安装测试 FileZilla Client】

调试目标

将原镜像文件磁盘容量扩展到 1G 大小。


二、调试步骤

预置条件

1、参考【安装笔记-20240519-Windows-安装测试 PuTTY】准备好 Ubuntu 22.04 LTS 工作环境

2、下载 OpenWrt-23.05 发行版镜像文件
下载链接:https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img.gz

扩展 OpenWrt-23.05 发行版镜像文件

打开 PuTTY 终端连接开发主机

  • 在 Windows 点击 PuTTY 图标,连接开发主机,输入用户名和密码

在这里插入图片描述

解压 OpenWrt-23.05 发行版镜像文件

  • 在 PuTTY 窗口执行以下命令:
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img.gz

在这里插入图片描述

扩展 OpenWrt-23.05 发行版镜像文件大小

  • 在 PuTTY 窗口执行以下命令:
qemu-img resize -f raw openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img 1G

在这里插入图片描述

  • 用环回设备修改镜像文件信息,在 PuTTY 窗口执行以下命令:
loop_device=$(losetup -f)
sudo losetup $loop_device openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img
  • 修复 GPT 分区信息,并增加 root 分区到使用设备的 100% 空间,在 PuTTY 窗口执行以下命令:
echo -e "OK\nFix" | sudo parted ---pretend-input-tty "$loop_device" print
sudo parted "$loop_device" resizepart 2 100%
sudo parted "$loop_device" print

在这里插入图片描述
上图可见,root 分区已经使用扩容后的所有磁盘空间了。

  • 卸载环回设备,在 PuTTY 窗口执行以下命令:
sudo losetup -d $loop_device

下载扩展后的 OpenWrt-23.05 镜像文件

  • 在 PuTTY 窗口执行以下命令,压缩扩容后的镜像文件:
gzip openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img

在这里插入图片描述

  • 在 FileZilla 客户端窗口选择压缩后的镜像文件,下载到 Windows 主机本地工作目录:

在这里插入图片描述

测试扩展后的 OpenWrt-23.05 镜像文件

  • 在 Windows 主机本地工作目录中,用 7z 工具解压镜像文件:

在这里插入图片描述

  • 在 Windows 终端启动 QEMU,运行扩容后的镜像文件

在这里插入图片描述

  • 登入 OpenWrt 控制台,确认扩容是否成功

首先安装 lsblk 工具,执行以下命令:

opkg update
opkg install lsblk

用 lsblk 检查磁盘是否扩容,执行以下命令:

lsblk

输出结果如下:

在这里插入图片描述

sda2 分区已经变为 1007.7M,扩容成功。

接下来需要将 ext4 文件系统扩展到整个 sda2 磁盘分区上,执行以下命令:

opkg update
opkg install losetup
opkg install resize2fslosetup /dev/loop1 /dev/sda2
resize2fs -f /dev/loop1

重启 QEMU 虚拟机,进入 OpenWrt 控制台,用以下命令查看是否扩展成功:

df -h

在这里插入图片描述

上图可见,根分区 /dev/root 已经扩展到 1G 空间。


三、应用场景

初始安装 OpenWrt 分区大小不够

在用 QEMU 仿真目标机器运行 OpenWrt 时,初始使用官方发行文件镜像,在安装大型应用后,根分区空间不够,使用此方法可以在不从装系统的状态下进行根分区的扩容。


四、参考资料

1、OpenWrt in QEMU


总结

本文介绍了在 Ubuntu 22.04 中对 QEMU 可运行的 OpenWrt 固件镜像文件扩容的步骤,并指出过程中遇到的问题及解决方法。

这篇关于【调试笔记-20240524-Linux-扩展 OpenWrt-23.05 发行版 EXT4 镜像文件大小】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/998462

相关文章

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境