mirror of https://github.com/IoTcat/vlmcsd.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
816 lines
28 KiB
816 lines
28 KiB
<!-- Creator : groff version 1.22.3 --> |
|
<!-- CreationDate: Sun Dec 11 22:03:20 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> |
|
|
|
|
|
<p style="margin-left:11%;"><b>VLMCSD_EXTRA_ARGS=</b><i>comma-seperated-argument-list</i></p> |
|
|
|
<p style="margin-left:22%;">Allows you to specify |
|
additional command line options that will be passed to |
|
<b>vlmcsd</b>(8). Instead of spaces you use commas between |
|
arguments. Example: <b>VLMCSD_EXTRA_ARGS=</b>-c1,-K3,-M1</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>
|
|
|