Disk Images
爱好者os开发人员测试其系统的最佳方法是使用像 QEMU 、 Bochs 、 VMware 或 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设置,并且可以从以下镜像中获得:
- LibOSDK project at http://download.berlios.de/libosdk/fd.img.bz2 (GRUB 0.96) [broken link]
- Clicker project at http://sourceforge.net/projects/clicker/files/miscellaneous/GRUB%20bootdisk%20(by%20Solar)/solar_grub_disk.zip/download (GRUB 0.95)
- Ubuntu "grub-rescue-pc" package at http://packages.ubuntu.com/trusty/i386/grub-rescue-pc/download (GRUB2 2.00) [broken link]
图像具有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映像。