You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
593 lines
10 KiB
593 lines
10 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Tips and Techniques</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
|
REL="HOME"
|
|
TITLE="Bochs User Manual"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Mailing List Etiquette"
|
|
HREF="mailinglist-etiquette.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Use mtools to manipulate disk images"
|
|
HREF="mtools.html"></HEAD
|
|
><BODY
|
|
CLASS="CHAPTER"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Bochs User Manual</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="mailinglist-etiquette.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="mtools.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="CHAPTER"
|
|
><H1
|
|
><A
|
|
NAME="HOWTO"
|
|
></A
|
|
>Chapter 8. Tips and Techniques</H1
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H1
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="DISKIMAGEHOWTO"
|
|
>8.1. How to make a simple disk image</A
|
|
></H1
|
|
><P
|
|
>This was contributed by Greg Alexander in October 2001.</P
|
|
><P
|
|
>What you need:
|
|
|
|
<P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>An executable version of Bochs. See <A
|
|
HREF="installation.html#DOWNLOADING"
|
|
>Downloading Bochs</A
|
|
> and <A
|
|
HREF="compiling.html"
|
|
>Compiling Bochs</A
|
|
>.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>The bximage program, included with Bochs.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>A FreeDOS boot disk, or a boot disk from another OS capable of
|
|
producing DOS partitions (e.g. a Linux install disk).</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>(Optional) mtools, a program for manipulating DOS disks/images.</P
|
|
></LI
|
|
></UL
|
|
> </P
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN2686"
|
|
>8.1.1. Create a flat image</A
|
|
></H2
|
|
><P
|
|
>Option 1: Using the Unix <B
|
|
CLASS="COMMAND"
|
|
>dd</B
|
|
> utility:</P
|
|
><P
|
|
>You will need to know the geometry of the disk you want to
|
|
create. You have to compute the disk sector count:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>Sectors = Cylinders * Heads * SectorsPerTrack</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>Use the dd command to create your file:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>dd if=/dev/zero of=teaching.img bs=512 count=<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>sectors</I
|
|
></TT
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
(replace "sectors" with the number you computed at the
|
|
previous step).</P
|
|
><P
|
|
>When you'll update your configuration file, please
|
|
fill in the same cylinders, heads and sector per
|
|
track values.</P
|
|
><P
|
|
>Option 2: Run <B
|
|
CLASS="COMMAND"
|
|
>bximage</B
|
|
> to create a disk image file.
|
|
You will be greeted with the following prompt:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>========================================================================
|
|
bximage
|
|
Disk Image Creation Tool for Bochs
|
|
========================================================================
|
|
|
|
Do you want to create a floppy disk image or a hard disk image?
|
|
Please type hd or fd. [hd] </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>Since we are creating a hard disk image, accept the default of hd by
|
|
pressing <B
|
|
CLASS="KEYCAP"
|
|
>Enter</B
|
|
> or typing 'hd' and pressing
|
|
<B
|
|
CLASS="KEYCAP"
|
|
>Enter</B
|
|
>. Next, bximage will ask for the type of
|
|
hd to create:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>What kind of image should I create?
|
|
Please type flat, sparse or growing. [flat] </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>We want to create a simple flat image, so accept the default
|
|
by pressing <B
|
|
CLASS="KEYCAP"
|
|
>Enter</B
|
|
>. Then, bximage will ask
|
|
for the size of the disk image you want to create, in Megabytes:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>Enter the hard disk size in megabytes, between 1 and 32255
|
|
[10] </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>Enter the size of the hard disk you want to create, and press
|
|
<B
|
|
CLASS="KEYCAP"
|
|
>Enter</B
|
|
>.
|
|
Bochs will give you some information about the image it is creating, and
|
|
ask you for a filename to use for the file it is creating. I told it to
|
|
use the default of 10 megabytes, and was given the following information
|
|
along with the prompt for a filename:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>[10] 10
|
|
|
|
I will create a hard disk image with
|
|
cyl=20
|
|
heads=16
|
|
sectors per track=63
|
|
total sectors=20160
|
|
total size=9.84 megabytes
|
|
|
|
What should I name the image?
|
|
[c.img] </PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>At this point, type in the filename you want to use for the image. The
|
|
default of "c.img" is appropriate if this will be your only hard disk
|
|
image. After you have typed in the name of the filename you want to
|
|
use, press <B
|
|
CLASS="KEYCAP"
|
|
>Enter</B
|
|
>. Bximage will tell you it is writing the disk and
|
|
will display a status bar as you wait. When it is finished, it will
|
|
give you a final status report and tell you a line that should be added
|
|
to your <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
> when you want to use this disk image. I named my
|
|
10 Megabyte image "teaching.img" and the output of bximage looked like
|
|
this:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>[c.img] teaching.img
|
|
|
|
Writing: [..........] Done.
|
|
|
|
I wrote 10321920 bytes to teaching.img.</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The following line should appear in your <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
>:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> <A
|
|
HREF="bochsrc.html#BOCHSOPT-ATA-MASTER-SLAVE"
|
|
>ata0-master</A
|
|
>: type=disk, path="teaching.img", mode=flat, cylinders=20, heads=16, spt=63</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>At this point, a file called "teaching.img" was created in my current
|
|
directory and is ready to be used as an image file for a Bochs session.</P
|
|
><DIV
|
|
CLASS="TIP"
|
|
><BLOCKQUOTE
|
|
CLASS="TIP"
|
|
><P
|
|
><B
|
|
>Tip: </B
|
|
>You may want to name your image <TT
|
|
CLASS="FILENAME"
|
|
>teaching_20-16-63.img</TT
|
|
>
|
|
so that you always know the values to use for CHS.</P
|
|
></BLOCKQUOTE
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECTION"
|
|
><H2
|
|
CLASS="SECTION"
|
|
><A
|
|
NAME="AEN2721"
|
|
>8.1.2. Partition and format your image file</A
|
|
></H2
|
|
><P
|
|
>Option 1: Using FreeDOS (Advantage: Creates a MBR on the partition.)</P
|
|
><P
|
|
>First, you need to edit the <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
> file that Bochs uses for
|
|
configuration information (see <A
|
|
HREF="search-order.html"
|
|
>Section 5.2</A
|
|
>). Open <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
>
|
|
with a text editor. Remove all lines in the file which start with "ata0-master:". Add the "ata0-master:"
|
|
line that was displayed when you ran bximage to <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
> at the
|
|
same place where you removed the old "ata0-master:" lines from.</P
|
|
><P
|
|
>Also, you need to download or create a FreeDOS (or DOS, or Windows, or
|
|
Linux) disk image. Modify the "floppya:" line in your <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
> to point
|
|
at the downloaded FreeDOS floppy image and change its status to "status=inserted".</P
|
|
><P
|
|
>Save and close your <TT
|
|
CLASS="FILENAME"
|
|
>bochsrc</TT
|
|
>. Now run Bochs (see <A
|
|
HREF="using-bochs.html"
|
|
>Chapter 5</A
|
|
>).</P
|
|
><P
|
|
>Use the standard FreeDOS commands <B
|
|
CLASS="COMMAND"
|
|
>fdisk</B
|
|
> and
|
|
<B
|
|
CLASS="COMMAND"
|
|
>format</B
|
|
> to format your hard
|
|
drive image. You must make the image bootable to be able to boot
|
|
without a floppy disk. However, creating a bootable disk image is best
|
|
done with a boot disk from the OS you intend to install on the image.</P
|
|
><P
|
|
>Option 2: Using mtools (Disadvantage: Cannot create bootable images
|
|
without a MBR image.)</P
|
|
><P
|
|
>Use a text editor to add the following line to the file <TT
|
|
CLASS="FILENAME"
|
|
>~/.mtoolsrc</TT
|
|
>:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>drive c: file="<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>path</I
|
|
></TT
|
|
>/filename.img" partition=1</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>Save and close <TT
|
|
CLASS="FILENAME"
|
|
>.mtoolsrc</TT
|
|
>. Next, execute the following commands to
|
|
create a partition table for the drive image:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>mpartition -I -s <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>spt</I
|
|
></TT
|
|
> -t <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>cyl</I
|
|
></TT
|
|
> -h <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>heads</I
|
|
></TT
|
|
> c:
|
|
mpartition -cpv -s <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>spt</I
|
|
></TT
|
|
> -t <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>cyl</I
|
|
></TT
|
|
> -h <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>heads</I
|
|
></TT
|
|
> c:</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>For example, for my 10 meg drive, I used:
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>mpartition -I -s 63 -t 20 -h 16 c:
|
|
mpartition -cpv -s 63 -t 20 -h 16 c:</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>Next, format the partition you just created using the mformat command:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>mformat c:</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>And you now have a formatted disk image containing a single DOS
|
|
partition.</P
|
|
><DIV
|
|
CLASS="NOTE"
|
|
><BLOCKQUOTE
|
|
CLASS="NOTE"
|
|
><P
|
|
><B
|
|
>Note: </B
|
|
>The mpartition command doesn't handle images larger than 1024 cylinders properly.
|
|
The partition size reported by fdisk is okay, but mformat reports only 504 MB
|
|
(tested with mtools 3.9.9).</P
|
|
></BLOCKQUOTE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="mailinglist-etiquette.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="mtools.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Mailing List Etiquette</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Use mtools to manipulate disk images</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
>
|