SparkyLinux Forums

Development => Remastering => Topic started by: jidan on December 02, 2019, 10:35:37 pm

Title: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on December 02, 2019, 10:35:37 pm
Sparky Bonsai is a GNU/Linux distribution based on Debian/Sparkylinux in a portable form. Taking advantage of the experience of portable distros such as Slax, Porteus, Puppy and DebianDog, we made a remix of our favor Debian-based distro SparkyLinux. The idea was to make a portable version of the linux distro having already installed at home, in cases we can’t, don’t need or wish to install it properly.

We’ve test it in Stretch Debian version on troubleshooting and repairing other systems, booting diskless machines, checking used PCs for buying, hacking windows-locked office PCs, using machines with no traces and many more. We found it useful, we enjoyed it a lot and we decide to distribute the new Debian Buster based version.

Sparky Bonsai lives in a USB flash 4GB minimum and run with 512 MB of RAM on x86 processors. At the moment it’s only available in 64bit version. It fits on a DVD or CD optical disk and runs in ext2/3/4, fat32, xfs, exFAT file systems. In order to load it to RAM, 1GB is recommended.

It is a minimal Debian Buster file system using Debian linux kernel v. 4.19.0.6 with the BusterDog’s modules for porteus boot, live-boot-3x and aufs support. Kernel updates are not available the way they are on a properly installed linux system. As you may know, BusterDog uses the Antix Linux init system. Sparky Bonsai uses systemd as pure Debian and Sparky Linux. If you don’t wish to use systemd, check the BusterDog (based on Antix) or Beowolf (based on Devuan).

Sparky Bonsai use PCmanFM as file/desktop manager and JWM as windows manager. JWM’s menu construction is based on sparkybonsai menumaker. It comes with Pale Moon as the default web browser, Mousepad as the default text editor and LXterminal as default terminal emulator. All DebianDog’s module and remaster scripts are included as well.

Synaptic package manager is present and you can install all Debian and Sparkylinux packages. The BusterDog’s repository is inactive because of some Antix packets incompatible with Debian. You can use some packets if you’re sure they are compatible but DONT update your system with this repository enabled.

Installation

Download the iso file from: https://osdn.net/dl/sparkybonsai/sparkybonsai-64-2019.iso

1. USB flash or removable Hard Disk Can be fat32 or ext2/3 formatted. Ext4 filesystem is NOT recommended for installation on removable flash media.
  1a.Extract iso files and copy /boot and /live folders at the root of your media OR burn iso on an optical disk (CD/DVD), boot it and copy those folders from /mnt/sr0 to the root of your removable media.

  1b.Open a terminal and cd to (your disk path)/boot/syslinux

  1c. Run the bash script bootinst.sh as root (sudo) sh bootinst.sh The Slax syslinux install script will make your media bootable ONLY for Sparky Bonsai. The script detects the location you run it, so run it ONLY into the directory of the removable media you wish to boot Sparky Bonsai.This will not format your disk, all other files will remain intact.

  1d. (Optional) Now you can manually edit the file /boot/syslinux/live.cfg and customize your boot options using the proper boot codes.

2. Alongside other Linux installation (grub boot).

  2a.Extract iso files and copy the /live folder OR burn iso on an optical disk (CD/DVD), boot it and copy /mnt/sr0/live folder at the root of your hard disk Can be formatted in any linux compatible filesystem including ext4.

  2b. Edit the file /etc/grub.d/40_custom as root and add a menu entry:

Code: [Select]
sudo nano /etc/grub.d/40_custom
add a menuentry with the codes you wish, ie:

Quote
menuentry "SparkyBonsai Porteus Boot" {
linux /live/vmlinuz1 from=/ changes=/live
initrd /live/initrd1.xz
}

2c. Update grub as root

Code: [Select]
sudo update-grub
2d.Reboot and find the custom option on grub’s menu.

3. Network boot (pxe) is also possible using the proper boot parameters in your server’s pxelinux.cfg/default. If you wish to save changes on server, the use of nfs server is recommended. Sparky Bonsai won’t run a pxe server pre-configured (as pure Porteus do), so you have to configure it according to your server’s OS instructions.

Usage

Quote
Login:
root with password: toor
puppy with password: puppy

Sparky Bonsai is an ideal portable solution for “sparkers” (sparkylinux users) and Debian users. Some useful sparky tools as APTus are not included in order to keep the filesystem lightweight. You can install anytime APTus or any other sparky tool, but it’s recommended not to do this. You can always install sparky packets straight from Synaptic or apt. As mentioned before, some sparky tools such as the kernel related ones, are not useful in Sparky Bonsai. There’s no sense also to install a heavyweight desktop environment from sparky repos. If you wish to do so, consider of installing a full version of Sparkylinux on a hard disk or even on a removable media.

Sparky Bonsai will auto-mount all available disk partitions on boot, will use the first swap formatted as swap and mount the rest under /mnt. Find the first partition of the first disk as /mnt/sda1, the first partition of the second disk as /mnt/sdb1, the first optical disk as /mnt/sr0 etc.

After a successful boot, logins automatically as user «puppy» using slim login manager and loads the desktop. So, if you prefer to login manually or auto-login another user, you have to manual edit the file /etc/slim.conf and change the lines "default_user  puppy" and  "auto_login  no" as below:

Code: [Select]
sudo nano /etc/slim.confor
Code: [Select]
xsudo mousepad /etc/slim.conf
Case 1 - To change auto-login username:
find the line containing:
default_user        puppy

and change «puppy» to the existing user you wish to auto-login.
Save the file and reboot.

Case 2 - Manual login:
Change the default username as described, if you wish,
find the line containing:
#auto_login          no

and change it to:
auto_login          no

Save the file and reboot.

Note: There’s also a useful Porteus “cheatcode” login=username for auto-login. Unfortunately, it won’t work with Sparky Bonsai or other Debian-based distros using Porteus-boot.

Puppy user is pre-configure to use sudo, open folders or edit files as root from PCmanFM, running synaptic and gparted without asking for password or running as root X-applications with «spsu» (sparky-su) and xsudo as replacements of the discontinued gksudo, for easy desktop use.

The main aim of Sparky Bonsai is the aufs support, where the filesystem contains compressed (squashfs files), non-compressed (changes directory), even encrypted (if you choose so) parts working together. There are available for download some compressed, squashfs files and you can always create your own files after installing the packets you choose. Into /live directory there are the linux kernel (vmlinuz1) files for porteus-boot (initrd1.xz) or live-boot-3x (initrd.img) modes, buster 64 signature (buster-x86_64.sgn), the base filesystem (01-filesystem.squashfs) and the porteus structure directories. Find more about it at Porteus website:
http://www.porteus.org/tutorials/26-general-info-tutorials/
Those directories, so-called “magic” folders, and their contents will be ignored with the boot code “nomagic”.

The /live/changes directory contains all new uncompressed files, installed packets, configuration flat files etc stored by the system during the session. It contains even deletion data it you choose to remove files from the base filesystem. The use of /live/changes directory requires linux file system (ext2/3/4, xfs etc) formatted disk. Instead of /live/changes directory you can use a “frugal file”, a read/writable image file created by the system on demand. It will ask you at the end of your session if you want to save your changes or ignore them. This file can be encrypted, only visible by the user who created it. This .dat file can be stored in non-linux (fat32/ntfs) formatted disks.

In order to mount your changes on next boot, you have to edit the boot parameter “changes=”. For example, the boot parameter “changes=/live” will load/save the filesystem part located at /live/changes directory. A parameter “changes=/somefolder” will load/save the /somefolder/changes files etc. The boot parameter “changes=/live/changes.dat” will load/save the contents in the frugal file “/live/changes.dat”.

Compressed filesystem modules with the extension “squashfs” will load alphabetically on startup. So, if you wish to load a squashfs module containing kernel modules, firmware etc and you want it loaded before the basic filesystem, you can rename it to something like “00-firmware.squashfs” which is alphabetically before “01-filesystem.squashfs”. Other modules containing apps running at the top of the basic system, can be named to something like “02-firefox.squashfs”, “03-firefox-addons.squashfs” etc.

Installing software packages its as easy as on Sparkylinux, Debian, Ubuntu etc. Just locate them in Synaptic package manager and install them normally. After a successful installation, you can save all your changes in a squashfs module via a DebianDog script in menu, under the “Module Tools” category, named “Create module from changes”, using the “mksquashfs” command. Choose the media (i.e. sda1), the temporary work-directory name (i.e. “works”) and the module name (i.e. “02-firefox.squashfs”).

After copying all files in work directory, will ask for the compression method. Before choose your option, you can check the files in the /work directory, in the partition you choose before, edit them or change config files. After that click on your choice of compression (xz is recommended) and the script will proceed to squashfs creation. Now you can copy the new created file in the proper “magic folder” or in the root of /live directory to auto-load on next boot, or keep it in /live/optional directory to load it on demand. Note that after the “create module” procedure all your changes are stored in the squashfs module, so you can remove the contents of your /live/changes directory or .dat file, to prevent double-loading.

Note that JWM menu doesn’t auto-update after installations, so if you are expecting a menu icon from an installed application, you have to restart WM manually from the option under the Shutdown category of menu. You can manually load a squashfs module anytime using the “SFS-Load GUI” under the “Modules Tools” category or right-click on a squashfs module in PCmanFM and choose “Activate module”. In case you’re expecting an icon in the menu, you have to manually restart WM as mentioned. Right-click on an activated squashfs module and choose “Deactivate module” to deactivate it and restart WM to hide the icon (if exists).

If you wish to execute any custom commands on startup, put them in /home/puppy/.startup file. They will be executed on desktop startup, after loading all squashfs modules.

A suggested practice is to load in RAM the basic filesystem (using the boot code “copy2ram”) in porteus-boot mode, with a number of applications in squashfs modules into the /live/optional directory to activate/deactivate on demand and a /live/changes directory (using the boot code “changes=/live”) or .dat file (using the boot code “changes=/live/changes.dat”) to keep your configurations and documents.

Hope to enjoy this floral pup as we did. If you do, consider sending a donation to our favor Debian distribution, Sparkylinux. https://sparkylinux.org/donate/

Downloads:
SparkyBonsai 64bit, December 2019: https://osdn.net/dl/sparkybonsai/sparkybonsai-64-2019.iso

Modules:
Firefox ESR: https://osdn.net/dl/sparkybonsai/02-firefox.squashfs
Thunderbird + Lightning addon https://osdn.net/dl/sparkybonsai/02-thunderbird.squashfs
LibreOffice: https://osdn.net/dl/sparkybonsai/02-libreoffice.squashfs
Sparky-play +Sparky-player (simple mp3 and video players): https://osdn.net/dl/sparkybonsai/02-mediaplay.squashfs
Non-free firmware https://osdn.net/dl/sparkybonsai/01-firmware-nonfree.squashfs
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: pavroo on December 03, 2019, 04:48:44 pm
That's great, thank's for letting us know that!
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on December 03, 2019, 05:45:36 pm
You're welcome pavroo  :)
I'd like to listen to your opinion about the implementation.
Do you think it's spaky enough?
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: pavroo on December 03, 2019, 09:45:55 pm
It's small and fast, like Puppy or Slax or Portes, that's really nice.
Gonna drop a few lines at Sparky blog about that.
Anyway the desktop looks like JWM but no JWM is running, what is it?
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on December 04, 2019, 02:04:44 am
It is JWM with pcmanfm as desktop (pcmanfm --desktop).
Quote
Sparky Bonsai use PCmanFM as file/desktop manager and JWM as windows manager. JWM’s menu construction is based on xdgmenumaker. It comes with Pale Moon as the default web browser, Mousepad as the default text editor and LXterminal as default terminal emulator. All DebianDog’s module and remaster scripts are included as well.
Xdgmenumanager updates dynamically the menu and a script into .jwmrc setting the ultra-flat icons.
There's no display manager, not even "nodm", auto-login with systemd getty.

Sparky is already lightweight using scripting to make debian desktop use easy, just like puppies. I think this is close to puppy/porteus/slax philosophy.

PS: I'm inserting the readme text at the first post.
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: carlo on December 08, 2019, 04:40:55 pm
EDIT: i wrote some very silly thing

just a couple of questions from silly  me:
if i put the iso on a usb flash drive i sort of have a parky installed there, just the username is sparky, right?
and i can install and add files on the system and they won't be wiped away from the drive at the very next reboot?
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on December 09, 2019, 01:03:05 pm
EDIT: i wrote some very silly thing

just a couple of questions from silly  me:
if i put the iso on a usb flash drive i sort of have a parky installed there, just the username is sparky, right?
and i can install and add files on the system and they won't be wiped away from the drive at the very next reboot?

1. Read carefully the instructions, carlo. Username is "puppy", not "sparky". You can create users of your own and you have to add them to sudo group. User puppy is ready for use. You can also login as root.
2. If you "burn" the iso on a usb flash using dd command or other software, it will boot but you won't be able to save changes on usb. In this case it behaves as a CD/DVD read-only optical disk.
In order to keep your changes, you have to follow the procedure described in instructions (see first post). If your usb is fat32 formatted (all usb sticks comes this way), you have to use the .dat file option. Else, if you formatted in ext2/3 or another linux file system, you can use a /live/changes folder.
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on December 09, 2019, 01:53:00 pm
There is an updated release with bugfixes and the slim login manager replaced getty login. There's also a new module containing non-free firmware (firmware-linux-nonfree and firmware-misc-nonfree) available for downloading.
See the updated instructions on first post.
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on April 04, 2021, 05:19:40 pm
The second release of Sparkybonsai, a live GNU/Linux distribution based on DebianDog and SparkyLinux Po-Tolo, a Bullseye Debian derivative, is avalable to download at https://osdn.net/projects/sparkybonsai
The basic iso (360MB) contains the JWM window manager, PCManFM file and desktop manager, mousepad text editor, Qalculator, Xarchiver, Lxterminal, Lxpolkit, ARandR, Redshift and DebianDog's tools.
The modules iso (910MB) contains the same system plus some extra pre-installed and configured packages:
1.Firefox with tor configured and some extra add-ons
2.Synaptic package manager with xapian index
3.Fonts pack with ms ttf fonts and Fontmatrix manager
4.Office pack with Libre Office and Qpdfview
5.Vlc media player
6.Stremio media center with many plugins installed
All modules can be activated/deactivated on demand to fit your needs and keep your resources as light as possible.
Just right-click any module included in /ive/optional and activate/deactivate it with the DebianDog's tool. To let them appear in JWM's menu, you just have to do a Session-Restart and the Sparkybonsai menumaker script will do the rest.
All applications, actions and scripts will run on user's or root mode if you prefer. Will boot by default on user's mode but you can exit the session (Session-Exit) and login as root (or other user you may create) via the Slim login manager.
Sparkybonsai was tested by greek users and the default configuration (timezone, keyboard layout) is adapted for greeks.
Hope to enjoy this floral pup* as we did. If you do, consider sending a donation to our favor Debian distribution, Sparkylinux. https://sparkylinux.org/donate/
*Sparkybonsai is not a Puppy Linux distribution as it isn't based on woof-CE.

Username/password:
root 0000
puppy 0000
(four zeroes)

Debian: https://www.debian.org
DebianDog: https://debiandog.github.io/doglinux/
Sparkylinux: https://sparkylinux.org/
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: BonsiUser on April 12, 2021, 06:41:32 pm
Hi Jidan, my congratulations on this job.

My interest in Linux came from a long time ago, I have an ITX board based on Atom and 2 GB of RAM, which is the heart of my home server, it is a media server, a web server and a NAS. The main idea is to have a system that runs in RAM and every time it is reset it stays as it was in the beginning.

For a few months I was testing version 1.0 of this SparkyBonsai. From this version I did not like the JWM's color distribution in the properties windows and I changed it to OpenBox. The result was very visual, but the menus were depleted. Now I see that version 2.0 has already come out, this version has a new distribution in the colors of the properties windows that I do not dislike, I am going to test that it works. At the moment the only trouble that I see is a delay of almost 40 seconds in appearing the graphical interface. I am testing this ISO in the Oracle VM VirtualBox 6.1 emulator. Later I will test it in production on the ITX board to see if the delay goes away.

Thanks for all this work again.
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: Murdock2525 on April 12, 2021, 08:11:39 pm
Pulling it down as I type...gonna be hard to compete with antiX
Title: Re: Sparky Bonsai - a portable edition of SparkyLinux
Post by: jidan on April 13, 2021, 03:40:13 am
Thanx for testing Sparkybonsai,
@BonsiUser
Version 1 was just an implementation of Sparky, many people found it useful so we decide to release the second one as an RC version of Po-Tolo (debian bullseye). An improved 2.1 version is about to release, in both arches, a little bit more "fat" in order to support a better localization, an asian-glyphs font, cifs utils, ristretto and blueman out of the box.
Xdg-menumaker used by the first version replaced by "menumaker", a bash script i wrote for sparkybonsai using as data the existing system files and directories. The boot-up delay is because of reading/categorizing system files in order to build the menu. Other solutions would require more installed packets and the concept of a portable distro is to remain as light as possible. Xdg-menumaker was slightly faster but required more packets and (as you said) it was not always behaving as expected. In any case a compressed filesystem like debiandog, puppy, porteus, slax etc boots-up with much more delay than an ordinary installed, uncompressed system.

@Murdock2525
Antix is a complete linux distribution, can't be compared with a portable one. The portable equivalent of AntiX is probably debiandog (using the init system of AntiX).