Tux

Open Small Linux

Version 0.8  |  BuildRoot  |  opkg  |  x86-64

Quick facts

Base: BuildRoot
Platform: PC (x86-64)
Packages: opkg
Installer: osl-install (CLI)
Boot: GRUB 2 (manual)

Mini-handbook

A short reference for Open Small Linux 0.8: how to try it, install it, and live with it. Everything below is exactly what the system ships today.

1. Requirements

ComponentMinimumRecommended
CPUx86-64x86-64 with SSE2
RAM512 MB1 GB or more
Disk1 GB free2 GB+
FirmwareLegacy BIOSUEFI or Legacy BIOS

The live system runs entirely from RAM (the initramfs is ~300 MB), so do not try it on a machine with 256 MB of memory.

2. Live mode

Write the ISO to a USB stick and boot from it:

dd if=osl-v0_8.iso of=/dev/sdX bs=4M status=progress
sync
Welcome to Open Small Linux 0.8
osl login: root          # <- no password

The live system is read-only in spirit: everything you change lives in RAM and disappears on reboot. To keep anything, install to a disk.

3. Installation

The installer does not partition the disk for you: split it yourself first, then let osl-install do the rest (format, copy, boot code).

cfdisk /dev/vda             # 1) DOS/MBR layout for BIOS
                            #    or: cfdisk --label gpt /dev/vda for UEFI
osl-install                 # 2) run the installer as root

What the installer asks:

QuestionAnswer
Target partitione.g. /dev/vda1 (the one you just created)
Destroy data?y
Boot mode1 = DOS/MBR + BIOS, 2 = GPT + UEFI
ESP partitiononly in mode 2, e.g. /dev/vda2

Then it runs, without asking anything else:

  1. mke2fs -F on the chosen partition;
  2. copies the whole system (cp -a of bin sbin lib etc usr boot ...);
  3. writes /etc/fstab (and /boot/efi entry in UEFI mode);
  4. generates /boot/grub/grub.cfg with the right root=/dev/... and set root='hd0,msdos1' / 'hd0,gptN';
  5. installs the boot code by hand:
    • BIOS: first 440 bytes of boot.img into the MBR (partition table untouched!) and core.img into the gap at sector 1;
    • UEFI: formats the ESP as FAT32 and copies EFI/BOOT/BOOTX64.EFI.

Requirement: the first partition must start at sector 2048 (1 MiB alignment) so that core.img fits into the MBR gap. The installer checks this and refuses to proceed otherwise.

Reboot, remove the USB stick, done.

4. First steps after installation

osl-sysinfo            # does everything look right?
osl-net status         # interfaces, addresses, default route
osl-net ping 1.1.1.1   # connectivity check
passwd                 # SET a root password, the default is empty!

5. Built-in tools

CommandWhat it does
osl-sysinfoOS version, kernel, CPU, memory, disks, uptime
osl-net statusInterfaces, IPv4/IPv6 addresses, default route
osl-net ping HOST3 ICMP echoes via /bin/ping
osl-net up|down IFACEBring an interface up or down
osl-powerInteractive menu: reboot / power off / halt
osl-installInstalls the system to a hard disk (see above)

6. Packages (opkg)

opkg is included in every image. Honest note for 0.8: no package feed is configured yet — there is no /etc/opkg.conf and no package database, so opkg update will fail until the official repository launches. Installing a package from a local file works:

opkg install ./some-package.ipk

After the official repository appears, the usual workflow will be:

opkg update
opkg search <keyword>
opkg install <package>
opkg remove  <package>
opkg list-installed

See also the Repository page.

7. Boot & GRUB

There is no grub-install and no grub-mkconfig in OSL. The installer writes everything itself, which means the bootloader is fully manual — and fully predictable:

FileRole
/boot/grub/grub.cfgThe boot menu. Edit it directly to change timeout, title, kernel options. There is no update-grub — the file is the configuration.
MBR (sector 0)First 440 bytes of boot.img (BIOS only)
Sectors 1..Ncore.img in the gap before the first partition (BIOS only)
EFI/BOOT/BOOTX64.EFIUEFI bootloader on the ESP

An example menu entry:

set default="0"
set timeout="3"

menuentry "Open Small Linux" {
    insmod ext2
    set root='hd0,msdos1'
    linux /boot/bzImage root=/dev/vda1 rw console=tty1
}

Notes:

  • GRUB modules are not stored on the disk; everything needed (normal, ext2, linux, search...) is embedded into core.img. So insmod ext2 in the menu works, but insmod of anything else will fail with "file not found" unless you copy the modules to /boot/grub/i386-pc/ yourself.
  • Both boot images contain a small early config that runs search --file /boot/grub/grub.cfg, so GRUB finds the menu on any partition, no matter how it is numbered.
  • The default root password is empty. Set one with passwd right after installation.

8. Troubleshooting

SymptomWhat to do
"error: no such partition" / GRUB rescue promptThe disk moved or the menu points at the wrong partition. Boot from USB, check /boot/grub/grub.cfg and fix set root= and root=.
Installer says partition starts too earlyRe-partition with 1 MiB alignment (start sector 2048). cfdisk does this by default; old tools may not.
Installer refuses: "current root filesystem"You pointed it at the partition you are running from. Pick another one.
Black screen after GRUB on UEFIAdd console=tty1 (or console=ttyS0 for serial) to the linux line in grub.cfg.
No network at bootosl-net status, then ifup eth0 / check /etc/network/interfaces.
Forgot the root passwordBoot from USB, mount the installed partition, delete the password hash in <mount>/etc/shadow.
Need to change a kernel parameterEdit the linux line in /boot/grub/grub.cfg. That's all — no regeneration step exists.

This handbook describes Open Small Linux 0.8. Foundry programs are not yet part of the image.

The project is supported by:

Foundry Technologies

Project sponsor: Foundry Technologies

© 2026 Open Small Linux. Linux is a trademark of Linus Torvalds.
Tux the penguin: Larry Ewing, vector version by Garrett LeSage.