Tuesday, November 2, 2010

Clone RedHat / Cent OS / Fedora Bare Metal Recovery

Clonesys is a Shell script that can be used to create an ISO image of your Linux system. It is not another tool that backup users files but a tool that can recreate "ex nihilo" a similar system on another hardware.

#wget http://www.trickytools.com/downloads/clonesys-1.4.0.tgz
#tar xvzf clonesys-1.4.0.tgz
#cd clonesys-1.4.0
#sh clonesys.sh
STEP 1: Configuration Summary:
----------------------------------------------------------------------
Parameters used for Image Creation:
Prompt before executing commands: n
Clean Directories before creating the backup files: y
Temporary Files Location: /tmp/clonesys
Save the Ext2 Extended Attributes (lsattr): n
Save the Extended Attributes (getfattr): n
Save the ACL (getfacl): n
Use "star" instead of "tar": y
Boot Loader method: grub
RAID Management Method: none
Filename that contains additional kernel modules to include: moremodules.list
Build a Single Image: n
    Archive Maximum Size: 650 MB
    Tar Archive Slice Size: 50 MB
ISO Image Name: /tmp/clonesys.iso
Burn the CD when process completed: n
Parameters used for System Restoration:
Write the Boot Sector on the MBR: y
Check for Badblocks when partitioning: n
Force the load of some CD-Rom kernel drivers (recommanded): y
Press to continue or to abort

star not found - it will not be used instead of tar

STEP 2: Clean the build directory:
----------------------------------------------------------------------
Done

STEP 3: Check for required commands:
----------------------------------------------------------------------
Checking existence of command pidof: OK
Checking existence of command readlink: OK
Checking existence of command ldd: OK
Checking existence of command basename: OK
Checking existence of command dirname: OK
Checking existence of command du: OK
Checking existence of command sed: OK
Checking existence of command uname: OK
Checking existence of command cut: OK
Checking existence of command mknod: OK
Checking existence of command dd: OK
Checking existence of command tr: OK
Checking existence of command tail: OK
Checking existence of command tar: OK
Checking existence of command sort: OK
Checking existence of command uniq: OK
Checking existence of command grep: OK
Checking existence of command sfdisk: OK
Checking existence of command fdisk: OK
Checking existence of command lsmod: OK
Checking existence of command mkisofs: OK
Checking existence of command modprobe: OK
Checking existence of command mount: OK
Checking existence of command umount: OK
Checking existence of command gzip: OK
Checking existence of command modinfo: OK
Checking existence of command awk: OK
Checking existence of command stat: OK
Checking existence of command bc: OK
Checking existence of command cdrecord: OK

STEP 4: Check and create needed sub-directory:
----------------------------------------------------------------------
Checking existence of directory /tmp/clonesys: OK
Checking existence of directory /tmp/clonesys/tmp: OK
Checking existence of directory /tmp/clonesys/loop: OK
Checking existence of directory /tmp/clonesys/iso/realconf: OK
Checking existence of directory /tmp/clonesys/iso/isolinux: OK
Checking existence of directory /tmp/clonesys/initrd: OK
Checking existence of directory /tmp/clonesys/iso/backup: OK

STEP 5: Copy source files to /tmp/clonesys:
----------------------------------------------------------------------
Copy ./isolinux files: OK
Copy ./initrd files: OK
Copy real basename and required libraries: OK
Copy library /lib/libc.so.6:  OK
Create the symbolic link:  OK
Copy library /lib/ld-linux.so.2:  OK
Create the symbolic link:  OK
Copy real cat and required libraries: OK
Copy library /lib/libc.so.6:  OK
Create the symbolic link:  Link already created
Create the symbolic link:  Link already created
Copy ./realconf files:  OK

STEP 6: Create configuration files under /tmp/clonesys/iso/backup:
----------------------------------------------------------------------
Copy the currently loaded modules:
Forcing module ide-cd
Forcing module isofs
Copy Module ide_cd: OK
Copy Module cdrom: OK
Copy Module iptable_filter: OK
Copy Module ip_tables: OK
Copy Module x_tables: OK
Copy Module ipv6: OK
Copy Module xfrm_nalgo: OK
Creating special node for /dev/sdj: OK
Unmounting the CD-Rom: OK
Create the mount points:
Mount point for /dev/sda3 is / (Type=ext3, Options=rw)
Mount point for /dev/sda1 is /boot (Type=ext3, Options=rw)

STEP 7: Backup the system files:
----------------------------------------------------------------------
Building the file list:
Managing Directory: /bin
Managing Directory: /sbin
Managing Directory: /usr/sbin
Managing Directory: /usr/sbin/euca_admin
Managing Directory: /usr/bin
Managing Directory: /usr/lib
Managing Directory: /usr/lib/alsa-lib
Managing Directory: /usr/lib/alsa-lib/smixer
Managing Directory: /usr/lib/anaconda-runtime
Managing Directory: /usr/lib/anaconda-runtime/boot
Managing Directory: /usr/lib/apr-util-1
Managing Directory: /usr/lib/aspell-0.60
Managing Directory: /usr/lib/audit
Managing Directory: /tmp/clonesys/
Creating the file archive (Please wait): testmade
OK

STEP 8: Prepare the Boot Loader:
----------------------------------------------------------------------
Check if file grub/grub.conf has been backup up OK
Check if file grub/menu.lst has been backup up OK
Check if file grub/device.map has been backup up OK
Check if file grub/stage1 has been backup up OK
Check if file grub/stage2 has been backup up OK
Check if file grub/e2fs_stage1_5 has been backup up OK
Check if file grub/fat_stage1_5 has been backup up OK
Check if file grub/ffs_stage1_5 has been backup up OK
Check if file grub/iso9660_stage1_5 has been backup up OK
Check if file grub/jfs_stage1_5 has been backup up OK
Check if file grub/reiserfs_stage1_5 has been backup up OK
Check if file grub/xfs_stage1_5 has been backup up OK

STEP 9: Create the Initial RAMDisk image:
----------------------------------------------------------------------
Compute the initial RAMDisk size: OK (found 22356 KBytes)
Create the initial RAMDisk file: 38740+0 records in
38740+0 records out
39669760 bytes (40 MB) copied, 0.317524 seconds, 125 MB/s
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
9696 inodes, 9685 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=12582912
1 block group
32768 blocks per group, 32768 fragments per group
9696 inodes per group

Writing inode tables: done                           
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
OK
Loopback mount of /tmp/clonesys/iso/isolinux/initrd: OK
Copy initrd files: OK
Unmounting /tmp/clonesys/iso/isolinux/initrd: OK
Compressing the initial RAMDisk: OK
Copy current Linux kernel under /tmp/clonesys/iso/isolinux directory: OK

STEP 10: Create the ISO Image:
----------------------------------------------------------------------
Do you want to enter a shell before making the ISO filesystem (y/n) ? Create the ISO images:
Preparing ISO image #1 (current archive=1, start size=10544)
Create the ISO image #1:
mkisofs: Warning: -follow-links does not always work correctly; be careful.
INFO:    UTF-8 character encoding detected by locale settings.
    Assuming UTF-8 encoded filenames on source filesystem,
    use -input-charset to override.
Size of boot image is 4 sectors -> No emulation
  1.97% done, estimate finish Tue Nov  2 16:11:42 2010
  3.93% done, estimate finish Tue Nov  2 16:11:42 2010
  5.90% done, estimate finish Tue Nov  2 16:11:42 2010
  7.86% done, estimate finish Tue Nov  2 16:11:54 2010
  9.83% done, estimate finish Tue Nov  2 16:11:52 2010
 11.79% done, estimate finish Tue Nov  2 16:11:50 2010
 13.76% done, estimate finish Tue Nov  2 16:11:49 2010
 15.72% done, estimate finish Tue Nov  2 16:11:54 2010
 17.68% done, estimate finish Tue Nov  2 16:11:53 2010
 19.65% done, estimate finish Tue Nov  2 16:11:57 2010
 21.62% done, estimate finish Tue Nov  2 16:11:55 2010
 23.58% done, estimate finish Tue Nov  2 16:11:58 2010
 25.55% done, estimate finish Tue Nov  2 16:11:57 2010
 27.51% done, estimate finish Tue Nov  2 16:12:00 2010
 29.48% done, estimate finish Tue Nov  2 16:11:58 2010
 31.44% done, estimate finish Tue Nov  2 16:12:01 2010
 33.40% done, estimate finish Tue Nov  2 16:11:59 2010
 35.37% done, estimate finish Tue Nov  2 16:11:58 2010
 37.34% done, estimate finish Tue Nov  2 16:11:58 2010
 39.30% done, estimate finish Tue Nov  2 16:11:59 2010
 41.27% done, estimate finish Tue Nov  2 16:11:58 2010
 43.23% done, estimate finish Tue Nov  2 16:11:58 2010
 45.20% done, estimate finish Tue Nov  2 16:11:57 2010
 47.16% done, estimate finish Tue Nov  2 16:11:58 2010
 49.13% done, estimate finish Tue Nov  2 16:11:58 2010
 51.09% done, estimate finish Tue Nov  2 16:11:59 2010
 53.06% done, estimate finish Tue Nov  2 16:11:58 2010
 55.02% done, estimate finish Tue Nov  2 16:12:00 2010
 56.99% done, estimate finish Tue Nov  2 16:11:59 2010
 58.94% done, estimate finish Tue Nov  2 16:12:00 2010
 60.91% done, estimate finish Tue Nov  2 16:12:00 2010
 62.87% done, estimate finish Tue Nov  2 16:12:01 2010
 64.84% done, estimate finish Tue Nov  2 16:12:02 2010
 66.81% done, estimate finish Tue Nov  2 16:12:01 2010
 68.77% done, estimate finish Tue Nov  2 16:12:02 2010
 70.73% done, estimate finish Tue Nov  2 16:12:01 2010
 72.70% done, estimate finish Tue Nov  2 16:12:02 2010
 74.66% done, estimate finish Tue Nov  2 16:12:02 2010
 76.63% done, estimate finish Tue Nov  2 16:12:02 2010
 78.60% done, estimate finish Tue Nov  2 16:12:02 2010
 80.56% done, estimate finish Tue Nov  2 16:12:03 2010
 82.53% done, estimate finish Tue Nov  2 16:12:02 2010
 84.49% done, estimate finish Tue Nov  2 16:12:03 2010
 86.45% done, estimate finish Tue Nov  2 16:12:02 2010
 88.42% done, estimate finish Tue Nov  2 16:12:03 2010
 90.38% done, estimate finish Tue Nov  2 16:12:03 2010
 92.35% done, estimate finish Tue Nov  2 16:12:02 2010
 94.31% done, estimate finish Tue Nov  2 16:12:03 2010
 96.28% done, estimate finish Tue Nov  2 16:12:02 2010
 98.24% done, estimate finish Tue Nov  2 16:12:03 2010
Total translation table size: 2048
Total rockridge attributes bytes: 4634
Total directory bytes: 8192
Path table size(bytes): 56
Max brk space used 1a000
254479 extents written (497 MB)
OK
ISO image generated as /tmp/clonesys1.iso - Ready to burn !
Error(s)  : 0
Warning(s): 1
Please, check for the errors & warnings in file /tmp/clonesys/tmp/tar.err



:D

4 comments:

Bhaskar said...

Good find Rajat!

Cheers mate!
Bhaskar

Unknown said...

Your Welcome Bhaskar :D

SAN Junkie said...

Hi Rajat, Would like to know whether it supports Software Raid as we have a device where we have Raid 1 which we want to clone.

Regards
Sandeep

Unknown said...

Yes its work soft Raid