如何制作Ext4文件系统镜像

如何制作Ext4文件系统镜像

将来有一天,在一个目录上右击,会有一个选项是「生成Ext4镜像」。但是目前还没有,记录一下步骤。

个人认为,目前对Ext4镜像支持最活跃的是Google的Android了。那咱单独创建Ext4镜像使用时也向Android上靠拢。Android系统中System分区是在2.3以后默认使用Ext4了,从此后Ext4就好比Windows下的NTFS一样成了标配wikipedia_Ext4

编译Android源码最后是使用make_ext4生成 Ext4镜像+签名(更新:合理使用make_ext4参数是不会导致添加签名的),如果需要纯Ext4镜像,那么需要再去掉签名,使用simg2img。这个两个工具都是在编译Android源码时编译出来的,如果没有Android源码编译环境,当然也可以使用Ubuntu社区已经整理好的工具集android-tools-fsutils,该工具集文件列表如下:(来自android-tools-fsutils/filelist)

/usr/bin/ext2simg
/usr/bin/ext4fixup
/usr/bin/img2simg
/usr/bin/make_ext4fs
/usr/bin/mkuserimg
/usr/bin/simg2img
/usr/bin/simg2simg
/usr/bin/simg_dump
/usr/bin/test_ext4fixup
/usr/share/doc/android-tools-fsutils/changelog.Debian.gz
/usr/share/doc/android-tools-fsutils/copyright

工具集安装方法:

sudo apt-get install android-tools-fsutils

制作Ext4文件系统镜像:

# 创建测试目录
mkdir /tmp/ext4 && cd /tmp/ext4 &&
mkdir test test_mount &&
echo "Hello Ext4" > test/HelloExt4.txt &&

# 生成名为test.ext4的Ext4镜像
make_ext4fs -l 512M test.ext4 test &&

# 挂载test.ext4到test_mount测试
mount -t ext4 -o loop test.ext4 test_mount &&
ls test_mount || echo "Error!"

以上放到一个名为test.sh的脚本中,执行正常结果如下:

$ sudo ./test.sh 
Creating filesystem with parameters:
    Size: 536870912
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8192
    Inode size: 256
    Journal blocks: 2048
    Label: 
    Blocks: 131072
    Block groups: 4
    Reserved block group size: 31
Created filesystem with 12/32768 inodes and 4207/131072 blocks
HelloExt4.txt  lost+found

扩展:将该文件系统挂载到Android设备中

# 获取root权限
su
# 进入sdcard目录
cd /sdcard
# 将test.ext4挂载test目录下
busybox mount -t ext4 -o loop test.ext4 test
# 查看test目录下内容
shell@hwH30-T00:/sdcard/test $ ls -l
-rw-r--r-- root     root           11 2015-10-24 17:49 HelloExt4.txt
drwx------ root     root              1970-01-01 08:00 lost+found
shell@hwH30-T00:/sdcard/test $ 
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
制作Ubuntu的img镜像文件可以通过使用Ubuntu Live CD或者命令行来完成。下面是一个基本的步骤示例来制作Ubuntu的img镜像文件: 1. 首先,你需要一台运行着Ubuntu操作系统的电脑,可以是物理机或者虚拟机。 2. 使用Ubuntu Live CD引导电脑进入Ubuntu Live环境。确保您有足够的存储空间来创建和存放镜像文件。 3. 打开终端,使用命令行执行以下命令来创建一个img文件,其中“/path/to/your/folder”是你想要保存镜像文件的文件夹的路径,而“ubuntu.img”是你想要给镜像文件的名称: ``` sudo dd if=/dev/zero of=/path/to/your/folder/ubuntu.img bs=1M count=5000 ``` 这个命令将创建一个5000MB大小的img文件。你可以根据需要调整大小。 4. 创建文件系统并将其挂载到一个临时目录中。使用以下命令: ``` sudo mkfs.ext4 /path/to/your/folder/ubuntu.img sudo mkdir /tmp/img_mount sudo mount /path/to/your/folder/ubuntu.img /tmp/img_mount ``` 5. 下一步是从您的Ubuntu Live环境中复制文件系统。使用以下命令来复制系统文件: ``` sudo rsync --progress -aAXv --exclude="/tmp/*" --exclude="/var/tmp/*" --exclude="/proc/*" --exclude="/sys/*" --exclude="/mnt/*" --exclude="/media/*" --exclude="/dev/*" --exclude="/lost+found" --exclude="/home/*/.gvfs" --exclude="/home/*/.cache" --exclude="/home/*/.thumbnails" --exclude="/home/*/.config/chromium" --exclude="/home/*/.local/share/Trash" / /tmp/img_mount ``` 这个命令将复制整个文件系统到你的img镜像文件中。 6. 复制完成后,可能需要更新fstab文件,以确保镜像文件在启动时正确挂载。在终端中执行以下命令: ``` sudo nano /tmp/img_mount/etc/fstab ``` 检查fstab文件的内容并进行必要的更改。 7. 现在,卸载临时目录中的镜像文件系统并关闭终端。使用以下命令来卸载: ``` sudo umount /tmp/img_mount ``` 8. 至此,你已经成功制作了Ubuntu的img镜像文件。你可以将它转移到其他设备上并使用工具写入到USB驱动器或SD卡中进行引导。 请注意,在制作img镜像文件时需要小心,确保您选择了正确的目标设备,并备份重要数据,以防止意外数据丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值