vlmcsd-floppy.7.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  1. <!-- Creator : groff version 1.22.3 -->
  2. <!-- CreationDate: Fri Oct 21 03:17:10 2016 -->
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  4. "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta name="generator" content="groff -Thtml, see www.gnu.org">
  8. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  9. <meta name="Content-Style" content="text/css">
  10. <style type="text/css">
  11. p { margin-top: 0; margin-bottom: 0; vertical-align: top }
  12. pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
  13. table { margin-top: 0; margin-bottom: 0; vertical-align: top }
  14. h1 { text-align: center }
  15. </style>
  16. <title>VLMCSD-FLOPPY</title>
  17. </head>
  18. <body>
  19. <h1 align="center">VLMCSD-FLOPPY</h1>
  20. <a href="#NAME">NAME</a><br>
  21. <a href="#DESCRIPTION">DESCRIPTION</a><br>
  22. <a href="#SUPPORTED HYPERVISORS">SUPPORTED HYPERVISORS</a><br>
  23. <a href="#SETUP">SETUP</a><br>
  24. <a href="#CONFIGURATION">CONFIGURATION</a><br>
  25. <a href="#OPERATION">OPERATION</a><br>
  26. <a href="#PERMANENT CHANGES OF INITRD">PERMANENT CHANGES OF INITRD</a><br>
  27. <a href="#FAQ">FAQ</a><br>
  28. <a href="#FILES">FILES</a><br>
  29. <a href="#BUGS">BUGS</a><br>
  30. <a href="#AUTHOR">AUTHOR</a><br>
  31. <a href="#CREDITS">CREDITS</a><br>
  32. <a href="#SEE ALSO">SEE ALSO</a><br>
  33. <hr>
  34. <h2>NAME
  35. <a name="NAME"></a>
  36. </h2>
  37. <p style="margin-left:11%; margin-top: 1em">floppy144.vfd -
  38. a bootable floppy disk with Linux and <b>vlmcsd</b>(8)</p>
  39. <h2>DESCRIPTION
  40. <a name="DESCRIPTION"></a>
  41. </h2>
  42. <p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
  43. is an image of a bootable floppy that contains a minimal
  44. version of Linux and <b>vlmcsd</b>(8). It requires only 16
  45. MB of RAM. Its primary purpose is to run <b>vlmcsd</b>(8) in
  46. a small virtual machine which makes it easy to use
  47. <b>vlmcsd</b>(8) to activate the virtual machine&rsquo;s
  48. host computer which is not possible in Windows 8.1 and up.
  49. The floppy image is a standard 3,5&quot; floppy with 1.44 MB
  50. storage. It is formatted with a FAT12 filesystem. The floppy
  51. can be mounted to apply several customizations.</p>
  52. <h2>SUPPORTED HYPERVISORS
  53. <a name="SUPPORTED HYPERVISORS"></a>
  54. </h2>
  55. <p style="margin-left:11%; margin-top: 1em">The floppy
  56. image has been tested with the following hypervisors:</p>
  57. <p style="margin-left:22%; margin-top: 1em">VMWare,
  58. VirtualBox, Hyper-V and QEMU</p>
  59. <p style="margin-left:11%; margin-top: 1em">Others are
  60. likely to work.</p>
  61. <h2>SETUP
  62. <a name="SETUP"></a>
  63. </h2>
  64. <p style="margin-left:11%; margin-top: 1em">Create a new
  65. virtual machine. Assign 16 MB of RAM. Add a floppy drive and
  66. attach <b>floppy144.vfd</b> to this drive. Do not create a
  67. virtual hard disk. Setup the virtual machine to boot from a
  68. floppy drive (VirtualBox has floppy boot disabled by
  69. default). If possible, setup a virtual machine with plain
  70. old BIOS (not UEFI). If you created an UEFI virtual machine,
  71. enable the compatibility support mode (CSM) to allow a BIOS
  72. compatible boot. Set number of CPUs to 1. The Linux kernel
  73. is not capable of SMP. Remove IDE, SATA, SCSI and USB
  74. support if possible. The Linux kernel can&rsquo;t handle
  75. this and ignores any devices connected to these buses.</p>
  76. <p style="margin-left:11%; margin-top: 1em">Setup an
  77. ethernet card. The following models are supported:</p>
  78. <p style="margin-left:22%; margin-top: 1em">Intel PRO/1000
  79. <br>
  80. AMD PCNET III <br>
  81. AMD PCNET32 <br>
  82. VMWare vmxnet3 (paravirtualized driver used by VMWare) <br>
  83. virtio (paravirtualized driver used by VirtualBox, QEMU, KVM
  84. and lguest)</p>
  85. <p style="margin-left:11%; margin-top: 1em">Most
  86. hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by
  87. default. Selecting a paravirtualized driver slightly
  88. improves performance. In VirtualBox you can simply select
  89. virtio in the network configuration dialog. VMWare requires
  90. that you add or change the VMX file. Use
  91. &rsquo;ethernet0.virtualDev&nbsp;=&nbsp;&quot;vmxnet3&quot;&rsquo;
  92. in your VMWare config file.</p>
  93. <p style="margin-left:11%; margin-top: 1em">If you are
  94. using QEMU, you must also setup a TAP adapter. Port
  95. redirection does not work to activate your own computer.</p>
  96. <h2>CONFIGURATION
  97. <a name="CONFIGURATION"></a>
  98. </h2>
  99. <p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
  100. can be customized to fit your needs. This is done by editing
  101. the file syslinux.cfg on the floppy image. The floppy image
  102. must be mounted. Under Linux you can simply attach
  103. <b>floppy144.vfd</b> to a loop device which is mountable
  104. like any other block device. For Windows you must use some
  105. software that allows mounting a floppy image, e.g.
  106. <a href="http://www.osforensics.com/tools/mount-disk-images.html">OSFMount</a></p>
  107. <p style="margin-left:11%; margin-top: 1em">OSFMount works
  108. under all Windows versions beginning with Windows XP up to
  109. Windows 10 (32- and 64-bit).</p>
  110. <p style="margin-left:11%; margin-top: 1em">The default
  111. syslinux.cfg file looks like this:</p>
  112. <p style="margin-left:22%; margin-top: 1em"><small>prompt 0
  113. <br>
  114. TIMEOUT 50 <br>
  115. default dhcp</small></p>
  116. <p style="margin-left:22%; margin-top: 1em"><small>LABEL
  117. dhcp <br>
  118. KERNEL bzImage <br>
  119. APPEND vga=773 quiet initrd=initrd KBD=us
  120. LISTEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
  121. NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
  122. ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
  123. GUEST_PASSWORD=vlmcsd INETD=Y
  124. WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
  125. OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
  126. OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
  127. HWID=36:4F:46:3A:88:63:D3:5F</small></p>
  128. <p style="margin-left:22%; margin-top: 1em"><small>LABEL
  129. static <br>
  130. KERNEL bzImage <br>
  131. APPEND vga=773 quiet initrd=initrd KBD=fr
  132. LISTEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
  133. IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24
  134. IPV4_GATEWAY=192.168.20.2 IPV4_DNS1=192.168.20.2
  135. IPV4_DNS2=NONE NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
  136. ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
  137. GUEST_PASSWORD=vlmcsd INETD=Y</small></p>
  138. <p style="margin-left:11%; margin-top: 1em">There are two
  139. configurations in this files: <i>dhcp</i> (for configuring
  140. the IPv4 network via DHCP) and <i>static</i> (for a static
  141. IPv4 configuration). The kernel always boots the <i>dhcp</i>
  142. configuration without asking (lines &rsquo;prompt 0&rsquo;
  143. and &rsquo;default dhcp&rsquo;). You can simply change the
  144. default configuration to <i>static</i> and then customize
  145. the APPEND line in the <i>static</i> configuration. For more
  146. details how to customize the syslinux.cfg file see
  147. <b>syslinux</b>(1).</p>
  148. <p style="margin-left:11%; margin-top: 1em">Each APPPEND
  149. line contains one or more items seperated by spaces. <b>All
  150. items are case-sensitive</b>. The following parameters can
  151. be customized: <b><br>
  152. vga=</b><i>vesa-video-mode</i></p>
  153. <p style="margin-left:22%;">Sets the VESA display mode for
  154. the virtual machine. The parameter is not optional. If you
  155. ommit it, you will not see anything on the screen. 773 means
  156. 1024x768 with 256 colors. See
  157. <a href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers">Wikipedia</a>
  158. for more video modes. Note that all 16 color (4-bit) modes
  159. will not work. Use 8-bit (256 colors), 16-bit (65536
  160. colors), 24-bit and 32-bit (&gt; 16 Million colors) only.
  161. All modes above 1280x1024 are non-VESA-standard and vary for
  162. all (virtual) graphic cards.</p>
  163. <table width="100%" border="0" rules="none" frame="void"
  164. cellspacing="0" cellpadding="0">
  165. <tr valign="top" align="left">
  166. <td width="11%"></td>
  167. <td width="7%">
  168. <p><b>quiet</b></p></td>
  169. <td width="4%"></td>
  170. <td width="78%">
  171. <p>This causes the kernel not display the its log during
  172. boot. You may omit <b>quiet</b> but it doesn&rsquo;t make
  173. much sense. The boot log is actually very verbose and
  174. scrolls away from screen quickly. If any errors occur during
  175. boot, they will be displayed even if <b>quiet</b> is present
  176. in the APPEND line. You may evaluate the complete boot log
  177. later by using the dmesg command or the menu on
  178. /dev/tty8.</p> </td></tr>
  179. </table>
  180. <p style="margin-left:11%;"><b>initrd=</b><i>initial-ram-disk-file</i></p>
  181. <p style="margin-left:22%;">This defines the initial ram
  182. disk that the kernel will read. There is only one initial
  183. ram disk on the floppy thus leave <i>initrd=initrd</i> as it
  184. is.</p>
  185. <p style="margin-left:11%;"><b>KBD=</b><i>keyboard-layout-name</i></p>
  186. <p style="margin-left:22%;">This allows you to select the
  187. keyboard layout. <i>keyboard-layout-name</i> is usually the
  188. ISO 3166-1 (top level domain) code for a country. A list of
  189. valid <i>keyboard-layout-name</i>s can be accessed via the
  190. menu system on /dev/tty8 (press ALT-F8). Note, that this is
  191. a keyboard driver only. There is no Unicode font support in
  192. <b>floppy144.vfd</b> (due to the fact that the kernel uses a
  193. generic VESA framebuffer device only). Characters beyond
  194. ASCII work for Western European languages only but not
  195. Eastern European, Greek, Cyrillic, Arabic, Hebrew, CJK and
  196. other languages. There is no need in <b>floppy144.vfd</b> to
  197. enter any characters outside ASCII. The purpose of the
  198. keyboard maps are that you will find characters like dash,
  199. backslash, brackets, braces, etc. at the usual place on your
  200. keyboard.</p>
  201. <p style="margin-left:11%;"><b>LISTEN=</b>PRIVATE[:<i>tcp-port</i>]
  202. | <i><br>
  203. ip-address</i>[:<i>tcp-port</i>][,<i>ip-address</i>[:<i>tcp-port</i>]][,...]</p>
  204. <p style="margin-left:22%;">One or more combinations of IP
  205. addresses and optional TCP port seperated by commas that
  206. <b>vlmcsd</b>(8) should listen on or PRIVATE to listen on
  207. all private IP addresses only. The default port is 1688. If
  208. you use an explicit port number, append it to the IP address
  209. seperated by a colon. If you use a port number and the IP
  210. address contains colons, you must enclose the IP address in
  211. brackets. For example
  212. <i>192.168.0.2,[fd00::dead:beef]:5678</i> causes
  213. <b>vlmcsd</b>(8) to listen on 192.168.0.2 port 1688 and
  214. fd00::dead:beef port 5678.</p>
  215. <p style="margin-left:11%;"><b>WINDOWS=</b><i>epid</i></p>
  216. <p style="margin-left:22%;">Defines the ePID that is used
  217. for Windows activations. If you ommit this parameter, vlmcsd
  218. generates a random ePID when it is started.</p>
  219. <p style="margin-left:11%;"><b>OFFICE2010=</b><i>epid</i></p>
  220. <p style="margin-left:22%;">Defines the ePID that is used
  221. for Office 2010 activations. If you ommit this parameter,
  222. <b>vlmcsd</b>(8) generates a random ePID when it is
  223. started.</p>
  224. <p style="margin-left:11%;"><b>OFFICE2013=</b><i>epid</i></p>
  225. <p style="margin-left:22%;">Defines the ePID that is used
  226. for Office (versions 2013 and greater) activations. If you
  227. ommit this parameter, <b>vlmcsd</b>(8) generates a random
  228. ePID when it is started.</p>
  229. <p style="margin-left:11%;"><b>HWID=</b><i>hwid</i></p>
  230. <p style="margin-left:22%;">Defines the HwId that is sent
  231. to clients. <i>hwid</i> must be specified as 16 hex digits
  232. that are interpreted as a series of 8 bytes (big endian).
  233. Any character that is not a hex digit will be ignored. This
  234. is for better readability.</p>
  235. <p style="margin-left:11%;"><b>TZ=</b><i>posix-time-zone-string</i></p>
  236. <p style="margin-left:22%;">Set the time zone to
  237. <i>posix-time-zone-string</i>. It must conform to the
  238. <a href="http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html">POSIX</a>
  239. specification. Simplified time zone strings like
  240. &quot;Europe/London&quot; or &quot;America/Detroit&quot; are
  241. not allowed. This has the very simple reason that there is
  242. no space on the floppy to store the time zone database.</p>
  243. <p style="margin-left:22%; margin-top: 1em">The string
  244. <i>CET-1CEST,M3.5.0,M10.5.0/3</i> (most countries in Europe)
  245. reads as follows:</p>
  246. <table width="100%" border="0" rules="none" frame="void"
  247. cellspacing="0" cellpadding="0">
  248. <tr valign="top" align="left">
  249. <td width="22%"></td>
  250. <td width="13%">
  251. <p><i>CET</i></p></td>
  252. <td width="2%"></td>
  253. <td width="63%">
  254. <p>The standard (winter) time zone has the name CET.</p></td></tr>
  255. <tr valign="top" align="left">
  256. <td width="22%"></td>
  257. <td width="13%">
  258. <p><i>-1</i></p></td>
  259. <td width="2%"></td>
  260. <td width="63%">
  261. <p>The standard time zone is one hour east of UTC. Negative
  262. numbers are east of UTC. Positive numbers are west of
  263. UTC.</p> </td></tr>
  264. <tr valign="top" align="left">
  265. <td width="22%"></td>
  266. <td width="13%">
  267. <p><i>CEST</i></p></td>
  268. <td width="2%"></td>
  269. <td width="63%">
  270. <p>The daylight saving (summer) time zone has the name
  271. CEST.</p> </td></tr>
  272. <tr valign="top" align="left">
  273. <td width="22%"></td>
  274. <td width="13%">
  275. <p><i>M3.5.0</i></p></td>
  276. <td width="2%"></td>
  277. <td width="63%">
  278. <p>Daylight saving time starts in the 3rd month (March) on
  279. the 5th (=last) occurence of weekday 0 (Sunday) at 2
  280. o&rsquo;clock (2 o&rsquo;clock is a default value).</p></td></tr>
  281. <tr valign="top" align="left">
  282. <td width="22%"></td>
  283. <td width="13%">
  284. <p><i>M10.5.0/3</i></p></td>
  285. <td width="2%"></td>
  286. <td width="63%">
  287. <p>Daylight saving time ends in the 10th month (October) on
  288. the 5th (=last) occurence of weekday 0 (Sunday) at 3
  289. o&rsquo;clock.</p> </td></tr>
  290. </table>
  291. <p style="margin-left:22%; margin-top: 1em">If you
  292. don&rsquo;t have daylight saving time, things are easier.
  293. For Chinese Standard Time for example, just use <i>CST-8</i>
  294. as the time zone string.</p>
  295. <p style="margin-left:22%; margin-top: 1em">On a Linux
  296. desktop system, you can use a command like
  297. <b>strings&nbsp;/usr/share/zoneinfo/America/New_York&nbsp;|&nbsp;tail&nbsp;-n1</b>.
  298. This should return <i>EST5EDT,M3.2.0,M11.1.0</i>. You can
  299. use the returned string for the
  300. <b>TZ=</b><i>posix-time-zone-string</i> parameter.</p>
  301. <p style="margin-left:11%;"><b>IPV4_CONFIG=</b>DHCP |
  302. STATIC</p>
  303. <p style="margin-left:22%;">This determines how you want to
  304. configure IPv4 networking. If you use
  305. <b>IPV4_CONFIG=</b>STATIC, you must supply additional
  306. paramaters to the APPEND command line.</p>
  307. <p style="margin-left:11%;"><b>IPV4_ADDRESS=</b><i>ipv4-address</i>/<i>CIDR-mask</i></p>
  308. <p style="margin-left:22%;">Use <i>ipv4-address</i> with
  309. netmask <i>CIDR-mask</i> for static IPv4 configuration. The
  310. netmask must not be ommitted. For IPv4 address 192.168.12.17
  311. with a netmask of 255.255.255.0 use <i>192.168.12.17/24</i>.
  312. For IPv4 address 10.4.0.8 with a netmask of 255.255.0.0 use
  313. 10.4.0.8/16. This paramater is ignored, if you used
  314. <b>IPV4_CONFIG=</b>DHCP.</p>
  315. <p style="margin-left:11%;"><b>IPV4_GATEWAY=</b><i>ipv4-address</i>
  316. | NONE</p>
  317. <p style="margin-left:22%;">Use <i>ipv4-address</i> as the
  318. default gateway. This is usually the IPv4 address of your
  319. router. You may specify NONE explicitly for no gateway. In
  320. this case your virtual machine is only visible on its local
  321. LAN. This paramater is ignored, if you used
  322. <b>IPV4_CONFIG=</b>DHCP.</p>
  323. <p style="margin-left:11%;"><b>IPV4_DNS1=</b><i>ipv4-address</i>
  324. | NONE</p>
  325. <p style="margin-left:22%;">Use <i>ipv4-address</i> as the
  326. primary name server. In home networks this is often the IPv4
  327. address of your router. You may specify NONE explicitly. If
  328. you specified NONE for both <b>IPV4_DNS1=</b> and
  329. <b>IPV4_DNS2=</b>, your virtual machine cannot resolve host
  330. names to IP addresses. While <b>vlmcsd</b>(8) works
  331. perfectly without DNS servers, you must use IP addresses
  332. when referring to a host, e.g. for specifying an NTP server.
  333. This paramater is ignored, if you used
  334. <b>IPV4_CONFIG=</b>DHCP.</p>
  335. <p style="margin-left:11%;"><b>IPV4_DNS2=</b><i>ipv4-address</i>
  336. | NONE</p>
  337. <p style="margin-left:22%;">Use <i>ipv4-address</i> as the
  338. secondary name server. It serves as a backup if the primary
  339. name server is not available. Home networks often
  340. don&rsquo;t have a secondary name server. In this case set
  341. this to NONE. This paramater is ignored, if you used
  342. <b>IPV4_CONFIG=</b>DHCP.</p>
  343. <p style="margin-left:11%;"><b>NTP_SERVER=</b><i>host-name</i>
  344. | <i>ipv4-address</i> | NONE</p>
  345. <p style="margin-left:22%;">This sets the name of a time
  346. server using the NTP protocol. If your virtualization
  347. environment reliably provides time, you can set this to
  348. NONE. Don&rsquo;t use a public time service like
  349. pool.ntp.org or time.nist.gov if you have a (at least
  350. somewhat reliable) NTP server in your LAN.</p>
  351. <p style="margin-left:11%;"><b>HOST_NAME=</b><i>host-name</i></p>
  352. <p style="margin-left:22%;">Sets the local host name for
  353. your virtual machine. It can be a single name or a
  354. fully-qualified domain name FQDN. If you used
  355. <b>IPV4_CONFIG=</b>DHCP and your DHCP server returns a
  356. domain name, the domain part of an FQDN will be replaced by
  357. that name. This host name or host part of an FQDN will not
  358. replaced by a host name returned via DHCP. The host name is
  359. not important for the operation of <b>floppy144.vfd</b>.</p>
  360. <p style="margin-left:11%;"><b>ROOT_PASSWORD=</b><i>password</i></p>
  361. <p style="margin-left:22%;">Sets the password of the root
  362. user.</p>
  363. <p style="margin-left:11%;"><b>USER_NAME=</b><i>username</i></p>
  364. <p style="margin-left:22%;">Sets the name of for a general
  365. user with no special privileges. This user can login but
  366. can&rsquo;t do much.</p>
  367. <p style="margin-left:11%;"><b>USER_PASSWORD=</b><i>password</i></p>
  368. <p style="margin-left:22%;">Sets the password for the user
  369. defined by <b>USER_NAME=</b><i>username</i>.</p>
  370. <p style="margin-left:11%;"><b>GUEST_PASSWORD=</b><i>password</i></p>
  371. <p style="margin-left:22%;">Sets the password for the
  372. pre-defined guest user. This user has the same priviliges
  373. (none) as the user defined by
  374. <b>USER_NAME=</b><i>username</i>.</p>
  375. <p style="margin-left:11%;"><b>INETD=</b>Y | N</p>
  376. <p style="margin-left:22%;"><b>INETD=</b>Y specifies that
  377. <b>inetd</b>(8) should automatically be started. That means
  378. you can telnet and ftp to your virtual machine.</p>
  379. <h2>OPERATION
  380. <a name="OPERATION"></a>
  381. </h2>
  382. <p style="margin-left:11%; margin-top: 1em"><b>Diskless
  383. System</b> <br>
  384. The <b>floppy144.vfd</b> virtual machine is a diskless
  385. system that works entirely from RAM. The file system is
  386. actually a RAM disk that is created from the
  387. <b>initrd</b>(4) file on the floppy image.</p>
  388. <p style="margin-left:11%; margin-top: 1em">Anything
  389. you&rsquo;ll do from inside the virtual machine, for
  390. instance editing a config file, will be lost when you reboot
  391. the machine. So, if you ever asked yourself if <b>rm -fr
  392. /</b> (root privileges required) really deletes all files
  393. from all mounted partitions, the <b>floppy144.vfd</b> VM is
  394. the right place to test it (Yes, it does).</p>
  395. <p style="margin-left:11%; margin-top: 1em">The VM uses a
  396. RAM disk, because the Linux kernel had to be stripped down
  397. to essential features to fit on a 1.44 MB floppy. It has no
  398. floppy driver, no disk file system drivers and no block
  399. layer (cannot use disks of any type).</p>
  400. <p style="margin-left:11%; margin-top: 1em"><b>System
  401. startup</b> <br>
  402. The kernel boots up very quickly and the init script
  403. (/sbin/init) waits 5 seconds. In these 5 seconds you
  404. can:</p>
  405. <p style="margin-left:22%; margin-top: 1em">Press
  406. &rsquo;m&rsquo; to manually enter the time zone and the IPv4
  407. parameters. These will be queried interactively. <br>
  408. Press &rsquo;t&rsquo; to manually enter the time zone only.
  409. <br>
  410. Press &rsquo;s&rsquo; to escape to a shell.</p>
  411. <p style="margin-left:11%; margin-top: 1em">If you
  412. don&rsquo;t want to 5 seconds for continuing the init
  413. process, you can press any other key to speed things up. At
  414. the end of the init script you should see
  415. that<b>vlmcsd</b>(8) has started. You should also see the IP
  416. addresses and all user names and passwords.</p>
  417. <p style="margin-left:11%; margin-top: 1em"><b>Logging into
  418. the system</b> <br>
  419. There are 5 local logins provided on /dev/tty2 to /dev/tty6.
  420. To switch to these logins, simply press ALT-F2 to ALT-F6. To
  421. return to the console on /dev/tty1, press ALT-F1. If
  422. <b>inetd</b>(8) is running you can also use
  423. <b>telnet</b>(1). This allows you use a terminal program
  424. (e.g. putty) that can utilize your keyboard layout, can be
  425. resized and has full UTF-8 support. The local terminals
  426. support US keyboard layout only. Please be aware that
  427. <b>telnet</b>(1) is unencrypted and everything including
  428. passwords is transmitted in clear text. There is not enough
  429. space for an ssh server like <b>sshd</b>(8) or
  430. <b>dropbear</b>(8).</p>
  431. <p style="margin-left:11%; margin-top: 1em">The floppy
  432. image only provides basic Unix commands. Type <i>busybox</i>
  433. or <i>ll /bin</i> to get a list. The only editor available
  434. is <b>vi</b>(1). If you don&rsquo;t like vi, you may
  435. transfer config files via <b>ftp</b>(1) edit them with the
  436. editor of your choice and transfer them back to the
  437. <b>floppy144.vfd</b> VM.</p>
  438. <p style="margin-left:11%; margin-top: 1em"><b>The menu
  439. system</b> <br>
  440. You&rsquo;ll find a menu system on /dev/tty8 (press ALT-F8
  441. to see it). It allows you performing some administrative
  442. tasks and to view various system information. It is mainly
  443. for users that do not have much experience with Unix
  444. commands. <b><br>
  445. 1) (Re)start vlmcsd</b></p>
  446. <p style="margin-left:22%;">Starts or restarts
  447. <b>vlmcsd</b>(8). This is useful if you changed
  448. <b>/etc/vlmcsd.ini</b>(5).</p>
  449. <p style="margin-left:11%;"><b>2) Stop vlmcsd</b></p>
  450. <p style="margin-left:22%;">Stops <b>vlmcsd</b>(8).</p>
  451. <p style="margin-left:11%;"><b>3) (Re)start inetd</b></p>
  452. <p style="margin-left:22%;">Starts or restarts
  453. <b>inetd</b>(8). If <b>inetd</b>(8) is restarted, current
  454. clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
  455. <b>not</b> be dropped. They can continue their sessions.
  456. This is useful if you changed <b>/etc/inetd.conf</b>(5).</p>
  457. <p style="margin-left:11%;"><b>4) Stop inet</b></p>
  458. <p style="margin-left:22%;">Stops <b>inetd</b>(8). All
  459. clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
  460. be dropped immediately.</p>
  461. <p style="margin-left:11%;"><b>5) Change the time
  462. zone</b></p>
  463. <p style="margin-left:22%;">Just in case you missed
  464. pressing &rsquo;t&rsquo; during system startup. This also
  465. restarts <b>vlmcsd</b>(8) if it was running to notify it
  466. that the time zone has changed. Restarting <b>vlmcsd</b>(8)
  467. allows currently connected clients to finish their
  468. activation.</p>
  469. <p style="margin-left:11%;"><b>k) Change keyboard
  470. layout</b></p>
  471. <p style="margin-left:22%;">This allows you to select a
  472. different keyboard layout.</p>
  473. <p style="margin-left:11%;"><b>6) Show all kernel boot
  474. parameters</b></p>
  475. <p style="margin-left:22%;">Shows all parameters passed to
  476. the kernel via syslinux.cfg. If you experience any
  477. unexpected behavior, you can use this to check if your
  478. APPEND line in syslinux.cfg is correct. The output is piped
  479. through <b>less(1)</b>. So press &rsquo;q&rsquo; to return
  480. to the menu.</p>
  481. <p style="margin-left:11%;"><b>7) Show boot log
  482. (dmesg)</b></p>
  483. <p style="margin-left:22%;">Shows the boot log of the
  484. kernel. The output is piped through <b>less(1)</b>. So press
  485. &rsquo;q&rsquo; to return to the menu.</p>
  486. <p style="margin-left:11%;"><b>8) Show TCP/IP
  487. configuration</b></p>
  488. <p style="margin-left:22%;">Shows the TCP/IP configuration,
  489. listening sockets and current TCP and UDP connections.
  490. Useful, if you problems with net connectivity. The output is
  491. piped through <b>less(1)</b>. So press &rsquo;q&rsquo; to
  492. return to the menu.</p>
  493. <p style="margin-left:11%;"><b>9) Show running
  494. processes</b></p>
  495. <p style="margin-left:22%;">Shows all processes including
  496. memory and CPU usage. Display will updated every second.
  497. Press &rsquo;q&rsquo; or CTRL-C to return to the menu.</p>
  498. <p style="margin-left:11%;"><b>s) Shutdown</b></p>
  499. <p style="margin-left:22%;">Shuts down the
  500. <b>floppy144.vfd</b> virtual machine. Proper shutdown is not
  501. required. It is ok to use a hard power off in your
  502. virtualization program.</p>
  503. <p style="margin-left:11%;"><b>r) Reboot</b></p>
  504. <p style="margin-left:22%;">Reboots the
  505. <b>floppy144.vfd</b> virtual machine. Proper reboot is not
  506. required. It is ok to use a hard reset in your
  507. virtualization program.</p>
  508. <h2>PERMANENT CHANGES OF INITRD
  509. <a name="PERMANENT CHANGES OF INITRD"></a>
  510. </h2>
  511. <p style="margin-left:11%; margin-top: 1em">If you want to
  512. change any file or script of the file system (e.g. the init
  513. script /sbin/init or /etc/vlmcsd.ini), you&rsquo;ll need to
  514. mount the floppy image, unpack the <b>initrd</b>(4) file,
  515. make any modfications you like, create a new
  516. <b>initrd</b>(4) file and copy it to the mounted floppy.</p>
  517. <p style="margin-left:11%; margin-top: 1em">To unpack the
  518. <b>initrd</b>(4) file you&rsquo;ll need <b>xz</b>(1) (or
  519. <b>lzma</b>(1) on older unix-like OSses) and <b>cpio</b>(1).
  520. These can be installed using your package manager on all
  521. major distros. It is ok to use the BSD version of
  522. <b>cpio</b>(1). No need to get the GNU version for BSD
  523. users. Provided the floppy is mounted in /mnt/floppy do the
  524. following: <br>
  525. Create an empty directory</p>
  526. <p style="margin-left:22%;">mkdir
  527. ~/vlmcsd-floppy-initrd</p>
  528. <p style="margin-left:11%;">cd into that directory</p>
  529. <p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
  530. <p style="margin-left:11%;">Unpack initrd</p>
  531. <p style="margin-left:22%;">cat /mnt/floppy/initrd | unlzma
  532. | cpio -i</p>
  533. <p style="margin-left:11%; margin-top: 1em">After applying
  534. your changes build a new <b>initrd</b>(4) file: <br>
  535. cd into your directory</p>
  536. <p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
  537. <p style="margin-left:11%;">Create the packed file</p>
  538. <p style="margin-left:22%;">find . | cpio -o -H newc | lzma
  539. &gt; /mnt/floppy/initrd</p>
  540. <p style="margin-left:11%; margin-top: 1em">Do not try to
  541. use &rsquo;lzma -9&rsquo; to achive better compression. The
  542. kernel can&rsquo;t read the resulting file. While
  543. customizing the <b>initrd</b>(4) file works on almost any
  544. unix-like OS, it does not work on Windows even not with
  545. Cygwin. The reason is that the NTFS file system can&rsquo;t
  546. handle uids and gids. These cannot be preserved when
  547. unpacking the <b>cpio</b>(1) archive to NTFS. If you use the
  548. WSL subsystem of Windows 10 Redstone (Anniversary Update)
  549. and later, you must make sure to unpack the <b>initrd</b>(4)
  550. file to a directory on VolFs (normally everything that is
  551. <b>not</b> mounted under /mnt). The <b>initrd</b>(4) file
  552. can be on a VolFs or DriveFs.</p>
  553. <h2>FAQ
  554. <a name="FAQ"></a>
  555. </h2>
  556. <p style="margin-left:11%; margin-top: 1em"><b>On what
  557. distro is the floppy image based?</b> <br>
  558. None. Besides the boot loader <b>ldlinux.sys</b>, there are
  559. only three binaries: The Linux kernel <b>bzImage</b>,
  560. <b>busybox</b>(1) and <b>vlmcsdmulti-x86-musl-static</b>.
  561. <b>bzImage</b> and <b>busybox</b>(1) have been compiled with
  562. carefully selected configuration parameters not found in any
  563. distro. This was neccesary to fit everything on a 1.44 MB
  564. floppy.</p>
  565. <p style="margin-left:11%; margin-top: 1em"><b>Why is a
  566. rather old Linux kernel (3.12) used?</b> <br>
  567. Linux 3.12 is the last kernel that can be booted with 16 MB
  568. of RAM. Beginning with Linux 3.13 it requires much more
  569. memory (about 80 MB) to boot. The floppy image is regularly
  570. tested with newer kernels. Everything works except that you
  571. need to assign much more main memory to the virtual
  572. machine.</p>
  573. <p style="margin-left:11%; margin-top: 1em"><b>Can the
  574. floppy be booted on bare metal?</b> <br>
  575. Basically yes. However, only Intel Pro/1000 and AMD PCNET32
  576. ethernet cards are supported by the kernel. In addition
  577. there is no USB support compiled into the kernel. That means
  578. you can only use an IBM AT or IBM PS/2 keyboard which are
  579. not available on newer hardware.</p>
  580. <h2>FILES
  581. <a name="FILES"></a>
  582. </h2>
  583. <p style="margin-left:11%; margin-top: 1em"><b>syslinux.cfg</b>,
  584. <b>vlmcsd.ini</b>(5)</p>
  585. <h2>BUGS
  586. <a name="BUGS"></a>
  587. </h2>
  588. <p style="margin-left:11%; margin-top: 1em">IPv6 cannot be
  589. configured with static or manual parameters. <br>
  590. DHCPv6 is not supported. <br>
  591. &acute;ip route add ...&rsquo; does not work. Use
  592. &rsquo;route add ...&rsquo; instead.</p>
  593. <h2>AUTHOR
  594. <a name="AUTHOR"></a>
  595. </h2>
  596. <p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
  597. has been created by Hotbird64</p>
  598. <h2>CREDITS
  599. <a name="CREDITS"></a>
  600. </h2>
  601. <p style="margin-left:11%; margin-top: 1em">Linus Torvalds
  602. et al. for the Linux kernel <br>
  603. Erik Andersen et al. for the original uClibc <br>
  604. Waldemar Brodkorb et al. for uClibc-ng <br>
  605. Denys Vlasenko et al. for BusyBox <br>
  606. H. Peter Anvin et al. for SYSLINUX</p>
  607. <h2>SEE ALSO
  608. <a name="SEE ALSO"></a>
  609. </h2>
  610. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
  611. <b>vlmcsd.ini</b>(5), <b>initrd</b>(4), <b>busybox</b>(1),
  612. <b>syslinux(1)</b></p>
  613. <hr>
  614. </body>
  615. </html>