我有一个名为的文件BaseSystem.dmg
,其中包含 hfs+ 系统映像以及其他文件。
flex@flex-ubuntu:~/Documents/MacOS2$ dmg2img -l BaseSystem.dmg
dmg2img v1.6.7 (c) vu1tur ([email protected])
BaseSystem.dmg --> (partition list)
partition 0: Protective Master Boot Record (MBR : 0)
partition 1: GPT Header (Primary GPT Header : 1)
partition 2: GPT Partition Data (Primary GPT Table : 2)
partition 3: (Apple_Free : 3)
partition 4: disk image (Apple_HFS : 4)
partition 5: (Apple_Free : 5)
partition 6: GPT Partition Data (Backup GPT Table : 6)
partition 7: GPT Header (Backup GPT Header : 7)
7z
我正在尝试从包中提取 hfs+ 系统映像文件p7zip-full
。我在 Windows 10 和 Ubuntu 中都尝试过。
我已经尝试了所有这些命令以及其他命令......
7z x BaseSystem.dmg
7z e BaseSystem.dmg
7z x BaseSystem.dmg 4.hfs
我要么只提取 4.hfs 文件而什么也得不到,要么 7z 直接提取 BaseSystem.dmg 中的所有文件和文件夹。
7-Zip 19.00 (32 bit or 64 bit) on Windows
当我使用和使用时,我得到相同的结果16.02 (64 bit) on Ubuntu
。
我知道这是可能的,因为启动磁盘实用程序使用7-Zip 19.00 (32 bit)
并能够从 BaseSystem.dmg 中提取 4.hfs。但是我不知道它使用了什么参数。
我实际上还为我的 Windows 操作系统单独下载了 7-Zip 19.00 (32),当我自己运行它时,它不仅提取 4.hfs 文件。相反,它提取所有文件和文件夹。
因此,我使用的 7z 参数一定与“启动磁盘实用程序”程序使用的参数不同?
我可以dmg2img
像这样使用,而且它有效......
dmg2img -p 4 -i BaseSystem.dmg -o 4.hfs
但我的问题是如何使用7z command
从 BaseSystem.dmg 中提取 4.hfs 文件?我希望能看到 Boot Disk 程序使用了哪些参数?但它运行时只会打开一个命令窗口。以下是我得到的前几行。
7-Zip 19.00 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive for archives:
1 file, 498625205 bytes (476 MiB)
Extracting archive: C:\Users\flex\Downloads\BaseSystem.dmg
--
Path = C:\Users\flex\Downloads\BaseSystem.dmg
Type = Dmg
Physical Size = 498625205
Method = Copy Zero2 ZLIB CRC
Blocks = 594
Would you like to replace the existing file:
Path: C:\Users\flex\Downloads\4.hfs
Size: 2004299776 bytes (1912 MiB)
Modified: 2021-05-23 20:13:50
with the file from archive:
Path: 4.hfs
Size: 2004299776 bytes (1912 MiB)
? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit?
在上面的例子中,该4.hfs
文件已在 Boot Utility 程序的先前运行中创建,但我只是想表明它确实尝试提取该4.hfs
文件。它不会直接提取 BaseSystem.dmg 中的所有文件和文件夹。因此这应该可以用 7z 来做吗?
答案1
我通过询问找到了答案SourceForge 的 7-Zip 作者。
尽管互联网上很多地方都解释如何使用这个命令:
7z e BaseSystem.dmg
从 BaseSystem.dmg 中提取分区,根据我的经验,该命令不仅提取分区文件,还提取所有内容,包括文件和文件夹。
就我而言,这是我需要提取的命令只是4.hfs分区:
7z e -t* BaseSystem.dmg 4.hfs
此命令列出 BaseSystem.dmg 中一层深的文件
7z l -t* BaseSystem.dmg