Disk Images

来自osdev
跳到导航 跳到搜索

爱好者os开发人员测试其系统的最佳方法是使用像 QEMUBochsVMware Virtual PC 这样的程序。

所有这些通用工具都依赖于使用磁盘映像 (软盘或硬盘)。 磁盘映像只不过是一个文件,其内容反映了磁盘的布局,并且该工具将像物理设备一样使用它。 例如,软盘图像通常为1.44MB大,其512的第一个字节由 “floppy的引导扇区组成。 不同的子页面应该告诉你如何从真实磁盘创建此类映像,并在最常见的操作系统下使用它们。


工具

这些程序可以帮助你管理磁盘映像

Linux Windows BSD Mac OS X File Systems Supported
BFI No Yes No No FAT
fat_imgen Yes Yes Yes Yes FAT12
File Disk No Yes No No Anything supported by Windows
FUSE 1 Yes Yes Yes Yes 任何东西都是直接值,包括你自己的FS
hdiutil No No No Yes HFS HFS+ HFS+J HFSX FAT UFS
ImDisk No Yes No No 任何Windows支持的内容
Loopback Device Yes No Yes Yes 内核支持的任何内容
MagicISO No Yes No No ISO 9660, Rock Ridge, HFS/HFS+, Joilet, UDF, XBOX DVD FS
mkisofs Yes Yes Yes Yes ISO 9660
MTools Yes Yes Yes Yes FAT
Ultimate No Yes No No MBR, GPT, eMBR, ISO 9660, FAT, ExFAT, NTFS, LEAN, FYSFS, SFS, Ext2
Virtual Floppy Disk No Yes No No 任何Windows支持的内容
Win Image No Yes No No FAT ISO 9660

注1: FUSE不是应用程序,而是一个共享库和一组应用程序; 每个文件系统一个。 如果你愿意,你也可以自己写。 它们易于使用,因为它们在目录上安装了磁盘分区或映像文件,之后你可以使用标准工具操作映像中的文件。


如果要将映像写入/刻录到媒体,可以使用以下工具之一:

Linux Windows BSD Mac OS X Notes
dd Yes Yes (Using Cygwin) Yes Yes
Rawwrite No Yes No No 仅限软盘映像
USBImager Yes Yes Yes Yes 非常小,无依赖,具有简单的GUI

软盘图像

你可以使用 'dd' 创建空白的软盘图像。

dd if=/dev/zero of=floppy.flp bs=512 count=2880

CD images

从0.95版开始,GNU GRUB 支持无仿真 El-Torito CD启动。 创建CD映像比使用软盘映像并尝试在其中填充GRUB要容易得多 (你也可以650 meg更多的空间)。 现在,将GRUB放在CD上是一个简单的问题,即为CD文件系统布局制作一个骨架目录树,在其中复制 “stage2_eltorito” 文件,并使用专门的命令行运行mgisofs。 有关详细信息,请参见GRUB 0.95 info节点 html_node/Making-a-GRUB-bootable-CD_002dROM.html安装> 制作GRUB可引导cd-rom。 比那些软盘游戏更人性化。

还有一个关于创建 无仿真El-Torito CD与GRUB 的教程。

映像中分区表的处理。

在撰写本文时,只有Apple的 hdiutil 和Plan 9的 man2html/8/partfs partfs 可以干净地处理映像内部分区的安装。 Linux用户可以使用 a hack 跳过MBR扇区。 通常,你可以通过为一个分区使用单独的图像来解决分区信息问题,然后将其插入到更大的图像中,并在正确的位置对数据进行分区。 这是有效的,因为偏移量通常是相对于分区的开始。

There's a tutorial on Bootable Disks.

预先安装了GRUB的映像

如果你正在寻找已经安装了GRUB的现成的软盘映像,则该映像已由MartinBaute设置,并且可以从以下镜像中获得:

图像具有GRUB stage1/stage2和一个空的配置文件设置,因此你所要做的就是添加二进制文件并编辑配置文件 (有关详细信息,请参见 GRUB手册)。

rdos.net上的CD/DVD映像具有嵌入的可启动软盘映像和根目录中的所需文件。

Ubuntu “grub-rescue-pc” 软件包是GRUB2,并具有软盘,CDROM和USB映像。

预先制作的映像,以测试你的代码

以下是各种分区方案和文件系统的预制图像列表。

此列表的目的是包括用于测试分区和文件系统代码的图像。 换句话说,你的代码是否可以在这些映像上找到并挂载给定的分区/文件系统。

这不是一个 “虚荣” 列表,一个简单地添加你的映像文件的列表。 此列表的理想目的是用于具有大量分区和/或分区方案的图像以及其他类型的映像。 但是,允许具有单个分区的映像。 请确保 -- 据你所知 --在添加到此列表之前,已正确实现了分区方案和文件系统。 目的是让其他人 “在你的图像上测试其代码”,而不是 “使用其代码测试你的图像”。

欢迎你添加你的映像网址,但请记住此列表的目的。

  • 请压缩映像并将URL指向压缩图像。 ZIP、GZ/BZ等。
  • 请不要包含许多其他文件。 将其保留到磁盘映像本身。 如果希望包含源,请将源放置在磁盘映像本身上。
  • 请使用 (有点) 永久链接。如果URL在不久的将来会被破坏,请不要添加你的图像文件。
URL/Name 分区方案 扇区大小 文件系统 压缩 未压缩 Notes
Ultimate Test eMBR 512 FAT, ExFAT, LEAN, FYSFS, SFS, Ext2 5.5 Meg 165 Meg Test image for Ultimate disk viewer
fysos GPT, floppy 512 FAT 8.2 Meg 10 Meg/1.44 Meg 带有GPT分区方案的单个FAT 16文件系统分区
Ultimate Test (4k) GPT 4096 FAT, LEAN 8.6 Meg 86 Meg 用GPT分区方案分区的FAT 16和精益文件系统 (使用4k扇区大小)

仅启动电喷。Legacy不会读取4k扇区大小。

链接

  • 论坛中的相关主题: Topic:10549 你会发现Brendan使用NASM构建自己的iso映像的巧妙技巧。(下载丢失)
  • John Burger的 演示 使用 NASM源码 来建立自己的ISO映像。