当前位置:首页 > 技术分析 > 正文内容

dd制作img镜像,调整镜像大小,制作根文件系统

ruisui884个月前 (02-03)技术分析30

dd操作

1、dd制作

dd if=/dev/zero of=test.img bs=1M count=10

2、格式化

mkfs.ext4 test.img

3、挂载

sudo mount test.img tempmount/

4、文件操作,需要管理员权限

cp、mv、rm等操作

5、卸载

sudo umount tempmount

6、检查修复

e2fsck -p -f test.img (e2fsck用来检查ext2/ext3/ext4文件系统,适用于未挂载的文件系统)

7、缩减镜像大小

resize2fs -M test.img

8、扩展镜像大小

dd if=/dev/zero of=test.img bs=1M count=0 seek=20 (想要扩到多大在seek这里指定,最终img大小是bs*seek,此例为20M)

虽然镜像变大了,但是文件系统还是原来的大小。

9、检查并扩展文件系统

e2fsck -f test.img

resize2fs test.img

此时文件系统会扩展到整个镜像大小。


在电脑端用chroot方式更新根文件系统

1、挂载根文件系统镜像

sudo mount rootfs1.img tempdir/

2、挂载镜像后准备chroot挂载点

./ch-mount.sh -m tempdir/

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 mount -o bind /dev/pts ${2}/dev/pts

}



function umnt(){

	echo "UNMOUNTING"

	sudo umount  ${2}/proc

	sudo umount  ${2}/sys

	sudo umount  ${2}/dev/pts

	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

3、运行chroot

sudo chroot tempdir/

4、使用apt更新和安装软件

apt update
apt install bash-completion
apt install openssh-client openssh-server
。。。。。。

4、exit退出

5、卸载挂载点

./ch-mount.sh -u tempdir/

6、卸载根文件系统镜像

sudo umount tempdir

7、调整大小

e2fsck -f rootfs1.img

resize2fs -M rootfs1.img


我是在别人弄好的根文件系统上操作的,可能原始根文件需要:

sudo apt-get install qemu-user-static

cp -b /etc/resolv.conf temp/etc/resolv.conf //这个不确定

cp /usr/bin/qemu-aarch64-static temp/usr/bin/

这个还需进一步学习研究,temp是根文件系统目录。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1444.html

标签: img 大小
分享给朋友:

“dd制作img镜像,调整镜像大小,制作根文件系统” 的相关文章

发行版Vanilla OS 2发布稳定版:彻底重写、改变使用Linux的方式

Vanilla OS 是去年崭露头角的 Linux 发行版,最初的 1.0 版本基于 Ubuntu 构建 —— 亮点之一是系统核心“不可变”。后来改用 Debian 测试分支 (Debian Sid),免费且开源,默认桌面环境是 GNOME。什么是不可变 Linux 发行版?不可变发行版确保操作系统...

Java教程:gitlab-使用入门

1 导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作GitLab简介GitLab环境搭建GitLab基本使用(组、权限、用户、项目)2 GitLab简介GitLab是整个DevOps生命周期...

Gemini应用在Android上广泛推出2.0闪电模式切换器

#头条精品计划# 快速导读谷歌(搜索)应用的测试频道在安卓设备的双子应用中推出了2.0闪电实验功能,现已向稳定用户开放。双子应用通过谷歌应用运行,目前推出的15.50版本中,用户可通过模型选择器体验不同选项,包括1.5专业版、1.5闪电版和2.0闪电实验版。2.0闪电实验模型提供了更快的响应速度和优...

vue-router是如何解析query参数呢? #前端

vue-router 中的 query 解析。1. 大家好,我是龙仔。今天来分享 vue-router 是如何解析快乐参数的,因为使用 vue 路由会传 query 参数和快乐参数,所以从 vue 的角度来看如何解析传递的快乐参数。2. 基础知识大家应知道,快乐参数结构如:a、b、c、a、b、c、a...

Vue实战篇|使用路由管理用户权限(动态路由)

权限控制是后台管理系统比较常见的需求,如果我们需要对某些页面的添加权限控制的话,那我们可以在路由管理中的权限做一些校验,没有通过权限校验的给出相应的提示或者直接跳转到报错页面。跟着我一起来学vue实战篇路由管理权限吧!权限校验函数getCurrentAuthority()函数用于获取当前用户权限,一...

vue父组件修改子组件的值(通过调用子组件的方法)

props只支持第一次加载这个组件的时候获取父组件的值,后续修改父组件的值得时候子组件并不会动态的更改。然而我们想要通过父组件修改子组件的值要怎么做呢?可以通过ref的方式调用子组件的方法改变子组件的值。子组件<template><div><span>{{data...