|
|
|
VLMCSD-FLOPPY(7) KMS Activation Manual VLMCSD-FLOPPY(7)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NAME
|
|
|
|
floppy144.vfd - a bootable floppy disk with Linux and vlmcsd(8)
|
|
|
|
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
floppy144.vfd is an image of a bootable floppy that contains a minimal
|
|
|
|
version of Linux and vlmcsd(8). It requires only 16 MB of RAM. Its pri-
|
|
|
|
mary purpose is to run vlmcsd(8) in a small virtual machine which makes
|
|
|
|
it easy to use vlmcsd(8) to activate the virtual machine's host com-
|
|
|
|
puter 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 customiza-
|
|
|
|
tions.
|
|
|
|
|
|
|
|
|
|
|
|
SUPPORTED HYPERVISORS
|
|
|
|
The floppy image has been tested with the following hypervisors:
|
|
|
|
|
|
|
|
VMWare, VirtualBox, Hyper-V and QEMU
|
|
|
|
|
|
|
|
Others are likely to work.
|
|
|
|
|
|
|
|
|
|
|
|
SETUP
|
|
|
|
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive
|
|
|
|
and attach floppy144.vfd 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 capa-
|
|
|
|
ble 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.
|
|
|
|
|
|
|
|
Setup an ethernet card. The following models are supported:
|
|
|
|
|
|
|
|
Intel PRO/1000
|
|
|
|
AMD PCNET III
|
|
|
|
AMD PCNET32
|
|
|
|
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
|
|
|
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and
|
|
|
|
lguest)
|
|
|
|
|
|
|
|
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 'eth-
|
|
|
|
ernet0.virtualDev = "vmxnet3"' in your VMWare config file.
|
|
|
|
|
|
|
|
If you are using QEMU, you must also setup a TAP adapter. Port redi-
|
|
|
|
rection does not work to activate your own computer.
|
|
|
|
|
|
|
|
|
|
|
|
CONFIGURATION
|
|
|
|
floppy144.vfd 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 floppy144.vfd 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.
|
|
|
|
OSFMount <http://www.osforensics.com/tools/mount-disk-images.html>
|
|
|
|
|
|
|
|
OSFMount works under all Windows versions beginning with Windows XP up
|
|
|
|
to Windows 10 (32- and 64-bit).
|
|
|
|
|
|
|
|
The default syslinux.cfg file looks like this:
|
|
|
|
|
|
|
|
prompt 0
|
|
|
|
TIMEOUT 50
|
|
|
|
default dhcp
|
|
|
|
|
|
|
|
LABEL dhcp
|
|
|
|
KERNEL bzImage
|
|
|
|
APPEND vga=773 quiet initrd=initrd KBD=us LIS-
|
|
|
|
TEN=[::]: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
|
|
|
|
|
|
|
|
LABEL static
|
|
|
|
KERNEL bzImage
|
|
|
|
APPEND vga=773 quiet initrd=initrd KBD=fr LIS-
|
|
|
|
TEN=[::]: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_GATE-
|
|
|
|
WAY=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
|
|
|
|
|
|
|
|
|
|
|
|
There are two configurations in this files: dhcp (for configuring the
|
|
|
|
IPv4 network via DHCP) and static (for a static IPv4 configuration).
|
|
|
|
The kernel always boots the dhcp configuration without asking (lines
|
|
|
|
'prompt 0' and 'default dhcp'). You can simply change the default con-
|
|
|
|
figuration to static and then customize the APPEND line in the static
|
|
|
|
configuration. For more details how to customize the syslinux.cfg file
|
|
|
|
see syslinux(1).
|
|
|
|
|
|
|
|
Each APPPEND line contains one or more items seperated by spaces. All
|
|
|
|
items are case-sensitive. The following parameters can be customized:
|
|
|
|
|
|
|
|
|
|
|
|
vga=vesa-video-mode
|
|
|
|
Sets the VESA display mode for the virtual machine. The parame-
|
|
|
|
ter is not optional. If you ommit it, you will not see anything
|
|
|
|
on the screen. 773 means 1024x768 with 256 colors. See Wikipedia
|
|
|
|
<https://en.wikipedia.org/wiki/
|
|
|
|
VESA_BIOS_Extensions#Linux_video_mode_numbers> 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.
|
|
|
|
|
|
|
|
|
|
|
|
quiet This causes the kernel not display the its log during boot. You
|
|
|
|
may omit quiet 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
|
|
|
|
quiet is present in the APPEND line. You may evaluate the com-
|
|
|
|
plete boot log later by using the dmesg command or the menu on
|
|
|
|
/dev/tty8.
|
|
|
|
|
|
|
|
|
|
|
|
initrd=initial-ram-disk-file
|
|
|
|
This defines the initial ram disk that the kernel will read.
|
|
|
|
There is only one initial ram disk on the floppy thus leave ini-
|
|
|
|
trd=initrd as it is.
|
|
|
|
|
|
|
|
|
|
|
|
KBD=keyboard-layout-name
|
|
|
|
This allows you to select the keyboard layout. keyboard-layout-
|
|
|
|
name is usually the ISO 3166-1 (top level domain) code for a
|
|
|
|
country. A list of valid keyboard-layout-names 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
|
|
|
|
floppy144.vfd (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 floppy144.vfd 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.
|
|
|
|
|
|
|
|
|
|
|
|
LISTEN=PRIVATE[:tcp-port] | ip-address[:tcp-port][,ip-address[:tcp-
|
|
|
|
port]][,...]
|
|
|
|
One or more combinations of IP addresses and optional TCP port
|
|
|
|
seperated by commas that vlmcsd(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 192.168.0.2,[fd00::dead:beef]:5678 causes
|
|
|
|
vlmcsd(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef
|
|
|
|
port 5678.
|
|
|
|
|
|
|
|
|
|
|
|
WINDOWS=epid
|
|
|
|
Defines the ePID that is used for Windows activations. If you
|
|
|
|
ommit this parameter, vlmcsd generates a random ePID when it is
|
|
|
|
started.
|
|
|
|
|
|
|
|
|
|
|
|
OFFICE2010=epid
|
|
|
|
Defines the ePID that is used for Office 2010 activations. If
|
|
|
|
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
|
|
|
it is started.
|
|
|
|
|
|
|
|
|
|
|
|
OFFICE2013=epid
|
|
|
|
Defines the ePID that is used for Office 2016 activations. If
|
|
|
|
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
|
|
|
it is started.
|
|
|
|
|
|
|
|
|
|
|
|
OFFICE2016=epid
|
|
|
|
Defines the ePID that is used for Office 2016 activations. If
|
|
|
|
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
|
|
|
it is started.
|
|
|
|
|
|
|
|
|
|
|
|
WINCHINAGOV=epid
|
|
|
|
Defines the ePID that is used for Windows China Government Edi-
|
|
|
|
tion activations (Enterprise G/GN). If you ommit this parameter,
|
|
|
|
vlmcsd(8) generates a random ePID when it is started.
|
|
|
|
|
|
|
|
|
|
|
|
HWID=hwid
|
|
|
|
Defines the HwId that is sent to clients. hwid 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.
|
|
|
|
|
|
|
|
|
|
|
|
TZ=posix-time-zone-string
|
|
|
|
Set the time zone to posix-time-zone-string. It must conform to
|
|
|
|
the POSIX <http://pubs.opengroup.org/onlinepubs/009695399/
|
|
|
|
basedefs/xbd_chap08.html> 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.
|
|
|
|
|
|
|
|
The string CET-1CEST,M3.5.0,M10.5.0/3 (most countries in Europe)
|
|
|
|
reads as follows:
|
|
|
|
|
|
|
|
CET The standard (winter) time zone has the name CET.
|
|
|
|
|
|
|
|
-1 The standard time zone is one hour east of UTC. Nega-
|
|
|
|
tive numbers are east of UTC. Positive numbers are
|
|
|
|
west of UTC.
|
|
|
|
|
|
|
|
CEST The daylight saving (summer) time zone has the name
|
|
|
|
CEST.
|
|
|
|
|
|
|
|
M3.5.0 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).
|
|
|
|
|
|
|
|
M10.5.0/3 Daylight saving time ends in the 10th month (October)
|
|
|
|
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
|
|
|
3 o'clock.
|
|
|
|
|
|
|
|
If you don't have daylight saving time, things are easier. For
|
|
|
|
Chinese Standard Time for example, just use CST-8 as the time
|
|
|
|
zone string.
|
|
|
|
|
|
|
|
On a Linux desktop system, you can use a command like
|
|
|
|
strings /usr/share/zoneinfo/America/New_York | tail -n1. This
|
|
|
|
should return EST5EDT,M3.2.0,M11.1.0. You can use the returned
|
|
|
|
string for the TZ=posix-time-zone-string parameter.
|
|
|
|
|
|
|
|
|
|
|
|
IPV4_CONFIG=DHCP | STATIC
|
|
|
|
This determines how you want to configure IPv4 networking. If
|
|
|
|
you use IPV4_CONFIG=STATIC, you must supply additional para-
|
|
|
|
maters to the APPEND command line.
|
|
|
|
|
|
|
|
|
|
|
|
IPV4_ADDRESS=ipv4-address/CIDR-mask
|
|
|
|
Use ipv4-address with netmask CIDR-mask for static IPv4 configu-
|
|
|
|
ration. The netmask must not be ommitted. For IPv4 address
|
|
|
|
192.168.12.17 with a netmask of 255.255.255.0 use
|
|
|
|
192.168.12.17/24. 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 IPV4_CONFIG=DHCP.
|
|
|
|
|
|
|
|
|
|
|
|
IPV4_GATEWAY=ipv4-address | NONE
|
|
|
|
Use ipv4-address 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 IPV4_CON-
|
|
|
|
FIG=DHCP.
|
|
|
|
|
|
|
|
|
|
|
|
IPV4_DNS1=ipv4-address | NONE
|
|
|
|
Use ipv4-address 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 IPV4_DNS1= and
|
|
|
|
IPV4_DNS2=, your virtual machine cannot resolve host names to IP
|
|
|
|
addresses. While vlmcsd(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
|
|
|
|
IPV4_CONFIG=DHCP.
|
|
|
|
|
|
|
|
|
|
|
|
IPV4_DNS2=ipv4-address | NONE
|
|
|
|
Use ipv4-address as the secondary name server. It serves as a
|
|
|
|
backup if the primary name server is not available. Home net-
|
|
|
|
works often don't have a secondary name server. In this case set
|
|
|
|
this to NONE. This paramater is ignored, if you used IPV4_CON-
|
|
|
|
FIG=DHCP.
|
|
|
|
|
|
|
|
|
|
|
|
NTP_SERVER=host-name | ipv4-address | NONE
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
HOST_NAME=host-name
|
|
|
|
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
|
|
|
|
IPV4_CONFIG=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 opera-
|
|
|
|
tion of floppy144.vfd.
|
|
|
|
|
|
|
|
|
|
|
|
ROOT_PASSWORD=password
|
|
|
|
Sets the password of the root user.
|
|
|
|
|
|
|
|
|
|
|
|
USER_NAME=username
|
|
|
|
Sets the name of for a general user with no special privileges.
|
|
|
|
This user can login but can't do much.
|
|
|
|
|
|
|
|
|
|
|
|
USER_PASSWORD=password
|
|
|
|
Sets the password for the user defined by USER_NAME=username.
|
|
|
|
|
|
|
|
|
|
|
|
GUEST_PASSWORD=password
|
|
|
|
Sets the password for the pre-defined guest user. This user has
|
|
|
|
the same priviliges (none) as the user defined by
|
|
|
|
USER_NAME=username.
|
|
|
|
|
|
|
|
|
|
|
|
INETD=Y | N
|
|
|
|
INETD=Y specifies that inetd(8) should automatically be started.
|
|
|
|
That means you can telnet and ftp to your virtual machine.
|
|
|
|
|
|
|
|
|
|
|
|
VLMCSD_EXTRA_ARGS=comma-seperated-argument-list
|
|
|
|
Allows you to specify additional command line options that will
|
|
|
|
be passed to vlmcsd(8). Instead of spaces you use commas between
|
|
|
|
arguments. Example: VLMCSD_EXTRA_ARGS=-c1,-K3,-M1
|
|
|
|
|
|
|
|
|
|
|
|
OPERATION
|
|
|
|
Diskless System
|
|
|
|
The floppy144.vfd virtual machine is a diskless system that works
|
|
|
|
entirely from RAM. The file system is actually a RAM disk that is cre-
|
|
|
|
ated from the initrd(4) file on the floppy image.
|
|
|
|
|
|
|
|
Anything you'll do from inside the virtual machine, for instance edit-
|
|
|
|
ing a config file, will be lost when you reboot the machine. So, if you
|
|
|
|
ever asked yourself if rm -fr / (root privileges required) really
|
|
|
|
deletes all files from all mounted partitions, the floppy144.vfd VM is
|
|
|
|
the right place to test it (Yes, it does).
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
|
|
|
|
System startup
|
|
|
|
The kernel boots up very quickly and the init script (/sbin/init) waits
|
|
|
|
5 seconds. In these 5 seconds you can:
|
|
|
|
|
|
|
|
Press 'm' to manually enter the time zone and the IPv4 parame-
|
|
|
|
ters. These will be queried interactively.
|
|
|
|
Press 't' to manually enter the time zone only.
|
|
|
|
Press 's' to escape to a shell.
|
|
|
|
|
|
|
|
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 thatvlmcsd(8) has started. You should also see the IP
|
|
|
|
addresses and all user names and passwords.
|
|
|
|
|
|
|
|
|
|
|
|
Logging into the system
|
|
|
|
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 con-
|
|
|
|
sole on /dev/tty1, press ALT-F1. If inetd(8) is running you can also
|
|
|
|
use telnet(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 telnet(1) is unencrypted and everything including passwords
|
|
|
|
is transmitted in clear text. There is not enough space for an ssh
|
|
|
|
server like sshd(8) or dropbear(8).
|
|
|
|
|
|
|
|
The floppy image only provides basic Unix commands. Type busybox or ll
|
|
|
|
/bin to get a list. The only editor available is vi(1). If you don't
|
|
|
|
like vi, you may transfer config files via ftp(1) edit them with the
|
|
|
|
editor of your choice and transfer them back to the floppy144.vfd VM.
|
|
|
|
|
|
|
|
|
|
|
|
The menu system
|
|
|
|
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 expe-
|
|
|
|
rience with Unix commands.
|
|
|
|
|
|
|
|
|
|
|
|
1) (Re)start vlmcsd
|
|
|
|
Starts or restarts vlmcsd(8). This is useful if you changed
|
|
|
|
/etc/vlmcsd.ini(5).
|
|
|
|
|
|
|
|
|
|
|
|
2) Stop vlmcsd
|
|
|
|
Stops vlmcsd(8).
|
|
|
|
|
|
|
|
|
|
|
|
3) (Re)start inetd
|
|
|
|
Starts or restarts inetd(8). If inetd(8) is restarted, current
|
|
|
|
clients connected via telnet(1) or ftp(1) will not be dropped.
|
|
|
|
They can continue their sessions. This is useful if you changed
|
|
|
|
/etc/inetd.conf(5).
|
|
|
|
|
|
|
|
|
|
|
|
4) Stop inet
|
|
|
|
Stops inetd(8). All clients connected via telnet(1) or ftp(1)
|
|
|
|
will be dropped immediately.
|
|
|
|
|
|
|
|
|
|
|
|
5) Change the time zone
|
|
|
|
Just in case you missed pressing 't' during system startup. This
|
|
|
|
also restarts vlmcsd(8) if it was running to notify it that the
|
|
|
|
time zone has changed. Restarting vlmcsd(8) allows currently
|
|
|
|
connected clients to finish their activation.
|
|
|
|
|
|
|
|
|
|
|
|
k) Change keyboard layout
|
|
|
|
This allows you to select a different keyboard layout.
|
|
|
|
|
|
|
|
|
|
|
|
6) Show all kernel boot parameters
|
|
|
|
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 less(1). So press 'q' to return to the menu.
|
|
|
|
|
|
|
|
|
|
|
|
7) Show boot log (dmesg)
|
|
|
|
Shows the boot log of the kernel. The output is piped through
|
|
|
|
less(1). So press 'q' to return to the menu.
|
|
|
|
|
|
|
|
|
|
|
|
8) Show TCP/IP configuration
|
|
|
|
Shows the TCP/IP configuration, listening sockets and current
|
|
|
|
TCP and UDP connections. Useful, if you problems with net con-
|
|
|
|
nectivity. The output is piped through less(1). So press 'q' to
|
|
|
|
return to the menu.
|
|
|
|
|
|
|
|
|
|
|
|
9) Show running processes
|
|
|
|
Shows all processes including memory and CPU usage. Display will
|
|
|
|
updated every second. Press 'q' or CTRL-C to return to the menu.
|
|
|
|
|
|
|
|
|
|
|
|
s) Shutdown
|
|
|
|
Shuts down the floppy144.vfd virtual machine. Proper shutdown is
|
|
|
|
not required. It is ok to use a hard power off in your virtual-
|
|
|
|
ization program.
|
|
|
|
|
|
|
|
|
|
|
|
r) Reboot
|
|
|
|
Reboots the floppy144.vfd virtual machine. Proper reboot is not
|
|
|
|
required. It is ok to use a hard reset in your virtualization
|
|
|
|
program.
|
|
|
|
|
|
|
|
|
|
|
|
PERMANENT CHANGES OF INITRD
|
|
|
|
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 initrd(4) file, make any modfications you
|
|
|
|
like, create a new initrd(4) file and copy it to the mounted floppy.
|
|
|
|
|
|
|
|
To unpack the initrd(4) file you'll need xz(1) (or lzma(1) on older
|
|
|
|
unix-like OSses) and cpio(1). These can be installed using your package
|
|
|
|
manager on all major distros. It is ok to use the BSD version of
|
|
|
|
cpio(1). No need to get the GNU version for BSD users. Provided the
|
|
|
|
floppy is mounted in /mnt/floppy do the following:
|
|
|
|
|
|
|
|
Create an empty directory
|
|
|
|
mkdir ~/vlmcsd-floppy-initrd
|
|
|
|
|
|
|
|
cd into that directory
|
|
|
|
cd ~/vlmcsd-floppy-initrd
|
|
|
|
|
|
|
|
Unpack initrd
|
|
|
|
cat /mnt/floppy/initrd | unlzma | cpio -i
|
|
|
|
|
|
|
|
After applying your changes build a new initrd(4) file:
|
|
|
|
|
|
|
|
|
|
|
|
cd into your directory
|
|
|
|
cd ~/vlmcsd-floppy-initrd
|
|
|
|
|
|
|
|
Create the packed file
|
|
|
|
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
|
|
|
|
|
|
|
Do not try to use 'lzma -9' to achive better compression. The kernel
|
|
|
|
can't read the resulting file. While customizing the initrd(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 cpio(1) archive
|
|
|
|
to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniver-
|
|
|
|
sary Update) and later, you must make sure to unpack the initrd(4) file
|
|
|
|
to a directory on VolFs (normally everything that is not mounted under
|
|
|
|
/mnt). The initrd(4) file can be on a VolFs or DriveFs.
|
|
|
|
|
|
|
|
|
|
|
|
FAQ
|
|
|
|
On what distro is the floppy image based?
|
|
|
|
None. Besides the boot loader ldlinux.sys, there are only three bina-
|
|
|
|
ries: The Linux kernel bzImage, busybox(1) and vlmcsdmulti-x86-musl-
|
|
|
|
static. bzImage and busybox(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.
|
|
|
|
|
|
|
|
|
|
|
|
Why is a rather old Linux kernel (3.12) used?
|
|
|
|
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. Every-
|
|
|
|
thing works except that you need to assign much more main memory to the
|
|
|
|
virtual machine.
|
|
|
|
|
|
|
|
|
|
|
|
Can the floppy be booted on bare metal?
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
FILES
|
|
|
|
syslinux.cfg, vlmcsd.ini(5)
|
|
|
|
|
|
|
|
|
|
|
|
BUGS
|
|
|
|
IPv6 cannot be configured with static or manual parameters.
|
|
|
|
DHCPv6 is not supported.
|
|
|
|
'ip route add ...' does not work. Use 'route add ...' instead.
|
|
|
|
|
|
|
|
|
|
|
|
AUTHOR
|
|
|
|
floppy144.vfd has been created by Hotbird64
|
|
|
|
|
|
|
|
|
|
|
|
CREDITS
|
|
|
|
Linus Torvalds et al. for the Linux kernel
|
|
|
|
Erik Andersen et al. for the original uClibc
|
|
|
|
Waldemar Brodkorb et al. for uClibc-ng
|
|
|
|
Denys Vlasenko et al. for BusyBox
|
|
|
|
H. Peter Anvin et al. for SYSLINUX
|
|
|
|
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
vlmcsd(8), vlmcsd.ini(5), initrd(4), busybox(1), syslinux(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hotbird64 May 2017 VLMCSD-FLOPPY(7)
|