mirror of
https://github.com/Wind4/vlmcsd.git
synced 2024-12-22 20:45:22 +01:00
810 lines
28 KiB
HTML
810 lines
28 KiB
HTML
<!-- Creator : groff version 1.22.3 -->
|
|
<!-- CreationDate: Wed Jul 13 12:34:02 2016 -->
|
|
<!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
|
|
− 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’s
|
|
host computer which is not possible in Windows 8.1 and up.
|
|
The floppy image is a standard 3,5" 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’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
|
|
’ethernet0.virtualDev = "vmxnet3"’
|
|
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 ’prompt 0’
|
|
and ’default dhcp’). 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 (> 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’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
|
|
"Europe/London" or "America/Detroit" 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’clock (2 o’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’clock.</p> </td></tr>
|
|
</table>
|
|
|
|
<p style="margin-left:22%; margin-top: 1em">If you
|
|
don’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 /usr/share/zoneinfo/America/New_York | tail -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’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’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’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’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
|
|
’m’ to manually enter the time zone and the IPv4
|
|
parameters. These will be queried interactively. <br>
|
|
Press ’t’ to manually enter the time zone only.
|
|
<br>
|
|
Press ’s’ to escape to a shell.</p>
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">If you
|
|
don’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−F2 to
|
|
ALT−F6. To return to the console on /dev/tty1, press
|
|
ALT−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’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’ll find a menu system on /dev/tty8 (press
|
|
ALT−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 ’t’ 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 ’q’ 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
|
|
’q’ 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 ’q’ 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 ’q’ 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’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’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
|
|
> /mnt/floppy/initrd</p>
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Do not try to
|
|
use ’lzma -9’ to achive better compression. The
|
|
kernel can’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’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>
|
|
´ip route add ...’ does not work. Use
|
|
’route add ...’ 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>
|