INSTALLB.8
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:9k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH INSTALLBOOT 8
  2. .SH NAME
  3. installboot - make a device bootable
  4. .SH SYNOPSIS
  5. .B installboot -i(mage)
  6. .I image
  7. .RI [ label :] kernel
  8. .IR "mm fs" " ... " init
  9. .br
  10. .B installboot -(e)x(tract)
  11. .I image
  12. .br
  13. .B installboot -d(evice)
  14. .I device bootblock boot
  15. .RI [[ label :] image
  16. &...]
  17. .br
  18. .B installboot -b(oot)
  19. .I device bootblock boot
  20. .RI [ label :] image
  21. &...
  22. .br
  23. .B installboot -m(aster)
  24. .RI [ fix ]
  25. .I device masterboot
  26. .SH DESCRIPTION
  27. .de SP
  28. .if t .sp 0.4
  29. .if n .sp
  30. ..
  31. .B Installboot
  32. may be used to make a device bootable by constructing a kernel image and
  33. installing bootstrap code into the boot block of a Minix file system.  To
  34. understand how this can be done one first has to know what happens when a
  35. PC is booted.
  36. .PP
  37. When the power is turned on the typical PC will try to read the first sector
  38. from the first floppy disk or from the first hard disk into memory and execute
  39. it.  The code obtained from the hard disk (from the so-called master boot
  40. sector) will immediately replace itself by the code found in the first sector
  41. of the active partition.  Thus the PC is now executing the bootstrap code found
  42. in the first sector of /dev/fd0, /dev/hd1, /dev/hd2, /dev/hd3, or /dev/hd4.
  43. The bootstrap will locate the operating system on the device it itself was
  44. loaded from, load it, and execute it.
  45. .PP
  46. To make a Minix file system
  47. .B /dev/fd0
  48. mounted on
  49. .B /mnt
  50. bootable, enter the following:
  51. .SP
  52. .RS
  53. .ft B
  54. cp /usr/mdec/boot /mnt/boot
  55. .SP
  56. installboot -i /mnt/minix kernel mm fs init
  57. .SP
  58. installboot -d /dev/fd0 /usr/mdec/bootblock boot
  59. .ft P
  60. .RE
  61. .PP
  62. The "boot" program in the example is named the "boot monitor".  It is loaded
  63. by the bootblock code placed in the boot sector of /dev/fd0 and it will take
  64. care of loading the kernel image "minix" from the root directory of the
  65. file system.  See
  66. .BR monitor (8)
  67. for a description of the boot monitor.  Note that
  68. .B boot
  69. is a name in the file system on
  70. .B /dev/fd0
  71. in this example, the same file as
  72. .BR /mnt/boot .
  73. Making
  74. .B /mnt/minix
  75. is normally not necessary, there is usually a kernel image in the
  76. .B tools
  77. directory.
  78. .SH OPTIONS
  79. .B -i(mage)
  80. .I image
  81. .RI [ label :] kernel
  82. .IR "mm fs" " ... " init
  83. .RS
  84. The
  85. .B -image
  86. option (or the
  87. .B -i
  88. shorthand) combines the executable files needed to run Minix in one file.
  89. Only the names and a few zero bytes are inserted into the image.  The name
  90. is for identification and the zeros are used to pad separate pieces to
  91. sector boundaries for fast loading.
  92. .SP
  93. An executable may be prefixed by a label.  The monitor may be instructed to
  94. load processes by label.  So more than one kernel process may be included in
  95. the image, each with a different winchester driver for instance.  So if you
  96. have compiled two different kernels with an AT or XT driver then
  97. .SP
  98. .RS
  99. .BI "installboot -i" " image AT:at_kernel XT:xt_kernel mm fs init"
  100. .RE
  101. .SP
  102. will make an image with two different labeled kernels and one
  103. unlabeled set of the other binaries.
  104. .RE
  105. .PP
  106. .B -(e)x(tract)
  107. .I image
  108. .RS
  109. Extract the binaries from
  110. .I image
  111. under the names stored in the image.  (The name includes the optional label.)
  112. .RE
  113. .PP
  114. .B -d(evice)
  115. .I device bootblock boot
  116. .RI [[ label :] image
  117. &...]
  118. .RS
  119. Installs
  120. .I bootblock
  121. in the boot sector of
  122. .I device
  123. together with the disk addresses to
  124. .IR boot .
  125. These disk addresses are needed to load
  126. .I boot
  127. from the file system at boot time.  The argument
  128. .I boot
  129. is first searched in the file system on
  130. .IR device .
  131. If it is not found then it is read as a normal file and added at the end of
  132. the file system.  The file system should be smaller than the device it is on
  133. to allow this.  Any extra images are also added to the end as described
  134. under
  135. .BR -boot .
  136. (Make sure you understand all this.)
  137. .SP
  138. The device need not be mounted when
  139. .B installboot
  140. is run, nor does it matter if it is.
  141. .SP
  142. .B Installboot
  143. needs to be run again if
  144. .I boot
  145. is rewritten, because it will then occupy a new place on the disk.
  146. .SP
  147. Old boot parameters are kept if there are no images added.
  148. .RE
  149. .PP
  150. .B -b(oot)
  151. .I device bootblock boot
  152. .RI [ label :] image
  153. &...
  154. .RS
  155. This option fills a blank floppy in
  156. .I device
  157. with boot code and kernel images.  This "boot disk" does not have a root
  158. file system, only the boot monitor and Minix kernels.  The boot parameters
  159. sector is filled with code that enables menu options for selecting an
  160. image.  After loading an image, the monitor will ask you to insert a root
  161. file system diskette before starting Minix.
  162. .SP
  163. The labels used on the images should match those on the executables used
  164. inside the image.  You can put a comma separated list of labels on an image
  165. for each label used within the image.  For the image created earlier one
  166. would create a boot floppy like this:
  167. .SP
  168. .RS
  169. .nf
  170. .BI "installboot -b /dev/fd0 bootblock boot" " AT,XT:image"
  171. .fi
  172. .RE
  173. .SP
  174. If a label-list is omitted on an image, then that image will be selected by
  175. default.  (Like in the normal one image, no labels case.)
  176. .SP
  177. Note that
  178. .B -device
  179. and
  180. .B -boot
  181. together allow you to make a boot floppy with or without a root file system.
  182. With the boot code in the file system, attached to the end of it, or after
  183. the boot block.  And with one or more kernel images in the file system or
  184. at the end of the device.  Somewhat confusing.
  185. .RE
  186. .PP
  187. .B -m(aster)
  188. .RI [ fix ]
  189. .I device masterboot
  190. .RS
  191. This option installs the
  192. .I masterboot
  193. program into the boot sector of the given device.  If another device is
  194. given instead of
  195. .I masterboot
  196. then its bootstrap code is copied to
  197. .IR device .
  198. The master bootstrap on a hard disk boots the active partition on that disk
  199. at boot time.  The MS-DOS fdisk command normally puts a master bootstrap on
  200. the hard disk.  Minix has two bootstraps that can be used as a master
  201. bootstrap.  A fairly normal one named
  202. .B masterboot
  203. that works as follows:
  204. .RS
  205. .SP
  206. If the ALT key is held down while booting then '/dev/hd?' appears and you
  207. are expected to type a number key (0 - 9) to select the device to boot.
  208. .SP
  209. If
  210. .I fix
  211. (a small number) is given then the bootstrap is locked into booting the
  212. .BI /dev/hd fix
  213. disk or primary partition.  This is needed if 'boot *hdfINfP' is used from
  214. the monitor to boot an O.S. that needs the active flag set.
  215. .SP
  216. If installed on a Minix floppy then it will try to boot the next floppy or
  217. the first hard disk.  Ideal for floppies with just data on it, they will no
  218. longer obstruct the boot process if left in the drive.  Also a very useful
  219. trick to boot from floppy drive 1.
  220. .SP
  221. If installed on a hard disk then the active partition is selected and booted
  222. as usual, unless none of the partitions is marked active, then it will boot
  223. the next disk.  The latter is useful if you want to boot an operating
  224. system from the second disk by default.
  225. .RE
  226. .SP
  227. The second bootstrap is named
  228. .BR extboot .
  229. It has only one function, to boot the logical partition named by
  230. .IR fix .
  231. .I Fix
  232. is not optional for
  233. .B extboot
  234. and must be a number-letter pair, like
  235. .B 2c
  236. for
  237. .BR /dev/hd2c .
  238. .SP
  239. .B Extboot
  240. or
  241. .B masterboot
  242. with a fix key need not be installed in the hard disk master bootstrap per
  243. se if you don't want to mess with the DOS master bootstrap, or if you want
  244. keep the active flag functioning.  An extended partition or a non-root Minix
  245. partition are better candidates.  It seems logical to put
  246. .B extboot
  247. in the extended partition boot block.
  248. .SP
  249. A backup copy of the current master bootstrap (including the partition
  250. table) can be made with:
  251. .RS
  252. .SP
  253. dd if=fIdevicefP of=fIbackup-filefP count=1
  254. .SP
  255. .RE
  256. A simple 'cat fIbackup-filefP > fIdevicefP' will put it back.  You can
  257. also use
  258. .B fdisk /mbr
  259. under MS-DOS 5.0 (or newer) to restore the master bootstrap.
  260. .RE
  261. .RE
  262. .SH FILES
  263. .TP 25
  264. .B /usr/mdec/bootblock
  265. Minix bootstrap for the Minix root device.  To be placed in the boot sector.
  266. .TP
  267. .B /usr/mdec/boot
  268. Minix Boot Monitor.  Can usually be found in the root directory of a bootable
  269. device.
  270. .TP
  271. .B /usr/mdec/masterboot
  272. Master bootstrap.  Can be placed in the first sector of a disk to select the
  273. active partition.  In a Minix primary partition it selects the active
  274. subpartition.
  275. .TP
  276. .B /usr/mdec/extboot
  277. Extended partition bootstrap.
  278. .SH "SEE ALSO"
  279. .BR part (8),
  280. .BR monitor (8).
  281. .SH DIAGNOSTICS
  282. .I Boot
  283. doesn't fit on
  284. .I device
  285. .RS
  286. If there is no space on the device to add the boot code.  This usually
  287. means that there is no boot code in the file system you use
  288. .B installboot -device
  289. on.
  290. .RE
  291. .PP
  292. .I Image
  293. doesn't fit on
  294. .I device
  295. .RS
  296. If the device is too small for all the images you try to put on it.
  297. .SH BUGS
  298. It has four more options than the SunOS installboot program it is modeled
  299. after.
  300. .PP
  301. The bootblock code has been crunched to such ugliness that you can use it
  302. to scare little kids out of your garden.
  303. .SH AUTHOR
  304. Kees J. Bot (kjb@cs.vu.nl)