531 lines
24 KiB
Plaintext
531 lines
24 KiB
Plaintext
|
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 (versions 2013 and
|
|||
|
greater) activations. 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.
|
|||
|
|
|||
|
|
|||
|
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 June 2016 VLMCSD-FLOPPY(7)
|