1
0
mirror of https://github.com/Wind4/vlmcsd.git synced 2024-11-28 21:11:03 +08:00
vlmcsd/vlmcsd-floppy.7.html

810 lines
28 KiB
HTML
Raw Normal View History

2016-06-28 13:07:01 +08:00
<!-- Creator : groff version 1.22.3 -->
2016-08-31 11:50:33 +08:00
<!-- CreationDate: Sat Aug 27 18:14:38 2016 -->
2016-06-28 13:07:01 +08:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
h1 { text-align: center }
</style>
<title>VLMCSD-FLOPPY</title>
</head>
<body>
<h1 align="center">VLMCSD-FLOPPY</h1>
<a href="#NAME">NAME</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#SUPPORTED HYPERVISORS">SUPPORTED HYPERVISORS</a><br>
<a href="#SETUP">SETUP</a><br>
<a href="#CONFIGURATION">CONFIGURATION</a><br>
<a href="#OPERATION">OPERATION</a><br>
<a href="#PERMANENT CHANGES OF INITRD">PERMANENT CHANGES OF INITRD</a><br>
<a href="#FAQ">FAQ</a><br>
<a href="#FILES">FILES</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#AUTHOR">AUTHOR</a><br>
<a href="#CREDITS">CREDITS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<hr>
<h2>NAME
<a name="NAME"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">floppy144.vfd
&minus; a bootable floppy disk with Linux and
<b>vlmcsd</b>(8)</p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
is an image of a bootable floppy that contains a minimal
version of Linux and <b>vlmcsd</b>(8). It requires only 16
MB of RAM. Its primary purpose is to run <b>vlmcsd</b>(8) in
a small virtual machine which makes it easy to use
<b>vlmcsd</b>(8) to activate the virtual machine&rsquo;s
host computer which is not possible in Windows 8.1 and up.
The floppy image is a standard 3,5&quot; floppy with 1.44 MB
storage. It is formatted with a FAT12 filesystem. The floppy
can be mounted to apply several customizations.</p>
<h2>SUPPORTED HYPERVISORS
<a name="SUPPORTED HYPERVISORS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">The floppy
image has been tested with the following hypervisors:</p>
<p style="margin-left:22%; margin-top: 1em">VMWare,
VirtualBox, Hyper-V and QEMU</p>
<p style="margin-left:11%; margin-top: 1em">Others are
likely to work.</p>
<h2>SETUP
<a name="SETUP"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Create a new
virtual machine. Assign 16 MB of RAM. Add a floppy drive and
attach <b>floppy144.vfd</b> to this drive. Do not create a
virtual hard disk. Setup the virtual machine to boot from a
floppy drive (VirtualBox has floppy boot disabled by
default). If possible, setup a virtual machine with plain
old BIOS (not UEFI). If you created an UEFI virtual machine,
enable the compatibility support mode (CSM) to allow a BIOS
compatible boot. Set number of CPUs to 1. The Linux kernel
is not capable of SMP. Remove IDE, SATA, SCSI and USB
support if possible. The Linux kernel can&rsquo;t handle
this and ignores any devices connected to these buses.</p>
<p style="margin-left:11%; margin-top: 1em">Setup an
ethernet card. The following models are supported:</p>
<p style="margin-left:22%; margin-top: 1em">Intel PRO/1000
<br>
AMD PCNET III <br>
AMD PCNET32 <br>
VMWare vmxnet3 (paravirtualized driver used by VMWare) <br>
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM
and lguest)</p>
<p style="margin-left:11%; margin-top: 1em">Most
hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by
default. Selecting a paravirtualized driver slightly
improves performance. In VirtualBox you can simply select
virtio in the network configuration dialog. VMWare requires
that you add or change the VMX file. Use
&rsquo;ethernet0.virtualDev&nbsp;=&nbsp;&quot;vmxnet3&quot;&rsquo;
in your VMWare config file.</p>
<p style="margin-left:11%; margin-top: 1em">If you are
using QEMU, you must also setup a TAP adapter. Port
redirection does not work to activate your own computer.</p>
<h2>CONFIGURATION
<a name="CONFIGURATION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
can be customized to fit your needs. This is done by editing
the file syslinux.cfg on the floppy image. The floppy image
must be mounted. Under Linux you can simply attach
<b>floppy144.vfd</b> to a loop device which is mountable
like any other block device. For Windows you must use some
software that allows mounting a floppy image, e.g.
<a href="http://www.osforensics.com/tools/mount-disk-images.html">OSFMount</a></p>
<p style="margin-left:11%; margin-top: 1em">OSFMount works
under all Windows versions beginning with Windows XP up to
Windows 10 (32- and 64-bit).</p>
<p style="margin-left:11%; margin-top: 1em">The default
syslinux.cfg file looks like this:</p>
<p style="margin-left:22%; margin-top: 1em"><small>prompt 0
<br>
TIMEOUT 50 <br>
default dhcp</small></p>
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
dhcp <br>
KERNEL bzImage <br>
APPEND vga=773 quiet initrd=initrd KBD=us
LISTEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
GUEST_PASSWORD=vlmcsd INETD=Y
WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
HWID=36:4F:46:3A:88:63:D3:5F</small></p>
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
static <br>
KERNEL bzImage <br>
APPEND vga=773 quiet initrd=initrd KBD=fr
LISTEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24
IPV4_GATEWAY=192.168.20.2 IPV4_DNS1=192.168.20.2
IPV4_DNS2=NONE NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
GUEST_PASSWORD=vlmcsd INETD=Y</small></p>
<p style="margin-left:11%; margin-top: 1em">There are two
configurations in this files: <i>dhcp</i> (for configuring
the IPv4 network via DHCP) and <i>static</i> (for a static
IPv4 configuration). The kernel always boots the <i>dhcp</i>
configuration without asking (lines &rsquo;prompt 0&rsquo;
and &rsquo;default dhcp&rsquo;). You can simply change the
default configuration to <i>static</i> and then customize
the APPEND line in the <i>static</i> configuration. For more
details how to customize the syslinux.cfg file see
<b>syslinux</b>(1).</p>
<p style="margin-left:11%; margin-top: 1em">Each APPPEND
line contains one or more items seperated by spaces. <b>All
items are case-sensitive</b>. The following parameters can
be customized: <b><br>
vga=</b><i>vesa-video-mode</i></p>
<p style="margin-left:22%;">Sets the VESA display mode for
the virtual machine. The parameter is not optional. If you
ommit it, you will not see anything on the screen. 773 means
1024x768 with 256 colors. See
<a href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers">Wikipedia</a>
for more video modes. Note that all 16 color (4-bit) modes
will not work. Use 8-bit (256 colors), 16-bit (65536
colors), 24-bit and 32-bit (&gt; 16 Million colors) only.
All modes above 1280x1024 are non-VESA-standard and vary for
all (virtual) graphic cards.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">
<p><b>quiet</b></p></td>
<td width="4%"></td>
<td width="78%">
<p>This causes the kernel not display the its log during
boot. You may omit <b>quiet</b> but it doesn&rsquo;t make
much sense. The boot log is actually very verbose and
scrolls away from screen quickly. If any errors occur during
boot, they will be displayed even if <b>quiet</b> is present
in the APPEND line. You may evaluate the complete boot log
later by using the dmesg command or the menu on
/dev/tty8.</p> </td></tr>
</table>
<p style="margin-left:11%;"><b>initrd=</b><i>initial-ram-disk-file</i></p>
<p style="margin-left:22%;">This defines the initial ram
disk that the kernel will read. There is only one initial
ram disk on the floppy thus leave <i>initrd=initrd</i> as it
is.</p>
<p style="margin-left:11%;"><b>KBD=</b><i>keyboard-layout-name</i></p>
<p style="margin-left:22%;">This allows you to select the
keyboard layout. <i>keyboard-layout-name</i> is usually the
ISO 3166-1 (top level domain) code for a country. A list of
valid <i>keyboard-layout-name</i>s can be accessed via the
menu system on /dev/tty8 (press ALT-F8). Note, that this is
a keyboard driver only. There is no Unicode font support in
<b>floppy144.vfd</b> (due to the fact that the kernel uses a
generic VESA framebuffer device only). Characters beyond
ASCII work for Western European languages only but not
Eastern European, Greek, Cyrillic, Arabic, Hebrew, CJK and
other languages. There is no need in <b>floppy144.vfd</b> to
enter any characters outside ASCII. The purpose of the
keyboard maps are that you will find characters like dash,
backslash, brackets, braces, etc. at the usual place on your
keyboard.</p>
<p style="margin-left:11%;"><b>LISTEN=</b>PRIVATE[:<i>tcp-port</i>]
| <i><br>
ip-address</i>[:<i>tcp-port</i>][,<i>ip-address</i>[:<i>tcp-port</i>]][,...]</p>
<p style="margin-left:22%;">One or more combinations of IP
addresses and optional TCP port seperated by commas that
<b>vlmcsd</b>(8) should listen on or PRIVATE to listen on
all private IP addresses only. The default port is 1688. If
you use an explicit port number, append it to the IP address
seperated by a colon. If you use a port number and the IP
address contains colons, you must enclose the IP address in
brackets. For example
<i>192.168.0.2,[fd00::dead:beef]:5678</i> causes
<b>vlmcsd</b>(8) to listen on 192.168.0.2 port 1688 and
fd00::dead:beef port 5678.</p>
<p style="margin-left:11%;"><b>WINDOWS=</b><i>epid</i></p>
<p style="margin-left:22%;">Defines the ePID that is used
for Windows activations. If you ommit this parameter, vlmcsd
generates a random ePID when it is started.</p>
<p style="margin-left:11%;"><b>OFFICE2010=</b><i>epid</i></p>
<p style="margin-left:22%;">Defines the ePID that is used
for Office 2010 activations. If you ommit this parameter,
<b>vlmcsd</b>(8) generates a random ePID when it is
started.</p>
<p style="margin-left:11%;"><b>OFFICE2013=</b><i>epid</i></p>
<p style="margin-left:22%;">Defines the ePID that is used
for Office (versions 2013 and greater) activations. If you
ommit this parameter, <b>vlmcsd</b>(8) generates a random
ePID when it is started.</p>
<p style="margin-left:11%;"><b>HWID=</b><i>hwid</i></p>
<p style="margin-left:22%;">Defines the HwId that is sent
to clients. <i>hwid</i> must be specified as 16 hex digits
that are interpreted as a series of 8 bytes (big endian).
Any character that is not a hex digit will be ignored. This
is for better readability.</p>
<p style="margin-left:11%;"><b>TZ=</b><i>posix-time-zone-string</i></p>
<p style="margin-left:22%;">Set the time zone to
<i>posix-time-zone-string</i>. It must conform to the
<a href="http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html">POSIX</a>
specification. Simplified time zone strings like
&quot;Europe/London&quot; or &quot;America/Detroit&quot; are
not allowed. This has the very simple reason that there is
no space on the floppy to store the time zone database.</p>
<p style="margin-left:22%; margin-top: 1em">The string
<i>CET-1CEST,M3.5.0,M10.5.0/3</i> (most countries in Europe)
reads as follows:</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="22%"></td>
<td width="13%">
<p><i>CET</i></p></td>
<td width="2%"></td>
<td width="63%">
<p>The standard (winter) time zone has the name CET.</p></td></tr>
<tr valign="top" align="left">
<td width="22%"></td>
<td width="13%">
<p><i>-1</i></p></td>
<td width="2%"></td>
<td width="63%">
<p>The standard time zone is one hour east of UTC. Negative
numbers are east of UTC. Positive numbers are west of
UTC.</p> </td></tr>
<tr valign="top" align="left">
<td width="22%"></td>
<td width="13%">
<p><i>CEST</i></p></td>
<td width="2%"></td>
<td width="63%">
<p>The daylight saving (summer) time zone has the name
CEST.</p> </td></tr>
<tr valign="top" align="left">
<td width="22%"></td>
<td width="13%">
<p><i>M3.5.0</i></p></td>
<td width="2%"></td>
<td width="63%">
<p>Daylight saving time starts in the 3rd month (March) on
the 5th (=last) occurence of weekday 0 (Sunday) at 2
o&rsquo;clock (2 o&rsquo;clock is a default value).</p></td></tr>
<tr valign="top" align="left">
<td width="22%"></td>
<td width="13%">
<p><i>M10.5.0/3</i></p></td>
<td width="2%"></td>
<td width="63%">
<p>Daylight saving time ends in the 10th month (October) on
the 5th (=last) occurence of weekday 0 (Sunday) at 3
o&rsquo;clock.</p> </td></tr>
</table>
<p style="margin-left:22%; margin-top: 1em">If you
don&rsquo;t have daylight saving time, things are easier.
For Chinese Standard Time for example, just use <i>CST-8</i>
as the time zone string.</p>
<p style="margin-left:22%; margin-top: 1em">On a Linux
desktop system, you can use a command like
<b>strings&nbsp;/usr/share/zoneinfo/America/New_York&nbsp;|&nbsp;tail&nbsp;-n1</b>.
This should return <i>EST5EDT,M3.2.0,M11.1.0</i>. You can
use the returned string for the
<b>TZ=</b><i>posix-time-zone-string</i> parameter.</p>
<p style="margin-left:11%;"><b>IPV4_CONFIG=</b>DHCP |
STATIC</p>
<p style="margin-left:22%;">This determines how you want to
configure IPv4 networking. If you use
<b>IPV4_CONFIG=</b>STATIC, you must supply additional
paramaters to the APPEND command line.</p>
<p style="margin-left:11%;"><b>IPV4_ADDRESS=</b><i>ipv4-address</i>/<i>CIDR-mask</i></p>
<p style="margin-left:22%;">Use <i>ipv4-address</i> with
netmask <i>CIDR-mask</i> for static IPv4 configuration. The
netmask must not be ommitted. For IPv4 address 192.168.12.17
with a netmask of 255.255.255.0 use <i>192.168.12.17/24</i>.
For IPv4 address 10.4.0.8 with a netmask of 255.255.0.0 use
10.4.0.8/16. This paramater is ignored, if you used
<b>IPV4_CONFIG=</b>DHCP.</p>
<p style="margin-left:11%;"><b>IPV4_GATEWAY=</b><i>ipv4-address</i>
| NONE</p>
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
default gateway. This is usually the IPv4 address of your
router. You may specify NONE explicitly for no gateway. In
this case your virtual machine is only visible on its local
LAN. This paramater is ignored, if you used
<b>IPV4_CONFIG=</b>DHCP.</p>
<p style="margin-left:11%;"><b>IPV4_DNS1=</b><i>ipv4-address</i>
| NONE</p>
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
primary name server. In home networks this is often the IPv4
address of your router. You may specify NONE explicitly. If
you specified NONE for both <b>IPV4_DNS1=</b> and
<b>IPV4_DNS2=</b>, your virtual machine cannot resolve host
names to IP addresses. While <b>vlmcsd</b>(8) works
perfectly without DNS servers, you must use IP addresses
when referring to a host, e.g. for specifying an NTP server.
This paramater is ignored, if you used
<b>IPV4_CONFIG=</b>DHCP.</p>
<p style="margin-left:11%;"><b>IPV4_DNS2=</b><i>ipv4-address</i>
| NONE</p>
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
secondary name server. It serves as a backup if the primary
name server is not available. Home networks often
don&rsquo;t have a secondary name server. In this case set
this to NONE. This paramater is ignored, if you used
<b>IPV4_CONFIG=</b>DHCP.</p>
<p style="margin-left:11%;"><b>NTP_SERVER=</b><i>host-name</i>
| <i>ipv4-address</i> | NONE</p>
<p style="margin-left:22%;">This sets the name of a time
server using the NTP protocol. If your virtualization
environment reliably provides time, you can set this to
NONE. Don&rsquo;t use a public time service like
pool.ntp.org or time.nist.gov if you have a (at least
somewhat reliable) NTP server in your LAN.</p>
<p style="margin-left:11%;"><b>HOST_NAME=</b><i>host-name</i></p>
<p style="margin-left:22%;">Sets the local host name for
your virtual machine. It can be a single name or a
fully-qualified domain name FQDN. If you used
<b>IPV4_CONFIG=</b>DHCP and your DHCP server returns a
domain name, the domain part of an FQDN will be replaced by
that name. This host name or host part of an FQDN will not
replaced by a host name returned via DHCP. The host name is
not important for the operation of <b>floppy144.vfd</b>.</p>
<p style="margin-left:11%;"><b>ROOT_PASSWORD=</b><i>password</i></p>
<p style="margin-left:22%;">Sets the password of the root
user.</p>
<p style="margin-left:11%;"><b>USER_NAME=</b><i>username</i></p>
<p style="margin-left:22%;">Sets the name of for a general
user with no special privileges. This user can login but
can&rsquo;t do much.</p>
<p style="margin-left:11%;"><b>USER_PASSWORD=</b><i>password</i></p>
<p style="margin-left:22%;">Sets the password for the user
defined by <b>USER_NAME=</b><i>username</i>.</p>
<p style="margin-left:11%;"><b>GUEST_PASSWORD=</b><i>password</i></p>
<p style="margin-left:22%;">Sets the password for the
pre-defined guest user. This user has the same priviliges
(none) as the user defined by
<b>USER_NAME=</b><i>username</i>.</p>
<p style="margin-left:11%;"><b>INETD=</b>Y | N</p>
<p style="margin-left:22%;"><b>INETD=</b>Y specifies that
<b>inetd</b>(8) should automatically be started. That means
you can telnet and ftp to your virtual machine.</p>
<h2>OPERATION
<a name="OPERATION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>Diskless
System</b> <br>
The <b>floppy144.vfd</b> virtual machine is a diskless
system that works entirely from RAM. The file system is
actually a RAM disk that is created from the
<b>initrd</b>(4) file on the floppy image.</p>
<p style="margin-left:11%; margin-top: 1em">Anything
you&rsquo;ll do from inside the virtual machine, for
instance editing a config file, will be lost when you reboot
the machine. So, if you ever asked yourself if <b>rm -fr
/</b> (root privileges required) really deletes all files
from all mounted partitions, the <b>floppy144.vfd</b> VM is
the right place to test it (Yes, it does).</p>
<p style="margin-left:11%; margin-top: 1em">The VM uses a
RAM disk, because the Linux kernel had to be stripped down
to essential features to fit on a 1.44 MB floppy. It has no
floppy driver, no disk file system drivers and no block
layer (cannot use disks of any type).</p>
<p style="margin-left:11%; margin-top: 1em"><b>System
startup</b> <br>
The kernel boots up very quickly and the init script
(/sbin/init) waits 5 seconds. In these 5 seconds you
can:</p>
<p style="margin-left:22%; margin-top: 1em">Press
&rsquo;m&rsquo; to manually enter the time zone and the IPv4
parameters. These will be queried interactively. <br>
Press &rsquo;t&rsquo; to manually enter the time zone only.
<br>
Press &rsquo;s&rsquo; to escape to a shell.</p>
<p style="margin-left:11%; margin-top: 1em">If you
don&rsquo;t want to 5 seconds for continuing the init
process, you can press any other key to speed things up. At
the end of the init script you should see
that<b>vlmcsd</b>(8) has started. You should also see the IP
addresses and all user names and passwords.</p>
<p style="margin-left:11%; margin-top: 1em"><b>Logging into
the system</b> <br>
There are 5 local logins provided on /dev/tty2 to /dev/tty6.
To switch to these logins, simply press ALT&minus;F2 to
ALT&minus;F6. To return to the console on /dev/tty1, press
ALT&minus;F1. If <b>inetd</b>(8) is running you can also use
<b>telnet</b>(1). This allows you use a terminal program
(e.g. putty) that can utilize your keyboard layout, can be
resized and has full UTF-8 support. The local terminals
support US keyboard layout only. Please be aware that
<b>telnet</b>(1) is unencrypted and everything including
passwords is transmitted in clear text. There is not enough
space for an ssh server like <b>sshd</b>(8) or
<b>dropbear</b>(8).</p>
<p style="margin-left:11%; margin-top: 1em">The floppy
image only provides basic Unix commands. Type <i>busybox</i>
or <i>ll /bin</i> to get a list. The only editor available
is <b>vi</b>(1). If you don&rsquo;t like vi, you may
transfer config files via <b>ftp</b>(1) edit them with the
editor of your choice and transfer them back to the
<b>floppy144.vfd</b> VM.</p>
<p style="margin-left:11%; margin-top: 1em"><b>The menu
system</b> <br>
You&rsquo;ll find a menu system on /dev/tty8 (press
ALT&minus;F8 to see it). It allows you performing some
administrative tasks and to view various system information.
It is mainly for users that do not have much experience with
Unix commands. <b><br>
1) (Re)start vlmcsd</b></p>
<p style="margin-left:22%;">Starts or restarts
<b>vlmcsd</b>(8). This is useful if you changed
<b>/etc/vlmcsd.ini</b>(5).</p>
<p style="margin-left:11%;"><b>2) Stop vlmcsd</b></p>
<p style="margin-left:22%;">Stops <b>vlmcsd</b>(8).</p>
<p style="margin-left:11%;"><b>3) (Re)start inetd</b></p>
<p style="margin-left:22%;">Starts or restarts
<b>inetd</b>(8). If <b>inetd</b>(8) is restarted, current
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
<b>not</b> be dropped. They can continue their sessions.
This is useful if you changed <b>/etc/inetd.conf</b>(5).</p>
<p style="margin-left:11%;"><b>4) Stop inet</b></p>
<p style="margin-left:22%;">Stops <b>inetd</b>(8). All
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
be dropped immediately.</p>
<p style="margin-left:11%;"><b>5) Change the time
zone</b></p>
<p style="margin-left:22%;">Just in case you missed
pressing &rsquo;t&rsquo; during system startup. This also
restarts <b>vlmcsd</b>(8) if it was running to notify it
that the time zone has changed. Restarting <b>vlmcsd</b>(8)
allows currently connected clients to finish their
activation.</p>
<p style="margin-left:11%;"><b>k) Change keyboard
layout</b></p>
<p style="margin-left:22%;">This allows you to select a
different keyboard layout.</p>
<p style="margin-left:11%;"><b>6) Show all kernel boot
parameters</b></p>
<p style="margin-left:22%;">Shows all parameters passed to
the kernel via syslinux.cfg. If you experience any
unexpected behavior, you can use this to check if your
APPEND line in syslinux.cfg is correct. The output is piped
through <b>less(1)</b>. So press &rsquo;q&rsquo; to return
to the menu.</p>
<p style="margin-left:11%;"><b>7) Show boot log
(dmesg)</b></p>
<p style="margin-left:22%;">Shows the boot log of the
kernel. The output is piped through <b>less(1)</b>. So press
&rsquo;q&rsquo; to return to the menu.</p>
<p style="margin-left:11%;"><b>8) Show TCP/IP
configuration</b></p>
<p style="margin-left:22%;">Shows the TCP/IP configuration,
listening sockets and current TCP and UDP connections.
Useful, if you problems with net connectivity. The output is
piped through <b>less(1)</b>. So press &rsquo;q&rsquo; to
return to the menu.</p>
<p style="margin-left:11%;"><b>9) Show running
processes</b></p>
<p style="margin-left:22%;">Shows all processes including
memory and CPU usage. Display will updated every second.
Press &rsquo;q&rsquo; or CTRL-C to return to the menu.</p>
<p style="margin-left:11%;"><b>s) Shutdown</b></p>
<p style="margin-left:22%;">Shuts down the
<b>floppy144.vfd</b> virtual machine. Proper shutdown is not
required. It is ok to use a hard power off in your
virtualization program.</p>
<p style="margin-left:11%;"><b>r) Reboot</b></p>
<p style="margin-left:22%;">Reboots the
<b>floppy144.vfd</b> virtual machine. Proper reboot is not
required. It is ok to use a hard reset in your
virtualization program.</p>
<h2>PERMANENT CHANGES OF INITRD
<a name="PERMANENT CHANGES OF INITRD"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">If you want to
change any file or script of the file system (e.g. the init
script /sbin/init or /etc/vlmcsd.ini), you&rsquo;ll need to
mount the floppy image, unpack the <b>initrd</b>(4) file,
make any modfications you like, create a new
<b>initrd</b>(4) file and copy it to the mounted floppy.</p>
<p style="margin-left:11%; margin-top: 1em">To unpack the
<b>initrd</b>(4) file you&rsquo;ll need <b>xz</b>(1) (or
<b>lzma</b>(1) on older unix-like OSses) and <b>cpio</b>(1).
These can be installed using your package manager on all
major distros. It is ok to use the BSD version of
<b>cpio</b>(1). No need to get the GNU version for BSD
users. Provided the floppy is mounted in /mnt/floppy do the
following: <br>
Create an empty directory</p>
<p style="margin-left:22%;">mkdir
~/vlmcsd-floppy-initrd</p>
<p style="margin-left:11%;">cd into that directory</p>
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
<p style="margin-left:11%;">Unpack initrd</p>
<p style="margin-left:22%;">cat /mnt/floppy/initrd | unlzma
| cpio -i</p>
<p style="margin-left:11%; margin-top: 1em">After applying
your changes build a new <b>initrd</b>(4) file: <br>
cd into your directory</p>
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
<p style="margin-left:11%;">Create the packed file</p>
<p style="margin-left:22%;">find . | cpio -o -H newc | lzma
&gt; /mnt/floppy/initrd</p>
<p style="margin-left:11%; margin-top: 1em">Do not try to
use &rsquo;lzma -9&rsquo; to achive better compression. The
kernel can&rsquo;t read the resulting file. While
customizing the <b>initrd</b>(4) file works on almost any
unix-like OS, it does not work on Windows even not with
Cygwin. The reason is that the NTFS file system can&rsquo;t
handle uids and gids. These cannot be preserved when
unpacking the <b>cpio</b>(1) archive to NTFS. If you use the
WSL subsystem of Windows 10 Redstone (Anniversary Update)
and later, you must make sure to unpack the <b>initrd</b>(4)
file to a directory on VolFs (normally everything that is
<b>not</b> mounted under /mnt). The <b>initrd</b>(4) file
can be on a VolFs or DriveFs.</p>
<h2>FAQ
<a name="FAQ"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>On what
distro is the floppy image based?</b> <br>
None. Besides the boot loader <b>ldlinux.sys</b>, there are
only three binaries: The Linux kernel <b>bzImage</b>,
<b>busybox</b>(1) and <b>vlmcsdmulti-x86-musl-static</b>.
<b>bzImage</b> and <b>busybox</b>(1) have been compiled with
carefully selected configuration parameters not found in any
distro. This was neccesary to fit everything on a 1.44 MB
floppy.</p>
<p style="margin-left:11%; margin-top: 1em"><b>Why is a
rather old Linux kernel (3.12) used?</b> <br>
Linux 3.12 is the last kernel that can be booted with 16 MB
of RAM. Beginning with Linux 3.13 it requires much more
memory (about 80 MB) to boot. The floppy image is regularly
tested with newer kernels. Everything works except that you
need to assign much more main memory to the virtual
machine.</p>
<p style="margin-left:11%; margin-top: 1em"><b>Can the
floppy be booted on bare metal?</b> <br>
Basically yes. However, only Intel Pro/1000 and AMD PCNET32
ethernet cards are supported by the kernel. In addition
there is no USB support compiled into the kernel. That means
you can only use an IBM AT or IBM PS/2 keyboard which are
not available on newer hardware.</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>syslinux.cfg</b>,
<b>vlmcsd.ini</b>(5)</p>
<h2>BUGS
<a name="BUGS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">IPv6 cannot be
configured with static or manual parameters. <br>
DHCPv6 is not supported. <br>
&acute;ip route add ...&rsquo; does not work. Use
&rsquo;route add ...&rsquo; instead.</p>
<h2>AUTHOR
<a name="AUTHOR"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
has been created by Hotbird64</p>
<h2>CREDITS
<a name="CREDITS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Linus Torvalds
et al. for the Linux kernel <br>
Erik Andersen et al. for the original uClibc <br>
Waldemar Brodkorb et al. for uClibc-ng <br>
Denys Vlasenko et al. for BusyBox <br>
H. Peter Anvin et al. for SYSLINUX</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
<b>vlmcsd.ini</b>(5), <b>initrd</b>(4), <b>busybox</b>(1),
<b>syslinux(1)</b></p>
<hr>
</body>
</html>