*** Create a Debian 9 (Stretch) minimal live ISO similar to 'DebianDog' ***

Updated on 2018-01-13Thanks All for the contributions, suggestions, testing and any other feedback, specially:
dancytron, belham2, rcrsn51, wiak, jd7654, backi, AndresC2, peebeeSee here for updates and fixes

With aufs support and porteus-boot style included
It's required to have at least 3 GB free space and to run the script on a Linux filesystem, e.g. ext4
Should work running from any Debian based OS, I tested on Stretch Dog 32 and 64 bit.

Similar to This (for Jessie) but this is **way** better, easier, faster! (using debootstrap)

Wait... and.. That's all ! (except for some questions to answer and to set the root password during the build)
Took for me 15 minutes to create ISO, size: 164 MB (xz compressed squashfs) on a 10 year old HP laptop (dual core) and a medium fast internet connection.

This may not be considered as just a howto, but as a project that can grow, e.g. extend the script by calling other scripts e.g. for having choice of different window-managers, desktop environments, applications. Better use of git may be the best (but not my strongest point).

So development depends on the interest, feedback and help from anyone. This is anyway some sort of base concept (that can be changed also, of course).

Thanks to everyone who recommended debootstrap, it's a very convenient and fast method.
A full netinstall is less minimal, more basic software included which is an advantage in a way
(using debootstrap you'll have to watch more carefully not to make it 'too minimal')

FredLast edited by fredx181 on Thu 01 Feb 2018, 06:48; edited 65 times in total

2017-08-07:
- Fixed bug that it worked well only from an OS with the same kernel version as the default Stretch kernel version.
(works on Debian Jessie also now)
- Script is more compact, building time will be shorter, ISO size 161 MB
- More applications, right-click actions for PcManFM, Lz4 support for squashfs, etc.. , see more Here

Changes on 2017-08-18:
- GUI and CLI version into one, added different options: -help (no option, will show help) -gui -cli, or e.g. -cli <config_file> (use config file), -conf (create standard config file 'stretchlive.conf')
- The apt cache in /var/cache/apt will be kept (instead of downloading each time script is run)
- Added field 'Desktop' to the gui (see more info when clicking Information button)
- Creates 'build_setup.txt' in stretch folder containing how you configured the build and create 'build_setup.conf' (ready to use as config file)
- Added checkboxes (GUI):
------ Remove some automatically installed packages
(to keep ISO size more down)
(more info when clicking Information button)
------ If running 64 bit host OS, create a 32 bit build
- Multi-user support improved ('Add new user' in Menu)
(user puppy does not exist in the system but can be added, /home/puppy folder exists preconfigured already for openbox type of build)
- Added google-chrome repository (64 bit only)
(google-chrome-stable package can be added to apps list in the GUI)
(in /usr/local/bin there are launchers 'chrome-root.sh' and 'chrome-puppy.sh', thanks to dancytron
- Pin the kernel version (lock)
- Allow the user to make changes in chroot just before creating 01-filesystem.squashfs (script paused)
(use upgrade-kernel to upgrade to newer version)

I removed midori, lxpanel and synaptic from the list and got an ISO of about 130 meg. The filesystem01.squashfs file was less than 100 meg.

Installed it as porteus boot save on exit. Save to flash worked.

It doesn't really do anything though. . .

I take it that it uses the list of repositories from the distribution you are using to run it? That's what it seemed to do. edit: no it doesn't

I caught myself before I did it, but I imagine you don't want to run it from /root since that would fill up your ram memory and crash. Instead run it from the linux partition. Right?

I'll play with it some more later.

edit: I made another one. Then I installed all the deb dog specific scripts. Ran the quick remaster and it worked (used gzip, because you didn't say anything about lz4 working).

The only issue is that I somehow broke (or maybe just couldn't figure out) the network for my ethernet. Is there a file I should delete during the remaster to reset it or ???

Any way, this is a great accomplishment, alhough I'm not sure I'll be able to build anything I'll like better than your standard one.Last edited by dancytron on Wed 02 Aug 2017, 04:28; edited 1 time in total

My understanding of this is that it uses Debian debootstrap script to create a minimal Debian Stretch install in a chroot environment? And the rest of the script then adds to that to include Porteus boot and all the other Dog-related extras to create a Dog out of the debootstrap base?

This may not be considered as just a how to, but as a project that can grow, e.g. extend the script by calling other scripts e.g. for having choice of different window-managers, desktop environments, applications.

So development depends on the interest, feedback and help from anyone. This is anyway some sort of base concept (that can be changed also, of course).

Hi Fred!

Interesting and good stuff! Thank you for your hard work. And this what I think is the most exciting part of this:

...but as a project that can grow, e.g. extend the script by calling other scripts e.g. for having choice of different window-managers, desktop environments, application....

Now, I just gotta hope my simple grasp of scripting skills are good enough that I can trial & error different WMs, DEs and Apps to do different builds (is there a central location for all the dog-specific scripts, is it on your DDog webiste???)

P.S. I also wanted to give "Dancytron's" comment a big thumbs up:

"Any way, this is a great accomplishment, alhoughI'm not sure I'll be able to build anything I'll like better than your standard one"

Hi belham,Fred and everybody !
You are a man of action Fred.
Smells like an interesting/exciting new Game/Kick.
Although i dont have any clue of how this is working i am going to start the engine and follow your instructions to to see what happens.
I am sure it is worth to keep an eye or maybe two on it .
Regards !

I take it that it uses the list of repositories from the distribution you are using to run it? That's what it seemed to do. edit: no it doesn't

It creates new /etc/apt/sources.list and includes the right (stretch)dog repository depending if it's 32 or 64 bit build.

Quote:

I caught myself before I did it, but I imagine you don't want to run it from /root since that would fill up your ram memory and crash. Instead run it from the linux partition. Right?

Yes, that's right don't run from e.g. /root but on a linux filesystem formatted partition, e.g. sda2

Quote:

edit: I made another one. Then I installed all the deb dog specific scripts. Ran the quick remaster and it worked (used gzip, because you didn't say anything about lz4 working).

The only issue is that I somehow broke (or maybe just couldn't figure out) the network for my ethernet. Is there a file I should delete during the remaster to reset it or ???

Lz4 indeed not supported (yet)
I think your internet connection broke because the remaster script does clean one folder too many (it removes important part of peasywifi), inside quick-remaster script this line should be removed (or commented out:

Code:

rm -rf tmpa/etc/rc.d

Now that peasywifi is in the dog repositories, I guess I'll have to update all remaster script packages that have similar as this line (not sure yet, maybe easier to consult rcrsn51 about a small change in peasywifi) sigh...

wiak wrote:

My understanding of this is that it uses Debian debootstrap script to create a minimal Debian Stretch install in a chroot environment? And the rest of the script then adds to that to include Porteus boot and all the other Dog-related extras to create a Dog out of the debootstrap base?

I will leave the script how it is for a while, just did a little 'visualizing' about how to extend, for example questions like:
"Which browser to include ?": 1) firefox 2) chromium 3) midori ...... *) "No thanks, I hate browsers"
Same maybe with file manager or window manager or even combinations (may be very complicated to accomplish though)

But perhaps the best thing to do first is to extend it with more handy dog applications, e.g. filemnt, sfs-load, lz4 support etc..
As always, any suggestions are welcome.

EDIT: Question to those who tested this. How long did it take ? (and with xz or gzip compression ?)

@backi, it's really easy, open a terminal on some linux partition, sda* (with at least 2GB free space) and run the script.

Could not boot to Desktop :
This was the Message :
creating live filesystem and inserting modules
mount:mounting aufson/union failed:no such device
can`t setup union(aufs)-read only filesystem?
When you finish debugging press (Ctrl+Alt+Del) to reboot

But perhaps the best thing to do first is to extend it with more handy dog applications, e.g. filemnt, sfs-load, lz4 support etc..
As always, any suggestions are welcome.

I agree with this. It seems like the basic Debian Dog functions, create an sfs, mount and use an sfs, edit an sfs, and remaster could be included just listing the appropriate apps in the list at the top of the script.

Since you can delete midori and add firefox-esr or whatever, I am not sure browser choosing needs to be automated much more than that.

But you couldn't boot burned ISO to cd either, looks like the creating of the 01-filesystem.squashfs is not fully completed, how big is it ? (right-click on it in filemanager > How Big ?)
Don't know, maybe the same problem as you had with apt2sfs a while back (not enough space ? on sda7)
Anyway I think I will implement in the script a check for at least 2.5 GB free space and otherwise exit.

But perhaps the best thing to do first is to extend it with more handy dog applications, e.g. filemnt, sfs-load, lz4 support etc..
As always, any suggestions are welcome.

I agree with this. It seems like the basic Debian Dog functions, create an sfs, mount and use an sfs, edit an sfs, and remaster could be included just listing the appropriate apps in the list at the top of the script.

Since you can delete midori and add firefox-esr or whatever, I am not sure browser choosing needs to be automated much more than that.

Yes, indeed those kind of special dog applications should be included (and implement right-click actions for filemanager associations).
I agree, a browser can be easily replaced, so better think about including choices that are not straight forward to do by a user.

Now that peasywifi is in the dog repositories, I guess I'll have to update all remaster script packages that have similar as this line (not sure yet, maybe easier to consult rcrsn51 about a small change in peasywifi) sigh...

Removing /etc/rc.d, /etc/DISTRO_SPECS, and /initrd in remasterdog and remastercow scripts is sometning I insisted to include to prepare DebianDog for puppy-boot option (using initrd.gz from puppy with debian kernel).
Better remove the lines above from the scripts to make easier puppy developers to keep the same structure for packages like peasywifi (inside /etc/rc.d for puppy and dog based system). Porteus-boot and live boot will not create /initrd or /etc.rc.d (both are puppy specific for important configuration files).

...let me try something here, about ready to hit myself between the eyes for possibly confusing the partitions.....

Nope, sadly, I didn't confuse them. Well, the build process seems to go great, gives me the big "OK" at the end. But nothing I can do will get either of the two builds I did to boot up.

Will try tomorrow----maybe will swap out stuff from Trinity Stretch and see if the problem is either the vmlinuz and/or possible the initrd1.xz (my betting money would be on the initrd1.xz).

Yes, good to try initrd1.xz from Trinity-Stretch, could be the problem with that
A few questions:
- 01-filesystem.squashfs, what's the size (from right-click > How big ?)?
- From what OS you did run it ?
- Enough free space on the partition you build on ?

Since dancytron and I didn't have the problem, I'm thinking in the direction of missing packages (failed download through https, ISP issue ?), and apt-get possibly refuses to install anything if one or more packages it cannot find.
just guessing though. We'll see later tomorrow.

This is just wonderful......I wonder if people in the puppy world will realize how this script approach of yours is stepping ahead of them in many ways when it comes to what a simple, beautiful build process can be. My God, woof-CE can learn something here. It overall is so nice. I mean, the build is only ~165MB, it's the latest Debian, it updates so easy beyond anything in puppy world, and I can install anything from Synaptic and all the deb repos (and yours, Toni's, others...)

I just don't have words to tell you how much fun this is and was.

20 mins to build on a very slow amd single-core Sempron from 2005, it still took only 20 mins. On faster machines, it will move below 10 mins! And to think of the customizations that can be done to this build script.....the ideas going off in my head are so numerous it is going to explode Well done, my friend, very, very well done.

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum