vlmcsd-floppy.7.html 28 KB

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