Introduction
Dreamlinux-3.5 is now available, The final version being released on 28th Feb. 2009. Here is how you can obtain this using zsync, a small CLI [Command Line Interface] tool that has some distinct advantages over other methods of downloading large files such as these ISO files [of aproximately 700 MB in size].
Here are the simple steps to doing this with the latest release of Dreamlinux.
First you need to install zsync. For recent versions of Dreamlinux this is as easy as using Synaptic and doing a search for zsync, then selecting it and confirming its installation.
If zsync is not available in your disto's repositories you may have to download and compile from its own web site. This is not too difficult a process and has low risk to your setup.
Once installed, open a Konsole window and navigate to the directory where you wish to build the target ISO. You will need up to twice the size of the ISO file in free disk space for safety's sake.
GUI - open file browser, create directory where needed, then open a Konsole window there.
CLI - mkdir /path-to-directory/directory && cd /path-to-directory/directory
In the Konsole window, located in the directory where you wish to build the ISO file, type this code : --
zsync URL-of-ISO.iso.zsync -i /path/to/oldISOfile1.iso -i /path/to/oldISOfile2.iso -u URL-of-ISO.iso
Notes :
- Invokes the zsync application and downloads the small 'recipe' file to start the download process
- You can use any ISO file you have and more than one. Zsync will check them all and reuse any chunks that are identical to parts of the target ISO. Even a corrupted ISO can be safely reused. Choose files that are closest to the target ISO you have available.
- zsync will first check these input files for reusable chunks and build a template with gaps for the chunks that need to be downloaded. This will take about a quarter of an hour.
- If you wish, you can point to one or more alternative download URLs with the -u URL-of-ISO.iso switch. Zsync will try them all and switch between them as needed to complete the download.
- If zsync is stopped for any reason it can be restarted with the same command-line and will simply reuse any sections already downloaded and keep going until the ISO is complete and checks out with the md5sum.
Have fun!
Documentation of the process.
For the record, here is a transcript of the process as I have just now done it on my computer. Bear in mind that my process was really only a simulation as all the files were on this system, however, as far as zsync is concerned, they might just as well have been anywhere, with the exception of the 'input file', the previous local version of the ISO.
[Note, I found out about the && recently, lets you do more than one thing at a time, in sequence,
'date && time' without the quotes, will spit out the date and time, at the start of a process and the time taken, at the end.]
Summary of requirements
Items shown in red are constant, ie yours will be the same as mine.
Items shown in blue are variable, ie translate to the equivalent in terms of your file system.
Comments will be with a yellow background.
Target ISO file : DL3.5_20092802.iso
md5sum : f33b86dc90961f60b99b4b3414bddbea
URL to retreive from :
Mirror 1 ftp://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
Mirror 2 http://ftp.nl.freebsd.org/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
Mirrors :
Xfce Edition
Upload Date: 2009-Feb-28 00:00:00
List of unofficial mirrors : --
http://www.dreamlinux.dream-os.org/DL3.5_20092802.iso
http://dl.laszlo.co.hu/index.php?dir=dreamlinux_35/
ftp://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
ftp://ftp.surfnet.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
http://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
http://ftp.surfnet.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
http://ftp.nl.freebsd.org/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
http://ftp.nl.freesbie.org/ftp/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
http://www.dreamlinux.dream-os.org/DL3.5_20092802.iso
Location of input file : /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso [Note, this is my pendrive]
Location of output file : /mnt/Data1/NewHome/paul/ISOfiles/Dreamlinux-3.5
Location of zsync file : /media/disk/Dreamlinux-3.5/DL3.5_20092802.iso.zsync
Note : You will need 700 MB of free space in this output directory and maybe even 1.4 GB if you have to restart the process at any stage, as an intermediate files are created then remamed/deleted after completion.
I have now uploaded the zsync file to this site and it is available here : --
DL3.5_20092802.iso.zsync and its md5sum is DL3.5_20092802.iso.zsync.md5sum
Download these files into the directory where you are going to be working and verify its md5sum.
md5sum -c DL3.5_20092802.iso.zsync.md5sum
Note that this particular file does not specify the URL for the ISO file to be downloaded. You need to supply this information to the application yourself, using the -u switch, like this : --
zsync DL3.5_20092802.iso.zsync \
-u ftp://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso\
-u http://ftp.nl.freebsd.org/os/Linux/distr/dreamlinux/stable/DL3.5_20092802.iso
for the two official mirrors, or any of the unofficial mirrors in a similar way. There is no limit to the nunber of URLs supplied in this way. Just ensure that no line-feeds are included in the line if copying and pasting to the Konsole window.
Setting up the command line to start the process
Note : I have not updated this or following sections for the latest Dreamlinux ISO.
I strongly suggest that, if you are not familiar with the CLI, you first compose the command in a text editor, then copy and paste into the Konsole window. Go back and correct any mistakes until the command works as desired.
The format of the command is : --
zsync path/to/targetfile.iso.zsync -i path/to/inputfile.iso -u http://URL-of-targetfile.iso
application : zsync
'recipe file' : file.iso.zsync [You can download this into your working directory or use a URL to retrieve from. In my case I had generated the file locally, so just copied it over before starting.]
Current Input file : inputfile.iso
URL of the target file : http://URL-of-targetfile.iso
Here is the built-up command, which is on one line without breaks, although spaces are OK : --
date && time [optionally prefix this to the command]
zsync DL3.5-RC4_211008.iso.zsync -i /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
Comments :
- date && time is optional - it helps me keeping track on things.
- DL3.5-RC4_211008.iso.zsync could be replaced by a URL of this file, eg http://pgtips91.pbwiki.com/f/DL3.5-RC4_211008.iso.zsync
- You could use another ISO file that you already have, say a Debian Sid ISO. Zsync will find any usable chunks and reuse them, and, if not, will report as much and just download the entire ISO from the start.
Here is the command, in one line, to cut and paste into a Konsole window : --
date && time
zsync http://pgtips91.pbwiki.com/f/DL3.5-RC4_211008.iso.zsync -i /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
Konsole History record of the process, with annotations and explanations.
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ echo from distrowatch here's the md5sum f47a750f75818894e78274b1c6a3a1a0 DL3.5-RC4_211008.iso
from distrowatch here's the md5sum f47a750f75818894e78274b1c6a3a1a0 DL3.5-RC4_211008.iso
I did this just to record this information right at the start. It was hard to actually find this information in the first place.
First attempt:
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ time zsync /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso.zsync -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
No relevent local data found - I will be downloading the whole file. If that's not what you want, CTRL-C out. You should specify the local file is the old version of the file to download with -i (you might have to decompress it with gzip -d first). Or perhaps you just have no data that helps download the file
downloading from http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso:
-------------------- 0.0% 4.7 kBps
-------------------- 0.0% 82.2 kBps 148:42 ETA
real 0m6.289s
user 0m0.168s
sys 0m0.040s
I aborted this with the 'Control +c' command, as I did not want to download the entire file again. But it does illustrate that you can do an initial download with zsync without needing a prior version of the ISO file as input to the process. Zsync will just do what it said it would do and download 100%, verify its md5sum and finish.
Second attempt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ time zsync /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
/media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso: Permission denied [Linux is finikity about permissions - I simply changed the ownership of the files and folder to paul:paul instead of root:root. They were set that way because of how I obtained the ISO via a LiveCD, to my pendrive, then into my computer's hard drive.]
I like to use 'time' at the start of the process just for interest sake in how long the process takes. This will record the time automatically.
real 0m0.012s
user 0m0.000s
sys 0m0.004s
Third attempt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ time zsync /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
Bad line - not a zsync file? ""
Ok, you see that I stuggle to get it right the first time, but note how 'friendly' the error messages are!
real 0m0.096s
user 0m0.000s
sys 0m0.008s
Fourth Attempt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 164
-rw------- 1 paul paul 163840 2008-11-01 08:55 DL3.5-RC4_211008.iso.part
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ rm DL3.5-RC4_211008.iso.part
rm: remove regular file `DL3.5-RC4_211008.iso.part'? y
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 1400
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync
First I got rid of the 'part' file, and listed the name of the zsync file to use. Now I'm gettting close!
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ time zsync DL3.5-RC4_211008.iso.zsync -i /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso
reading seed file /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso: *****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************Read /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso. Target 100.0% complete.
verifying download...checksum matches OK
used 731078656 local, fetched 0
real 14m31.709s
user 0m34.630s
sys 0m21.193s
Just remember to wait, while zsync checks the md5sum of the finished download, then changes its name from 'file.iso.part' to 'file.iso'. I was trapped into thinking that the process had stopped working, the first time I used it, and stopped it, ruining the completion of the process.
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 716052
-rw------- 1 paul paul 731076608 2008-11-01 18:09 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ date [this puts in the date and time, for the record]
Sat Nov 1 18:11:24 NZDT 2008
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ md5sum -c DL3.5-RC4_211008.iso.md5sum
DL3.5-RC4_211008.iso: OK
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ [I did an md5sum check, just to double check, but zsync had already done that before finishing. If there had been an error, at that point, then zsync would have reported the error.]
All finished in less than a quarter of an hour. Sometimes zsync can 'find' up to 80% or more in a local file, shortening the download times very significantly. This is at the cost of a short amount of calculation time at the start, which, this simulations shows to be very reasonably short.
Re-doing the download with the posted zsync file.
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ date && time zsync http://pgtips91.pbwiki.com/f/DL3.5-RC4_211008.iso.zsync -i /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso -u http://linorg.usp.br/iso/dreamlinux/DL3.5-RC4_211008.iso && date
Sat Nov 1 22:29:50 NZDT 2008
#################### 100.0% 26.8 kBps DONE
reading seed file /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso: *****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************Read /media/disk/Dreamlinux-3.5/DL3.5-RC4_211008.iso. Target 100.0% complete.
verifying download...checksum matches OK
used 731078656 local, fetched 0
real 15m20.960s
user 0m35.590s
sys 0m20.089s
Sat Nov 1 22:45:11 NZDT 2008
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 1430704
-rw------- 1 paul paul 731076608 2008-11-01 22:43 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw------- 1 paul paul 731076608 2008-11-01 18:09 DL3.5-RC4_211008.iso.save
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync.save
-rw-r--r-- 1 paul paul 3774 2008-11-01 19:11 zsync-update.txt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$
Using Multiple Input Files.
I have just verified that it is possible to use more than one input file as 'seed file' to limit the amount of data that needs to be downloaded to update to the latest version of Klikit-Linux.
From my Konsole window : --
[quote]paul@ubuntu:/media/LINUX/Linux-ISO-files/Klikit-Linux/Klikit-Linux-RC3$ sudo date && time zsync /media/LINUX/Linux-ISO-files/Klikit-Linux/klikit-linux-DVD-0.2-RC3-copper.iso.zsync
-i /media/LINUX/Linux-ISO-files/Kubuntu/cosmosis-x32b.iso
-i /media/LINUX/Linux-ISO-files/Kubuntu/kubuntu-8.04-desktop-i386.iso
Fri Dec 12 19:39:20 NZDT 2008
reading seed file /media/LINUX/Linux-ISO-files/Kubuntu/cosmosis-x32b.iso: **********************************************************************
Read /media/LINUX/Linux-ISO-files/Kubuntu/cosmosis-x32b.iso. [color=red]Target 20.6% complete.[/color]
reading seed file /media/LINUX/Linux-ISO-files/Kubuntu/kubuntu-8.04-desktop-i386.iso: ***********************************************************************
Read /media/LINUX/Linux-ISO-files/Kubuntu/kubuntu-8.04-desktop-i386.iso. [color=red]Target 32.8% complete[/color].
URL 'klikit-linux-DVD-0.2-RC3-copper.iso' from the .zsync file is relative, but I don't know the referer URL (you probably downloaded the .zsync separately and gave it to me as a file). I need to know the referring URL (the URL of the .zsync) in order to locate the download. You can specify this with -u (or edit the URL line(s) in the .zsync file you have).
failed to retrieve from klikit-linux-DVD-0.2-RC3-copper.iso
Aborting, download available in klikit-linux-DVD-0.2-RC3-copper.iso.part
verifying download...
real 3m4.821s
user 2m26.821s
sys 0m7.332s
[/quote]
The 'download' failed because zsync apparently cannot cope with having the target file locally! The partly completed file is correct, though, as can be verified by using the target file as another input file, after which it does complete.
[quote]Read /media/LINUX/Linux-ISO-files/Klikit-Linux/klikit-linux-DVD-0.2-RC3-copper.iso. Target 100.0% complete.
reading seed file klikit-linux-DVD-0.2-RC3-copper.iso.part: ************************************************
[color=red]Read klikit-linux-DVD-0.2-RC3-copper.iso.part. Target 100.0% complete.
verifying download...checksum matches OK
used 1036947456 local, fetched 0
[/color][/quote]
Note that by using more than one input file the amount of pre-fetched data was greater than when using either of these two files on their own. The amount of data download saved, in this exercise, would be in the order of 324 MB out of a total of 988.9 MB
[quote]Read /media/LINUX/Linux-ISO-files/Kubuntu/kubuntu-8.04-desktop-i386.iso.[color=red] Target 22.2% complete.[/color][/quote]
[quote]Read /media/LINUX/Linux-ISO-files/Kubuntu/cosmosis-x32b.iso. [color=red]Target 20.6% complete.[/color] [/quote]
You can even use a downloaded ISO file that [color=red]failed[/color] its md5sum test as an input file so as to re-use any of its [color=red]verified[/color] parts. It is almost impossible to have a failed download using zsync as it checks each chunk as it goes and resumes where it left off if the download is stopped, broken, or otherwise interrupted.
Comments (0)
You don't have permission to comment on this page.