前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

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

qiguaw 2024-12-18 16:24:12 资源文章 15 ℃ 0 评论

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是根文件系统目录。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表