Linux(24) 如何在Ubuntu中操作rootfs.img文件

简介: Linux(24) 如何在Ubuntu中操作rootfs.img文件

img文件是一种常见的磁盘镜像文件格式,它可以包含一个或多个文件系统。img文件可以用于创建、备份或恢复操作系统或其他数据。在Ubuntu中,你可以使用一些简单的命令来操作img文件,例如挂载、卸载、修改、扩展等。本文将介绍如何在Ubuntu中执行这些操作,并给出一些示例。

为什么做这些事情 , 因为我打算解包一个已有的Ubuntu rootfs.img文件,想在这个基础之上,通过挂在的方式在基础之上,增删改一些文件或者内容。

本篇文章主要是记录如何解包,打包img的一些坑(劝退同样想法的人 )。Windows貌似只有DiskInternals Linux Reader这款软件才能挂载img,但是不能修改 需要pro。

20230830更新

之前的调试记录原封不动, 在此我想说明 调试是一个过程 , 我怕这篇误导有些朋友。

最新调试思路: Linux(26) 根据现成rootfs.img制作1:1还原源代码定制实现

是可以实现的 , 如需要脚本的私聊我即可。

挂载和卸载img文件

挂载img文件就是将它作为一个虚拟的磁盘设备连接到系统中,这样你就可以访问它包含的文件系统中的文件。卸载img文件就是将它从系统中断开,这样就可以释放它占用的资源。

首先,需要创建一个挂载点,然后使用mount命令将img文件挂载到这个挂载点。然后,可以在挂载的文件系统中添加、修改或删除文件。最后可以使用umount命令卸载img文件。

以下是具体的步骤:

  1. 创建一个挂载点。例如,可以创建一个名为mnt的目录:
mkdir mnt
  1. 使用mount命令将img文件挂载到这个目录:
sudo mount -o loop ubuntu-rootfs.img mnt #这个文件可以理解为是别人做好的,我想搞现成。
  1. 现在,我们可以在mnt目录中添加、修改或删除文件。例如,如果想添加一个名为myfile.txt的文件,可以使用以下命令:
echo "This is a new file" > mnt/myfile.txt #只是举例, 我当时是想预置一些文件,安装apt,删除一些内容。
  1. 当完成所有的修改后,你需要使用umount命令卸载img文件:
sudo umount mnt
  1. 最后,你可以删除挂载点目录:
rmdir mnt

以上步骤完成后,的ubuntu-rootfs.img文件就已经包含了你添加的新文件。

注意:在进行这些操作时,需要有相应的权限。如果没有权限,可能需要使用sudo命令。

这是最后的结论:文件是预置进去了,问题是tm的rockchip linux刷机这个rootfs.img提示分区问题 结果刷不进去。

查看和扩展img文件的大小

好,当时我还在预置文件,发现预置500MB左右文件,发现预置不进去。如何我想查看或修改img文件的大小,以便在其中添加更多的数据。可以使用一些工具来实现这个目的,例如dfddresize2fs等。

查看img文件的大小

可以使用df命令来查看文件系统的磁盘使用情况。在挂载了img文件之后,可以运行以下命令:

df /mnt

这个输出看起来像是:

vmhgfs-fuse    1953512444 1729111644 224400800  89% /mnt

这个输出告诉/mnt目录(也就是img文件)已经使用了89%的空间,还剩下11%的空间。这个输出中的数字是以1K块为单位的。所以,你还剩下大约224400800K,也就是大约214GB的空间???不知道Linux是怎么计算的,实际上应该是220MB左右。

如果想查看剩余空间的具体数值,可以使用df -h命令,-h选项会以可读的格式(例如,KB、MB、GB)显示磁盘使用情况。

注意:在进行这些操作时,需要有相应的权限。如果没有权限,可能需要使用sudo命令。

这是最后的结论:这就发现原因了,因为img文件大小是3.8G左右 ,我们是通过mount挂载的,实际上已经用了大概85%左右吧 还剩下200MB 左右,这就是我为什么解包之后不能预置大500MB文件的原因。

扩展img文件的大小

继续,如果想在这个文件系统中添加更多的文件,需要确保有足够的空间。如果空间不足,可能需要增加img文件的大小。这可以通过dd命令和resize2fs命令来完成。

以下是一个例子,它将img文件的大小增加1GB:

  1. 使用dd命令增加img文件的大小:
dd if=/dev/zero bs=1M count=1024 >> ubuntu-rootfs.img
  1. 使用e2fsck命令检查文件系统:
e2fsck -f ubuntu-rootfs.img
  1. 使用resize2fs命令调整文件系统的大小:
resize2fs ubuntu-rootfs.img

以上命令完成后,img文件的大小应该增加了1GB。然后,可以再次尝试挂载img文件并添加新的文件。

注意:在进行这些操作时,你需要有相应的权限。如果你没有权限,你可能需要使用sudo命令。

这是最后的结论:大小是增加了 也生成了,我当时才反应过来,增加img文件大小没有,实际上我们的emmc有64G,是这种方式完全不支持,不能通过增加img大小来增加文件,最后结论也是刷不进去。

添加和设置新用户

最后我妥协,然后还是打算重新做一份Ubuntu rootfs,重新下载了源码。然后下面是一些简单的记录

在Ubuntu中,可以使用一些命令来添加和设置新用户,例如adduserusermod等。添加新用户可以让我们为不同的用途或人员分配不同的权限和资源。设置新用户可以让你自定义用户的登录方式、密码、信息等。

添加新用户

在Ubuntu中,可以使用adduser命令来添加新用户。以下是添加新用户r58的命令:

sudo adduser r58

这个命令会提示你输入新用户的密码,以及一些可选的用户信息,如全名、房间号、电话等(不用管 一直猛按enter)。

然后,可以使用usermod命令来将新用户添加到sudo组,这样新用户就可以使用sudo命令来执行需要管理员权限的操作:

sudo usermod -aG sudo r58

设置新用户为默认登录用户

至于设置r58为默认登录用户,这取决于你使用的是哪种登录管理器。如果你使用的是lightdm,你可以编辑/etc/lightdm/lightdm.conf文件,将autologin-user设置为r58

[Seat:*]
autologin-user=r58

如果你使用的是gdm,你可以编辑/etc/gdm3/custom.conf文件,将AutomaticLogin设置为r58

[daemon]
AutomaticLogin=r58

请注意,编辑这些配置文件需要管理员权限,可能需要使用sudo命令。

修改主机名

主机名是用于标识和区分不同计算机或设备的名称。在Ubuntu中,你可以使用一些命令来修改主机名,例如 hostnamectl, vi, etc.

修改主机名

想要修改的是系统的主机名(hostname)。可以使用 hostnamectl

命令来修改主机名。例如,如果想将主机名修改为 xxx, 可以运行以下命令:

hostnamectl set-hostname xxx

然后,你需要编辑 /etc/hosts

文件,将其中引用旧主机名的所有地方都修改为新的主机名。你可以使用 vi

等文本编辑器来编辑这个文件:

vi/etc/hosts

在这个文件中,可能会看到一行类似于这样的内容:

127.0.1.1    localhost

你需要将这行中的 localhost

修改为 xxx, 然后保存并关闭文件。

已经在/etc/hosts文件中添加了一行新的内容,引用了新的主机名btf。现在,当系统试图解析主机名xxx时,它会被解析为IP地址127.0.1.1,这是一个特殊的IP地址,代表本机。

接下来,我们通过脚本卸载掉环境,然后重新挂载:

在系统重启后,可以再次运行hostname命令来检查主机名是否已经更改:

hostname

如果一切正常,这个命令应该会输出xxx

总结

本文介绍了如何在Ubuntu中操作img文件,包括挂载、卸载、修改、扩展等。本文还介绍了如何添加和设置新用户,以及如何修改主机名。这些操作可以让你更好地管理和使用你的Ubuntu系统。希望本文对你有所帮助。

如果你有任何问题或建议,欢迎在评论区留言。谢谢你的阅读和支持。

相关文章
|
2月前
|
Ubuntu 编译器 计算机视觉
Ubuntu 20.04环境下无法找到#include<opencv/cv.h>文件 - 解决方案。
希望这些信息能帮助你解决遇到的问题。
187 10
|
5月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
754 13
|
4月前
|
缓存 监控 Ubuntu
Ubuntu操作系统下清除系统缓存与无用文件的方法
通过上述步骤断行综合性地对Ubuntu进行优化与整洁可显著改善其性能表现及响应速度。然而,请注意在执行某些操作前确保充分了解其潜在影响;例如,在移除旧内核之前确认新内核稳定运行无问题;而对于关键配置更改则需确保备份好相关设置以便恢复原状态。
653 0
|
5月前
|
Ubuntu 安全
修复Ubuntu系统文件损坏问题:手动fsck指令
总结一下,使用 `fsck`修复文件系统是一个复杂的过程,涉及到诊断问题、安全卸载文件系统、执行检查与修复、并且通常在维护模式下完成。这个过程对于维护系统的健康和稳定至关重要。虽然命令和步骤可以按照标准手册执行,但每个系统的具体情况可能都有所不同,因此修复操作需要对系统和维护命令有所了解。在执行这一系列操作时请确保谨慎,并对系统有一定的认识,以避免不必要的数据丢失。
859 8
|
6月前
|
Ubuntu Linux UED
Ubuntu和Debian系统与Hat Linux系列的使用比较
所以,如果你想搞一个家用服务器,或者是个人使用,喜欢新鲜事物,那Ubuntu可能是你的最好选择。如果你需要一个在商业环境中经受住考验的系统,那Fedora或CentOS可能更符合你的口味。不过记住,CentOS现在是CentOS Stream,中途换马了,所以如果你是稳定性的极端追求者,可能得考虑一下这一变化。而Debian,则适合那些对稳定性需求极高,不太追求软件版本新旧的用户。
198 26
|
6月前
|
Ubuntu 搜索推荐 Linux
Ubuntu/Debian Hat系Linux的便捷操作指南
总的来说,虽然Ubuntu/Debian和Red Hat系列在操作方法上有所不同,但基本概念类似。掌握了包管理和服务管理,可以应对大多数常见的系统管理任务。同时,这两个系统都有丰富的在线资源可以查询,不管你在任务中遇到什么困难,搜索引擎都能帮你找到答案。这些基本技能能让你在Linux的世界里更加自如。
194 26
|
6月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
1581 23
|
6月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
198 16
|
6月前
|
Ubuntu 安全 Linux
详述Ubuntu中的/etc/rc.local与/etc/init.d/rc.local文件的不同应用场景
总结一下,`/etc/rc.local`和 `/etc/init.d/rc.local`可以说是系统自定义服务的二人转。在Systemd登基以前,`/etc/rc.local`是大明星,负责在系统启动的最后一刻执行任务。而 `/etc/init.d/rc.local`则扮演着保证 `rc.local`文件内容可以被执行的幕后角色。随着Ubuntu版图的更迭和Systemd的崛起,两者都有所转变,但它们依旧是实现系统自启动自定义命令和程序的得力工具,虽然现在要通过一些额外的设置来唤醒它们的能力。此外,由于Systemd的灵活性和强大,推荐使用更加现代化的Systemd单元(unit)文件来替代这
276 10