1.背景
问题概述:通过u盘将部署包从mac传送到目标linux服务器后,在服务器对镜像文件进行sha256校验,发现结果和预期结果不一致。
原因定位:通过将服务器文件和mac上的文件分别用mac的sha256计算,发现文件发生了改动,最后定位到u盘的文件系统类型不是ext4(和服务器不一致),导致文件放到u盘后发生了变动。
解决方案:将u盘格式化成ext4的格式,重新传送部署包。
2.格式化u盘为ext4
-
通过brew安装e2fsprogs:
brew install e2fsprogs
-
通过diskutil查看盘符:
diskutil list
-
推出想要格式化的盘:
diskutil unmountdisk /dev/disk4
-
格式化u盘为ext4格式:
sudo $(brew --prefix e2fsprogs)/sbin/mkfs.ext4 /dev/disk4
3.macos读写ext4插件
macos默认是不只是ext4文件系统类型的磁盘的读写的,无法识别。
需要通过安装支持第三方文件系统拓展工具的方式,使macos可以读写ext4格式的磁盘。
-
安装macFUSE(安装完,需要重启才能开始生效),官网地址:Home - macFUSE
安装完成后,设置里有对应的设置项,如图:
-
安装ext4拓展插件FUSE-EXT2(FUSE-EXT2 使得 OSXFUSE 支持 ext2/ext3/ext4 文件系统的挂载),github主页有对应的安装过程,需要通过一个shell脚本安装,参考官方文档即可。
-
安装完成后,在设置页面也有对应的配置项,如图:
4.macos读写ext4文件系统的u盘
-
插入u盘,并通过
diskutil list
查看盘符,如/dev/disk4
-
挂载u盘到自定义目录(关键:sudo):
sudo fuse-ext2 /dev/disk4 ~/mnt/u-ext4-128 -o rw+
-
确认磁盘挂载情况:
-
可以通过finder找到对应目录进行读写,也可以通过终端进行读写。
-
推出u盘:
sudo umount ~/t7
参考: