Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a Debian (Wheezy) system that I have configured by installing/removing packages and editing some conf files.

I would like to distribute an (almost) exact replica of my system to others programmer on my team. My first instinct is to create an iso but I'm willing to listen to other suggestions.

What's the easiest way to create an installable image of my system to replicate across several computers?

Answers I'm looking for

  • On one hand, I would like to know if there're apps that do this automatically, but I think it'd be more interesting to have a step-by-step explanation on how to do this using native Unix tools (cp? dd? cat? fdisk?)

  • Making the iso bootable as LiveCD would be cool addition, but isn't really an important step.

  • Bonus points if the solution is not limited to Debian only.

What I found so far

  • remastersys claims to do this, but it looks a bit outdated and unmaintained.
share|improve this question
    
check out askubuntu.com/questions/220402/…, Relinux is another option, newer than Remastersys –  Karthik T Nov 23 '12 at 2:13
add comment

3 Answers 3

up vote 4 down vote accepted

what I do to distribute systems easily is create an image (using clonezilla over PXE and samba / nfs storage) and "cast" these images to different computers. This way I can rapidly restore images of my distributions. This is usefull if the hardware is quite the same.

There is also an option to alter live-cd's. You can read more about this here. This is however very time-consuming per live-cd.

Another option is having a look at software like Puppet. Puppet can push certain packages / configurations to a variety of operation systems. One can simply install f.e. debian, tell puppet to add this to the "webserver" (or script this process) group and puppet will push the installation of apache and other defined packages with pre-created configuration files etc.

If you create a clone using clonezilla you have the disadvantage that you have to alter some settings (f.e. ip addresses, /etc/hosts,...)

Puppet has the disadvantage that it takes some time to set up and configure but it is much more powerfull.

If you want I can give you a pdf wich explains how to setup up puppet and how to configure is (the basics).

share|improve this answer
1  
Yes, +1 for Puppet. My suggestion is to create a simple (local) .pp file in which you can describe the desired state of the machine. Then developers can use their own virtualization software, Debian package mirror, etc. and you only distribute a file of a few kilobytes. –  gertvdijk Nov 22 '12 at 22:34
add comment

Assuming their hardware is reasonably close to your hardware you can do a full system backup of your system and then restore it on their hardware. This assumes that they have userids on your machine, otherwise they will not be able to login to "their" machine. There are lots of ways to do full system backup/restores. The gentoo wiki has a nice example with rsync for the file system and dd for the boot sector.

share|improve this answer
add comment

You might try mirrordir. I've used it to replicate my whole installation from one partition to another and back several times with only little trouble. Still you would have to put something bootable onto the target system before overwriting it with your copied system or make sure the bootloader is configured for the "installation" you just made. As "everything's a file" you can go this way but don't copy the home dirs. Mirrordir has got some switches to exclude some destinct paths. Be aware, that you might implicitly delete files on the target system, because they are not on the source!

A description of mirrordir:

mirrordir forces the mirror directory to be an exact replica of the control
directory tree in every possible detail suitable for purposes of timed
backup. Files whose modification times or sizes differ are copied. File
permissions, ownerships, modification times, access times, and sticky bits 
are duplicated. Devices, pipes, and symbolic and hard links are duplicated. 
Files or directories that exist in the mirror directory that don't exist in
the control directory are deleted. It naturally descends into subdirectories 
to all their depths. mirrordir tries to be as efficient as possible by 
making the minimal set of changes necessary to mirror the directory. 

(This description is borrowed from http://www.debianhelp.co.uk/debianutilities3.htm)

If you use mirrordir: Please be careful. It's very powerful.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.