“Disk Images”的版本间差异
(创建页面,内容为“The best way for hobbyist os developers to test their systems is to use programs like QEMU, Bochs, VMware or Virtual PC. All of these common tools rely on using disk images (either floppy or hard disk). A disk image is nothing more than a file whose content reflects the layout of a disk and that the tool will use as if it was a physical device. E.g. A floppy image typically is 1.44MB large and its 512 first bytes consist of…”) |
|||
第1行: | 第1行: | ||
爱好者os开发人员测试其系统的最佳方法是使用像 [[QEMU]] 、 [[Bochs]] 、 [[VMware]] 或 [[Microsoft Virtual PC | Virtual PC]] 这样的程序。 | |||
所有这些通用工具都依赖于使用磁盘映像 (软盘或硬盘)。 磁盘映像只不过是一个文件,其内容反映了磁盘的布局,并且该工具将像物理设备一样使用它。 例如,软盘图像通常为1.44MB大,其512的第一个字节由 “floppy的引导扇区组成。 不同的子页面应该告诉你如何从真实磁盘创建此类映像,并在最常见的操作系统下使用它们。 | |||
== | == 工具 == | ||
这些程序可以帮助你管理磁盘映像 | |||
{| {{Wikitable}} | {| {{Wikitable}} | ||
|- | |- | ||
| | | | ||
! Linux | ! Linux | ||
! Windows | ! Windows | ||
第46行: | 第46行: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes}} | | {{Yes}} | ||
| | | 任何东西都是直接值,包括你自己的FS | ||
|- | |- | ||
第62行: | 第62行: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| | | 任何Windows支持的内容 | ||
|- | |- | ||
第70行: | 第70行: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes}} | | {{Yes}} | ||
| | | 内核支持的任何内容 | ||
|- | |- | ||
第97行: | 第97行: | ||
|- | |- | ||
| [ | | [http://www.fysnet.net/ultimate/index.htm Ultimate] | ||
| {{No}} | | {{No}} | ||
| {{Yes}} | | {{Yes}} | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| [[MBR]], [[GPT]], [ | | [[MBR]], [[GPT]], [http://www.fysnet.net/fysos_embr.htm eMBR], [[ISO 9660]], [[FAT]], [[ExFAT]], [[NTFS]], [http://www.fysnet.net/leanfs/index.php LEAN], [http://www.fysnet.net/fysfs.htm FYSFS], [[SFS]], [[Ext2]] | ||
|- | |- | ||
第110行: | 第110行: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| | | 任何Windows支持的内容 | ||
|- | |- | ||
第122行: | 第122行: | ||
|} | |} | ||
<small id="Note1"> | <small id="Note1">注1: FUSE不是应用程序,而是一个共享库和一组应用程序; 每个文件系统一个。 如果你愿意,你也可以自己写。 它们易于使用,因为它们在目录上安装了磁盘分区或映像文件,之后你可以使用标准工具操作映像中的文件。</small> | ||
如果要将映像写入/刻录到媒体,可以使用以下工具之一: | |||
{| {{Wikitable}} | {| {{Wikitable}} | ||
|- | |- | ||
| | | | ||
! Linux | ! Linux | ||
! Windows | ! Windows | ||
第148行: | 第148行: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| | | 仅限软盘映像 | ||
|- | |- | ||
第156行: | 第156行: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes}} | | {{Yes}} | ||
| | | 非常小,无依赖,具有简单的GUI | ||
|} | |} | ||
== | == 软盘图像 == | ||
你可以使用 'dd' 创建空白的软盘图像。 | |||
<source lang="bash"> | <source lang="bash"> | ||
第170行: | 第170行: | ||
== CD images == | == CD images == | ||
从0.95版开始,GNU [[GRUB]] 支持无仿真 [[El-Torito]] CD启动。 创建CD映像比使用软盘映像并尝试在其中填充GRUB要容易得多 (你也可以650 meg更多的空间)。 现在,将GRUB放在CD上是一个简单的问题,即为CD文件系统布局制作一个骨架目录树,在其中复制 “stage2_eltorito” 文件,并使用专门的命令行运行mgisofs。 有关详细信息,请参见GRUB 0.95 info节点 [http://www.gnu.org/software/grub/manual/ html_node/Making-a-GRUB-bootable-CD_002dROM.html安装> 制作GRUB可引导cd-rom]。 比那些软盘游戏更人性化。 | |||
还有一个关于创建 [[Bootable El-Torito CD with GRUB Legacy| 无仿真El-Torito CD与GRUB]] 的教程。 | |||
== | == 映像中分区表的处理。== | ||
在撰写本文时,只有Apple的 [[hdiutil]] 和Plan 9的 [http://9p.io/magic/ man2html/8/partfs partfs] 可以干净地处理映像内部分区的安装。 Linux用户可以使用 [[Loopback Device| a hack]] 跳过MBR扇区。 通常,你可以通过为一个分区使用单独的图像来解决分区信息问题,然后将其插入到更大的图像中,并在正确的位置对数据进行分区。 这是有效的,因为偏移量通常是相对于分区的开始。 | |||
There's a tutorial on [[Bootable Disk]]s. | There's a tutorial on [[Bootable Disk]]s. | ||
== | == 预先安装了GRUB的映像 == | ||
如果你正在寻找已经安装了GRUB的现成的软盘映像,则该映像已由MartinBaute设置,并且可以从以下镜像中获得: | |||
* LibOSDK project at http://download.berlios.de/libosdk/fd.img.bz2 (GRUB 0.96) [broken link] | * LibOSDK project at http://download.berlios.de/libosdk/fd.img.bz2 (GRUB 0.96) [broken link] | ||
第188行: | 第188行: | ||
* Ubuntu "grub-rescue-pc" package at http://packages.ubuntu.com/trusty/i386/grub-rescue-pc/download (GRUB2 2.00) [broken link] | * Ubuntu "grub-rescue-pc" package at http://packages.ubuntu.com/trusty/i386/grub-rescue-pc/download (GRUB2 2.00) [broken link] | ||
图像具有GRUB stage1/stage2和一个空的配置文件设置,因此你所要做的就是添加二进制文件并编辑配置文件 (有关详细信息,请参见 [http://www.gnu.org/software/grub/manual GRUB手册])。 | |||
rdos.net上的CD/DVD映像具有嵌入的可启动软盘映像和根目录中的所需文件。 | |||
Ubuntu “grub-rescue-pc” 软件包是GRUB2,并具有软盘,CDROM和USB映像。 | |||
== | == 预先制作的映像,以测试你的代码 == | ||
以下是各种分区方案和文件系统的预制图像列表。 | |||
此列表的目的是包括用于测试分区和文件系统代码的图像。 换句话说,你的代码是否可以在这些映像上找到并挂载给定的分区/文件系统。 | |||
这不是一个 “虚荣” 列表,一个简单地添加你的映像文件的列表。 此列表的理想目的是用于具有大量分区和/或分区方案的图像以及其他类型的映像。 但是,允许具有单个分区的映像。 请确保 -- 据你所知 --在添加到此列表之前,已正确实现了分区方案和文件系统。 目的是让其他人 “在你的图像上测试其代码”,而不是 “使用其代码测试你的图像”。 | |||
欢迎你添加你的映像网址,但请记住此列表的目的。 | |||
* | * 请压缩映像并将URL指向压缩图像。 ZIP、GZ/BZ等。 | ||
* | * 请不要包含许多其他文件。 将其保留到磁盘映像本身。 如果希望包含源,请将源放置在磁盘映像本身上。 | ||
* | * 请使用 (有点) 永久链接。如果URL在不久的将来会被破坏,请不要添加你的图像文件。 | ||
{| {{Wikitable}} | {| {{Wikitable}} | ||
|- | |- | ||
| URL/Name | | URL/Name | ||
! | ! 分区方案 | ||
! | ! 扇区大小 | ||
! | ! 文件系统 | ||
! | ! 压缩 | ||
! | ! 未压缩 | ||
! Notes | ! Notes | ||
|- | |- | ||
| [ | | [http://www.fysnet.net/ultimate/demodisk.zip Ultimate Test] | ||
| [ | | [http://www.fysnet.net/fysos_embr.htm eMBR] | ||
| 512 | | 512 | ||
| [[FAT]], [[ExFAT]], [ | | [[FAT]], [[ExFAT]], [http://www.fysnet.net/leanfs/index.php LEAN], [http://www.fysnet.net/fysfs.htm FYSFS], [[SFS]], [[Ext2]] | ||
| 5.5 Meg | | 5.5 Meg | ||
| 165 Meg | | 165 Meg | ||
| Test image for [ | | Test image for [http://www.fysnet.net/ultimate/index.htm Ultimate] disk viewer | ||
|- | |- | ||
| [ | | [http://www.fysnet.net/zips/fysos.zip fysos] | ||
| [[GPT]], floppy | | [[GPT]], floppy | ||
| 512 | | 512 | ||
第234行: | 第234行: | ||
| 8.2 Meg | | 8.2 Meg | ||
| 10 Meg/1.44 Meg | | 10 Meg/1.44 Meg | ||
| | | 带有GPT分区方案的单个FAT 16文件系统分区 | ||
|- | |- | ||
| [ | | [http://www.fysnet.net/ultimate/four_k_sects.zip Ultimate Test (4k)] | ||
| [[GPT]] | | [[GPT]] | ||
| 4096 | | 4096 | ||
| [[FAT]], [ | | [[FAT]], [http://www.fysnet.net/leanfs/index.php LEAN] | ||
| 8.6 Meg | | 8.6 Meg | ||
| 86 Meg | | 86 Meg | ||
| | | 用GPT分区方案分区的FAT 16和精益文件系统 (使用4k扇区大小) | ||
仅启动电喷。Legacy不会读取4k扇区大小。 | |||
|} | |} | ||
== | == 链接 == | ||
* | * 论坛中的相关主题: [[Topic:10549]] 你会发现Brendan使用NASM构建自己的iso映像的巧妙技巧。(下载丢失) | ||
* John | * John Burger的 [[User:Johnburger/Demo | 演示]] 使用 [[User:Johnburger/Demo/Pad/ISO | NASM源码]] 来建立自己的ISO映像。 | ||
[[Category:FAQ]] | [[Category:FAQ]] |
2022年1月24日 (一) 02:55的最新版本
爱好者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映像。