vlmcsd-floppy.7.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. <!-- Creator : groff version 1.22.3 -->
  2. <!-- CreationDate: Sun Dec 11 22:03:20 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. <p style="margin-left:11%;"><b>VLMCSD_EXTRA_ARGS=</b><i>comma-seperated-argument-list</i></p>
  380. <p style="margin-left:22%;">Allows you to specify
  381. additional command line options that will be passed to
  382. <b>vlmcsd</b>(8). Instead of spaces you use commas between
  383. arguments. Example: <b>VLMCSD_EXTRA_ARGS=</b>-c1,-K3,-M1</p>
  384. <h2>OPERATION
  385. <a name="OPERATION"></a>
  386. </h2>
  387. <p style="margin-left:11%; margin-top: 1em"><b>Diskless
  388. System</b> <br>
  389. The <b>floppy144.vfd</b> virtual machine is a diskless
  390. system that works entirely from RAM. The file system is
  391. actually a RAM disk that is created from the
  392. <b>initrd</b>(4) file on the floppy image.</p>
  393. <p style="margin-left:11%; margin-top: 1em">Anything
  394. you&rsquo;ll do from inside the virtual machine, for
  395. instance editing a config file, will be lost when you reboot
  396. the machine. So, if you ever asked yourself if <b>rm -fr
  397. /</b> (root privileges required) really deletes all files
  398. from all mounted partitions, the <b>floppy144.vfd</b> VM is
  399. the right place to test it (Yes, it does).</p>
  400. <p style="margin-left:11%; margin-top: 1em">The VM uses a
  401. RAM disk, because the Linux kernel had to be stripped down
  402. to essential features to fit on a 1.44 MB floppy. It has no
  403. floppy driver, no disk file system drivers and no block
  404. layer (cannot use disks of any type).</p>
  405. <p style="margin-left:11%; margin-top: 1em"><b>System
  406. startup</b> <br>
  407. The kernel boots up very quickly and the init script
  408. (/sbin/init) waits 5 seconds. In these 5 seconds you
  409. can:</p>
  410. <p style="margin-left:22%; margin-top: 1em">Press
  411. &rsquo;m&rsquo; to manually enter the time zone and the IPv4
  412. parameters. These will be queried interactively. <br>
  413. Press &rsquo;t&rsquo; to manually enter the time zone only.
  414. <br>
  415. Press &rsquo;s&rsquo; to escape to a shell.</p>
  416. <p style="margin-left:11%; margin-top: 1em">If you
  417. don&rsquo;t want to 5 seconds for continuing the init
  418. process, you can press any other key to speed things up. At
  419. the end of the init script you should see
  420. that<b>vlmcsd</b>(8) has started. You should also see the IP
  421. addresses and all user names and passwords.</p>
  422. <p style="margin-left:11%; margin-top: 1em"><b>Logging into
  423. the system</b> <br>
  424. There are 5 local logins provided on /dev/tty2 to /dev/tty6.
  425. To switch to these logins, simply press ALT-F2 to ALT-F6. To
  426. return to the console on /dev/tty1, press ALT-F1. If
  427. <b>inetd</b>(8) is running you can also use
  428. <b>telnet</b>(1). This allows you use a terminal program
  429. (e.g. putty) that can utilize your keyboard layout, can be
  430. resized and has full UTF-8 support. The local terminals
  431. support US keyboard layout only. Please be aware that
  432. <b>telnet</b>(1) is unencrypted and everything including
  433. passwords is transmitted in clear text. There is not enough
  434. space for an ssh server like <b>sshd</b>(8) or
  435. <b>dropbear</b>(8).</p>
  436. <p style="margin-left:11%; margin-top: 1em">The floppy
  437. image only provides basic Unix commands. Type <i>busybox</i>
  438. or <i>ll /bin</i> to get a list. The only editor available
  439. is <b>vi</b>(1). If you don&rsquo;t like vi, you may
  440. transfer config files via <b>ftp</b>(1) edit them with the
  441. editor of your choice and transfer them back to the
  442. <b>floppy144.vfd</b> VM.</p>
  443. <p style="margin-left:11%; margin-top: 1em"><b>The menu
  444. system</b> <br>
  445. You&rsquo;ll find a menu system on /dev/tty8 (press ALT-F8
  446. to see it). It allows you performing some administrative
  447. tasks and to view various system information. It is mainly
  448. for users that do not have much experience with Unix
  449. commands. <b><br>
  450. 1) (Re)start vlmcsd</b></p>
  451. <p style="margin-left:22%;">Starts or restarts
  452. <b>vlmcsd</b>(8). This is useful if you changed
  453. <b>/etc/vlmcsd.ini</b>(5).</p>
  454. <p style="margin-left:11%;"><b>2) Stop vlmcsd</b></p>
  455. <p style="margin-left:22%;">Stops <b>vlmcsd</b>(8).</p>
  456. <p style="margin-left:11%;"><b>3) (Re)start inetd</b></p>
  457. <p style="margin-left:22%;">Starts or restarts
  458. <b>inetd</b>(8). If <b>inetd</b>(8) is restarted, current
  459. clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
  460. <b>not</b> be dropped. They can continue their sessions.
  461. This is useful if you changed <b>/etc/inetd.conf</b>(5).</p>
  462. <p style="margin-left:11%;"><b>4) Stop inet</b></p>
  463. <p style="margin-left:22%;">Stops <b>inetd</b>(8). All
  464. clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
  465. be dropped immediately.</p>
  466. <p style="margin-left:11%;"><b>5) Change the time
  467. zone</b></p>
  468. <p style="margin-left:22%;">Just in case you missed
  469. pressing &rsquo;t&rsquo; during system startup. This also
  470. restarts <b>vlmcsd</b>(8) if it was running to notify it
  471. that the time zone has changed. Restarting <b>vlmcsd</b>(8)
  472. allows currently connected clients to finish their
  473. activation.</p>
  474. <p style="margin-left:11%;"><b>k) Change keyboard
  475. layout</b></p>
  476. <p style="margin-left:22%;">This allows you to select a
  477. different keyboard layout.</p>
  478. <p style="margin-left:11%;"><b>6) Show all kernel boot
  479. parameters</b></p>
  480. <p style="margin-left:22%;">Shows all parameters passed to
  481. the kernel via syslinux.cfg. If you experience any
  482. unexpected behavior, you can use this to check if your
  483. APPEND line in syslinux.cfg is correct. The output is piped
  484. through <b>less(1)</b>. So press &rsquo;q&rsquo; to return
  485. to the menu.</p>
  486. <p style="margin-left:11%;"><b>7) Show boot log
  487. (dmesg)</b></p>
  488. <p style="margin-left:22%;">Shows the boot log of the
  489. kernel. The output is piped through <b>less(1)</b>. So press
  490. &rsquo;q&rsquo; to return to the menu.</p>
  491. <p style="margin-left:11%;"><b>8) Show TCP/IP
  492. configuration</b></p>
  493. <p style="margin-left:22%;">Shows the TCP/IP configuration,
  494. listening sockets and current TCP and UDP connections.
  495. Useful, if you problems with net connectivity. The output is
  496. piped through <b>less(1)</b>. So press &rsquo;q&rsquo; to
  497. return to the menu.</p>
  498. <p style="margin-left:11%;"><b>9) Show running
  499. processes</b></p>
  500. <p style="margin-left:22%;">Shows all processes including
  501. memory and CPU usage. Display will updated every second.
  502. Press &rsquo;q&rsquo; or CTRL-C to return to the menu.</p>
  503. <p style="margin-left:11%;"><b>s) Shutdown</b></p>
  504. <p style="margin-left:22%;">Shuts down the
  505. <b>floppy144.vfd</b> virtual machine. Proper shutdown is not
  506. required. It is ok to use a hard power off in your
  507. virtualization program.</p>
  508. <p style="margin-left:11%;"><b>r) Reboot</b></p>
  509. <p style="margin-left:22%;">Reboots the
  510. <b>floppy144.vfd</b> virtual machine. Proper reboot is not
  511. required. It is ok to use a hard reset in your
  512. virtualization program.</p>
  513. <h2>PERMANENT CHANGES OF INITRD
  514. <a name="PERMANENT CHANGES OF INITRD"></a>
  515. </h2>
  516. <p style="margin-left:11%; margin-top: 1em">If you want to
  517. change any file or script of the file system (e.g. the init
  518. script /sbin/init or /etc/vlmcsd.ini), you&rsquo;ll need to
  519. mount the floppy image, unpack the <b>initrd</b>(4) file,
  520. make any modfications you like, create a new
  521. <b>initrd</b>(4) file and copy it to the mounted floppy.</p>
  522. <p style="margin-left:11%; margin-top: 1em">To unpack the
  523. <b>initrd</b>(4) file you&rsquo;ll need <b>xz</b>(1) (or
  524. <b>lzma</b>(1) on older unix-like OSses) and <b>cpio</b>(1).
  525. These can be installed using your package manager on all
  526. major distros. It is ok to use the BSD version of
  527. <b>cpio</b>(1). No need to get the GNU version for BSD
  528. users. Provided the floppy is mounted in /mnt/floppy do the
  529. following: <br>
  530. Create an empty directory</p>
  531. <p style="margin-left:22%;">mkdir
  532. ~/vlmcsd-floppy-initrd</p>
  533. <p style="margin-left:11%;">cd into that directory</p>
  534. <p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
  535. <p style="margin-left:11%;">Unpack initrd</p>
  536. <p style="margin-left:22%;">cat /mnt/floppy/initrd | unlzma
  537. | cpio -i</p>
  538. <p style="margin-left:11%; margin-top: 1em">After applying
  539. your changes build a new <b>initrd</b>(4) file: <br>
  540. cd into your directory</p>
  541. <p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
  542. <p style="margin-left:11%;">Create the packed file</p>
  543. <p style="margin-left:22%;">find . | cpio -o -H newc | lzma
  544. &gt; /mnt/floppy/initrd</p>
  545. <p style="margin-left:11%; margin-top: 1em">Do not try to
  546. use &rsquo;lzma -9&rsquo; to achive better compression. The
  547. kernel can&rsquo;t read the resulting file. While
  548. customizing the <b>initrd</b>(4) file works on almost any
  549. unix-like OS, it does not work on Windows even not with
  550. Cygwin. The reason is that the NTFS file system can&rsquo;t
  551. handle uids and gids. These cannot be preserved when
  552. unpacking the <b>cpio</b>(1) archive to NTFS. If you use the
  553. WSL subsystem of Windows 10 Redstone (Anniversary Update)
  554. and later, you must make sure to unpack the <b>initrd</b>(4)
  555. file to a directory on VolFs (normally everything that is
  556. <b>not</b> mounted under /mnt). The <b>initrd</b>(4) file
  557. can be on a VolFs or DriveFs.</p>
  558. <h2>FAQ
  559. <a name="FAQ"></a>
  560. </h2>
  561. <p style="margin-left:11%; margin-top: 1em"><b>On what
  562. distro is the floppy image based?</b> <br>
  563. None. Besides the boot loader <b>ldlinux.sys</b>, there are
  564. only three binaries: The Linux kernel <b>bzImage</b>,
  565. <b>busybox</b>(1) and <b>vlmcsdmulti-x86-musl-static</b>.
  566. <b>bzImage</b> and <b>busybox</b>(1) have been compiled with
  567. carefully selected configuration parameters not found in any
  568. distro. This was neccesary to fit everything on a 1.44 MB
  569. floppy.</p>
  570. <p style="margin-left:11%; margin-top: 1em"><b>Why is a
  571. rather old Linux kernel (3.12) used?</b> <br>
  572. Linux 3.12 is the last kernel that can be booted with 16 MB
  573. of RAM. Beginning with Linux 3.13 it requires much more
  574. memory (about 80 MB) to boot. The floppy image is regularly
  575. tested with newer kernels. Everything works except that you
  576. need to assign much more main memory to the virtual
  577. machine.</p>
  578. <p style="margin-left:11%; margin-top: 1em"><b>Can the
  579. floppy be booted on bare metal?</b> <br>
  580. Basically yes. However, only Intel Pro/1000 and AMD PCNET32
  581. ethernet cards are supported by the kernel. In addition
  582. there is no USB support compiled into the kernel. That means
  583. you can only use an IBM AT or IBM PS/2 keyboard which are
  584. not available on newer hardware.</p>
  585. <h2>FILES
  586. <a name="FILES"></a>
  587. </h2>
  588. <p style="margin-left:11%; margin-top: 1em"><b>syslinux.cfg</b>,
  589. <b>vlmcsd.ini</b>(5)</p>
  590. <h2>BUGS
  591. <a name="BUGS"></a>
  592. </h2>
  593. <p style="margin-left:11%; margin-top: 1em">IPv6 cannot be
  594. configured with static or manual parameters. <br>
  595. DHCPv6 is not supported. <br>
  596. &acute;ip route add ...&rsquo; does not work. Use
  597. &rsquo;route add ...&rsquo; instead.</p>
  598. <h2>AUTHOR
  599. <a name="AUTHOR"></a>
  600. </h2>
  601. <p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
  602. has been created by Hotbird64</p>
  603. <h2>CREDITS
  604. <a name="CREDITS"></a>
  605. </h2>
  606. <p style="margin-left:11%; margin-top: 1em">Linus Torvalds
  607. et al. for the Linux kernel <br>
  608. Erik Andersen et al. for the original uClibc <br>
  609. Waldemar Brodkorb et al. for uClibc-ng <br>
  610. Denys Vlasenko et al. for BusyBox <br>
  611. H. Peter Anvin et al. for SYSLINUX</p>
  612. <h2>SEE ALSO
  613. <a name="SEE ALSO"></a>
  614. </h2>
  615. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
  616. <b>vlmcsd.ini</b>(5), <b>initrd</b>(4), <b>busybox</b>(1),
  617. <b>syslinux(1)</b></p>
  618. <hr>
  619. </body>
  620. </html>