假设我有一个带有 GPT 的闪存驱动器,其中有多个按以下顺序排列的分区:
- 数据(16GB ExFat)
- Kali Linux live(4GB ext4)
- Kali 持久性(4GB ext4)
第一个分区与起始位置偏移约 8700 MB。我的问题是:
我是否能够使用开始时的未分区空间来写入和启动 ISO 映像(某些 Linux/Windows 安装程序可能小于 8GB)并确保它不会损坏前 ~8GB 之后的分区和文件?
它是否取决于所使用的方法(例如dd
与 GUI 工具相比)还是 ISO 本身?
我的计划是简单地将 GPT 备份gdisk
到一个文件中,然后在完成(安装操作系统)后使用该 ISO 文件恢复它。
所讨论的闪存驱动器是 SanDisk Extreme,因此它更像是一个小型 SSD。
许多工具并不直接写入映像,而是对目标磁盘进行重新分区并仅提取映像的内容。这些很容易破坏现有数据。
“直接写入”工具(例如
dd
,不是像 Rufus 那样提取并重新排列映像内容的工具)只会写入映像文件包含的内容。因此分区的数据应该保持完整。先进行测试。但是,如果您只是使用 sfdisk 恢复旧分区表,新映像的内容将无法启动。您需要合并分区表,将原始分区附加到映像自带的分区之后。
请注意,某些映像并非纯只读的:例如,那些要作为完整安装(而不是实时启动映像)写入 RPi SD 卡的映像通常设置为在首次启动时自动调整其根分区的大小以填充磁盘的其余部分。
还要注意,并非所有 .iso 映像都可以自动从 USB 磁盘启动 - 它主要是 CD/DVD 映像(不同的扇区大小、不同的启动代码位置),并且不需要将它们制作成混合映像。例如,Windows ISO 没有 MBR 或 GPT;它们必须手动提取到分区。