“Disk Images”的版本间差异

来自osdev
跳到导航 跳到搜索
(创建页面,内容为“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行:
The best way for hobbyist os developers to test their systems is to use programs like [[QEMU]], [[Bochs]], [[VMware]] or [[Microsoft Virtual PC|Virtual PC]].
爱好者os开发人员测试其系统的最佳方法是使用像 [[QEMU]] [[Bochs]] [[VMware]] [[Microsoft Virtual PC | 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 the 'floppy's boot sector. The different sub-pages should tell you how to create such images from real disks and use them under the most common operating systems.
所有这些通用工具都依赖于使用磁盘映像 (软盘或硬盘)。 磁盘映像只不过是一个文件,其内容反映了磁盘的布局,并且该工具将像物理设备一样使用它。 例如,软盘图像通常为1.44MB大,其512的第一个字节由 “floppy的引导扇区组成。 不同的子页面应该告诉你如何从真实磁盘创建此类映像,并在最常见的操作系统下使用它们。




== Tools ==
== 工具 ==


These programs can help you with the management of disk images
这些程序可以帮助你管理磁盘映像
{| {{Wikitable}}
{| {{Wikitable}}
|-  
|-
|  
|
! Linux
! Linux
! Windows
! Windows
第46行: 第46行:
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Literally anything, including your own FS
| 任何东西都是直接值,包括你自己的FS


|-
|-
第62行: 第62行:
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| Anything supported by Windows
| 任何Windows支持的内容


|-
|-
第70行: 第70行:
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Anything supported by the kernel
| 内核支持的任何内容


|-
|-
第97行: 第97行:


|-
|-
| [https://www.fysnet.net/ultimate/index.htm Ultimate]
| [http://www.fysnet.net/ultimate/index.htm Ultimate]
| {{No}}
| {{No}}
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| [[MBR]], [[GPT]], [https://www.fysnet.net/fysos_embr.htm eMBR], [[ISO 9660]], [[FAT]], [[ExFAT]], [[NTFS]], [https://www.fysnet.net/leanfs/index.php LEAN], [https://www.fysnet.net/fysfs.htm FYSFS], [[SFS]], [[Ext2]]
| [[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}}
| Anything supported by Windows
| 任何Windows支持的内容


|-
|-
第122行: 第122行:
|}
|}


<small id="Note1">Note 1: FUSE is not an application, but a shared library and a set of applications; one for each file system. You can also write your own if you'd like. They are easy to use as they mount a disk partition or image file on a directory, and you can manipulate the files in the image with standard tools afterwards.</small>
<small id="Note1">注1: FUSE不是应用程序,而是一个共享库和一组应用程序; 每个文件系统一个。 如果你愿意,你也可以自己写。 它们易于使用,因为它们在目录上安装了磁盘分区或映像文件,之后你可以使用标准工具操作映像中的文件。</small>




If you want to write/burn an image to media you can use one of the following tools:
如果要将映像写入/刻录到媒体,可以使用以下工具之一:
{| {{Wikitable}}
{| {{Wikitable}}
|-  
|-
|  
|
! Linux
! Linux
! Windows
! Windows
第148行: 第148行:
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| Floppy images only
| 仅限软盘映像


|-
|-
第156行: 第156行:
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| very small, dependency-free and has a simple GUI
| 非常小,无依赖,具有简单的GUI


|}
|}


== Floppy disk images ==
== 软盘图像 ==


You can use 'dd' to create a blank floppy image.
你可以使用 'dd' 创建空白的软盘图像。


<source lang="bash">
<source lang="bash">
第170行: 第170行:
== CD images ==
== CD images ==


As of version 0.95, GNU [[GRUB]] comes with support for no-emulation [[El-Torito]] CD boot. Creating a CD image is much easier than working with floppy images and trying to stuff GRUB in them (and you get 650 meg more space too). Putting GRUB on a CD is now a simple matter of making a skeleton directory tree for the CD filesystem layout, copying the "stage2_eltorito" file in there, and running mkisofs with a specialized command line. See the GRUB 0.95 info node [http://www.gnu.org/software/grub/manual/html_node/Making-a-GRUB-bootable-CD_002dROM.html Installation > Making a GRUB bootable CD-ROM] for details. Much more humane than those floppy games.
从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]。 比那些软盘游戏更人性化。


There is also a tutorial about creating a [[Bootable El-Torito CD with GRUB Legacy|no-emulation El-Torito CD with GRUB]].
还有一个关于创建 [[Bootable El-Torito CD with GRUB Legacy| 无仿真El-Torito CD与GRUB]] 的教程。


== Handling of Partition Tables in images. ==
== 映像中分区表的处理。==


At the time of writing, only Apple's [[hdiutil]] and Plan 9's [http://9p.io/magic/man2html/8/partfs partfs] can handle the mounting of partitions inside of an image cleanly. Linux users can use [[Loopback Device|a hack]] to skip over the MBR sector. In general, you can solve the partitioning information problem by using a separate image for one partition, then insert it into a larger image with partitioning data at the right place. This works because offsets are generally relative to the start of the partition.
在撰写本文时,只有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.


== Images with preinstalled GRUB ==
== 预先安装了GRUB的映像 ==


If you are looking for a ready-made floppy image with GRUB already installed, such has been set up by MartinBaute, and is available from the following mirrors:
如果你正在寻找已经安装了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]


The images have GRUB stage1 / stage2 and an empty config file set up, so all you have to do is adding your binaries and editing the config file (see the [http://www.gnu.org/software/grub/manual GRUB manual] for details).
图像具有GRUB stage1/stage2和一个空的配置文件设置,因此你所要做的就是添加二进制文件并编辑配置文件 (有关详细信息,请参见 [http://www.gnu.org/software/grub/manual GRUB手册])


The CD/DVD image on rdos.net has an embedded bootable floppy image and the required files in the root directory.
rdos.net上的CD/DVD映像具有嵌入的可启动软盘映像和根目录中的所需文件。


The Ubuntu "grub-rescue-pc" package is GRUB2, and has floppy, CDROM, and USB images.
Ubuntu “grub-rescue-pc” 软件包是GRUB2,并具有软盘,CDROM和USB映像。


== Pre-made Images to test your code with ==
== 预先制作的映像,以测试你的代码 ==


The following is a list of pre-made images of various partitioning schemes and file systems.
以下是各种分区方案和文件系统的预制图像列表。


The purpose of this list is to include images for testing your partitioning and file system code. In other words, can your code find and mount the given partitions/file systems on these images.
此列表的目的是包括用于测试分区和文件系统代码的图像。 换句话说,你的代码是否可以在这些映像上找到并挂载给定的分区/文件系统。


This is not a 'vanity' list, a list to simply add your image file. The ideal purpose of this list is for images with intentionally numerous partitions and/or partitioning schemes, and other types of images. However, images with single partitions are allowed. Please make sure--to the best of your knowledge--the partitioning scheme and file systems are correctly implemented before adding to this list. The intent is for others to '''test their code on your image''', not to '''test your image with their code.'''
这不是一个 “虚荣” 列表,一个简单地添加你的映像文件的列表。 此列表的理想目的是用于具有大量分区和/或分区方案的图像以及其他类型的映像。 但是,允许具有单个分区的映像。 请确保 -- 据你所知 --在添加到此列表之前,已正确实现了分区方案和文件系统。 目的是让其他人 “在你的图像上测试其代码”,而不是 “使用其代码测试你的图像”。


You are welcome to add your image URL, but please keep in mind the purpose of this list.
欢迎你添加你的映像网址,但请记住此列表的目的。


* Please compress the image and point the URL to the compressed image. ZIP, GZ/BZ, etc.
* 请压缩映像并将URL指向压缩图像。 ZIP、GZ/BZ等。
* Please do not include many other files. Keep it to the disk image itself. If you wish to include the source, place the source on the disk image itself.
* 请不要包含许多其他文件。 将其保留到磁盘映像本身。 如果希望包含源,请将源放置在磁盘映像本身上。
* Please use (somewhat) permanent links.  Do not add your image file if the URL will be broken in the near future.
* 请使用 (有点) 永久链接。如果URL在不久的将来会被破坏,请不要添加你的图像文件。


{| {{Wikitable}}
{| {{Wikitable}}
|-
|-
| URL/Name
| URL/Name
! Partition Scheme
! 分区方案
! Sector Size
! 扇区大小
! File System(s)
! 文件系统
! Compressed
! 压缩
! Uncompressed
! 未压缩
! Notes
! Notes


|-
|-
| [https://www.fysnet.net/ultimate/demodisk.zip Ultimate Test]
| [http://www.fysnet.net/ultimate/demodisk.zip Ultimate Test]
| [https://www.fysnet.net/fysos_embr.htm eMBR]
| [http://www.fysnet.net/fysos_embr.htm eMBR]
| 512
| 512
| [[FAT]], [[ExFAT]], [https://www.fysnet.net/leanfs/index.php LEAN], [https://www.fysnet.net/fysfs.htm FYSFS], [[SFS]], [[Ext2]]
| [[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 [https://www.fysnet.net/ultimate/index.htm Ultimate] disk viewer
| Test image for [http://www.fysnet.net/ultimate/index.htm Ultimate] disk viewer


|-
|-
| [https://www.fysnet.net/zips/fysos.zip fysos]
| [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
| Single FAT 16 file system partition with a GPT partitioning Scheme
| 带有GPT分区方案的单个FAT 16文件系统分区


|-
|-
| [https://www.fysnet.net/ultimate/four_k_sects.zip Ultimate Test (4k)]
| [http://www.fysnet.net/ultimate/four_k_sects.zip Ultimate Test (4k)]
| [[GPT]]
| [[GPT]]
| 4096
| 4096
| [[FAT]], [https://www.fysnet.net/leanfs/index.php LEAN]
| [[FAT]], [http://www.fysnet.net/leanfs/index.php LEAN]
| 8.6 Meg
| 8.6 Meg
| 86 Meg
| 86 Meg
| FAT 16 & Lean file systems partitioned with a GPT partitioning Scheme (Using 4k Sector sizes)
| 用GPT分区方案分区的FAT 16和精益文件系统 (使用4k扇区大小)
Boot EFI only.  Legacy will not read 4k sector sizes.
仅启动电喷。Legacy不会读取4k扇区大小。


|}
|}


== Links ==
== 链接 ==


* Related thread in the forum: [[Topic:10549]] You gonna find a nifty trick Brendan uses to build his own iso images - with NASM. (download missing)
* 论坛中的相关主题: [[Topic:10549]] 你会发现Brendan使用NASM构建自己的iso映像的巧妙技巧。(下载丢失)
* John Burger's [[User:Johnburger/Demo|Demonstration]] uses [[User:Johnburger/Demo/Pad/ISO/ISO|NASM source code]] to build his own ISO images too.
* John Burger的 [[User:Johnburger/Demo | 演示]] 使用 [[User:Johnburger/Demo/Pad/ISO | NASM源码]] 来建立自己的ISO映像。


[[Category:FAQ]]
[[Category:FAQ]]

2022年1月24日 (一) 02:55的最新版本

爱好者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映像。