img镜像文件制作方法
方法一
dd if=/dev/zero of=linux-rootfs.img bs=1M count=1024
/dev/zero:为虚拟盘的名字。
linux-rootfs.img为你的穿建的镜像文件。
bs=1M
count=1024为此镜像的大小。一般1G的根文件系统很大了,如果担心不够用,也可以直接2048.
===============================================================================
dd if=/dev/zero of=linux-rootfs.img bs=1M count=5120
格式化镜像
sudo mkfs.ext4 linux-rootfs.img
挂载镜像并往里面拷入修改后的文件系统:
sudo mount linux-rootfs.img rootfs
sudo cp -rfp ipu_rootfs_ubuntu16/* rootfs/
卸载镜像
sudo umount rootfs
改成实际大小
sudo e2fsck -p -f linux-rootfs.img
sudo resize2fs -M linux-rootfs.img
dd if=/dev/zero of=linux-rootfs.img bs=1M count=5120
sudo mkfs.ext4 linux-rootfs.img
sudo mount linux-rootfs.img rootfs
sudo cp -rfp ipu_rootfs_ubuntu16/* rootfs/
sudo umount rootfs
sudo e2fsck -p -f linux-rootfs.img
sudo resize2fs -M linux-rootfs.img
方法二
#!/bin/bash
rootfs_dir=$1
rootfs_file=$2
rootfs_mnt="mnt"
if [ ! $rootfs_dir ] || [ ! $rootfs_file ];
then
echo "Folder or target is empty."
exit 0
fi
if [ -f "$rootfs_file" ]; then
echo "-- Delete exist $rootfs_file ..."
rm -f "$rootfs_file"
fi
echo "-- Create $rootfs_file ..."
dd if=/dev/zero of="$rootfs_file" bs=1M count=6144
sudo mkfs.ext4 -F -L linuxroot "$rootfs_file"
if [ ! -d "$rootfs_mnt" ]; then
mkdir $rootfs_mnt
fi
echo "-- Copy data to $rootfs_file ..."
sudo mount $rootfs_file $rootfs_mnt
sudo cp -rfp $rootfs_dir/* $rootfs_mnt
sudo sync
sudo umount $rootfs_mnt
rm -r $rootfs_mnt
echo "-- Resize $rootfs_file ..."
/sbin/e2fsck -p -f "$rootfs_file"
/sbin/resize2fs -M "$rootfs_file"
echo "-- Done."
运行
给mkimage.sh 脚本可执行权限
chmod 777 mkimage.sh
接着执行如下指令将 ubuntu-rootfs 打包
./mkimage.sh ubuntu-rootfs rootfs.img