macOS系统上读写Linux的ext4分区方法

macOS系统上读写Linux的ext4分区方法

macOS系统上读写Linux的ext4分区方法

很多时候需要在macOS上操作Linux的ext4分区,然后macOS系统默认并不支持ext4等分区格式。今天给大家介绍的方法是如何在macOS上,使用免费的工具来操作ext4分区。

osxfuse

FUSE(Filesystem in Userspace)中文直译为“用户空间文件系统”,是Linux 中用于挂载某些网络空间,如SSH,到本地文件系统的模块。它提供了抽象的文件操作系统用户态的读写接口。这个接口思想被移植到了macOS上,即:osxfuse。它是一个开源的软件,地址是:github.com/osxfuse/osxf

为每一个不同的文件系统,编写一个支持它的osxfuse扩展,就可以很好的实现macOS系统上的多文件系统格式分区的读写支持。比如exFATXFSprocfsSSHFSNTFS等格式的分区,都可以通过扩展osxfuse来实现分区的读写。

比如ext2文件格式的支持有ext2fuse。安装扩展前需要执行下面的命令安装osxfuse

$ brew cask install osxfuse

安装完成后,执行:

$ brew install ext2fuse

即可以用macOS自带的mount命令来加载ext2格式的分区镜像文件。

ext4fuse

ext4fuse是一款开源的ext4分区格式的支持扩展。地址是:github.com/gerard/ext4f。可以执行如下命令安装:

$ brew install ext4fuse

加载一个ext4格式的镜像,可以执行如下操作:

$ stat  system.img
16777217 11104478 -rw-r--r-- 1 rmbp staff 0 891289600 "Aug 16 15:54:57 2018" "Aug 16 15:23:51 2018" "Aug 16 15:49:01 2018" "Aug 16 15:23:40 2018" 4096 1740800 0 system.img
$ mkdir sys
$ ext4fuse system.img sys
$ ls sys
app     build.prop  fonts       lib     media       tts     vendor
bin     etc     framework   lost+found  priv-app    usr     xbin

然而令人遗憾的是,ext4fuse的更新力度不够,项目不够活跃,始终只支持ext4分区的读操作,不支持写操作,如果只需要进行内容的查看与加载,使用这个工具就可以,但对于那些需要写ext4镜像文件格式的场景就不太适合了。

fuse-ext2

fuse-ext2是另一款支持ext格式分区操作的扩展,它的地址是:github.com/alperakcan/f。与ext4fuse不同的是,这款扩展支持ext2、ext3、ext4全系列的文件格式的读写,而且跨平台支持Linux、FreeBSD、macOS多个操作系统平台。目前该项目也比较活跃!

在macOS系统上安装它需要手动下载它的代码并编译安装,在官网的安装指导中有提到编写一个script.sh,自动编译与安装,这里就不列出来了。

安装完成后,执行如下命令即可加载与读写:

$ mkdir sys
$ fuse-ext2 -v system.img sys
Mounting system.img Read-Only.
Use 'force' or 'rw+' options to enable Read-Write mode
$ umount sys
$ fuse-ext2 -v system.img sys -o force

默认的加载不支持写操作,需要加上force选项才能进行写入操作。操作完成后,执行umount命令,所有的操作修改,都会写入到原ext4镜像文件中。


文章精美排版PDF与代码,知识星球会员可以在知识星球:【软件安全与逆向分析】(ID: 86753808)中下载。


t.zsxq.com/rRR3juN (二维码自动识别)


更多精彩内容,欢迎关注微信公众号【feicong_sec】


weixin.qq.com/r/tC9rczn (二维码自动识别)

发布于 2018-09-21

文章被以下专栏收录