| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Get Dreamlinux using zsync

Page history last edited by Paul G. Taylor 14 years, 1 month ago


 

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.