Advertising

Welcome to SparkyLinux forums
Zapraszamy również na polsko-języczne Forum Linuxiarze.pl

Author Topic: Sparky Bonsai - a portable edition of SparkyLinux  (Read 743 times)

Offline jidan

  • Newbie
  • *
  • Posts: 36
Sparky Bonsai - a portable edition of SparkyLinux
« 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 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.

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
« Last Edit: December 09, 2019, 03:52:04 pm by jidan »

Offline pavroo

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2051
    • SparkyLinux
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #1 on: December 03, 2019, 04:48:44 pm »
That's great, thank's for letting us know that!
Nothing is easy as it looks. Danielle Steel
Join #sparkylinux at irc.freenode.net

Offline jidan

  • Newbie
  • *
  • Posts: 36
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #2 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?

Offline pavroo

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2051
    • SparkyLinux
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #3 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?
Nothing is easy as it looks. Danielle Steel
Join #sparkylinux at irc.freenode.net

Offline jidan

  • Newbie
  • *
  • Posts: 36
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #4 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.
« Last Edit: December 04, 2019, 02:31:20 am by jidan »

Offline carlo

  • Full Member
  • ***
  • Posts: 214
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #5 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?
« Last Edit: December 08, 2019, 11:02:22 pm by carlo »

Offline jidan

  • Newbie
  • *
  • Posts: 36
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #6 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.
« Last Edit: December 09, 2019, 03:39:33 pm by jidan »

Offline jidan

  • Newbie
  • *
  • Posts: 36
Re: Sparky Bonsai - a portable edition of SparkyLinux
« Reply #7 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.
« Last Edit: December 10, 2019, 10:59:43 am by jidan »