How to Image a Linux box

Introduction

Reinstalling many machines with essentially the same content, is a time consuming process... here's how you can clone Linux machines...

This page details how to take an image of/clone a Linux system to use for restorating or wide scale rapid deployment, simplar to how utilities like Ghost work.

This document outlines how to use 'dd' or 'tar' to take a sytem image.

dd (bit copying)

To take a true copy of a disk

This is as simple as running the following commands, when the system is booted from read-only media (e.g. a Knoppix CD)


dd if=/dev/hda | gzip --fast > hda.img.gz

And restoration is a simple

gzcat -dc hda.img.gz | dd of=/dev/hda

The use of gzip can produce significant savings in storage requirements (typically around 50%), however using the dd command above results in your master images always being approximately the same size (certainly the case if gzip is not used).

Because 'dd' is reading at the block level of the disk, it will read every bit on the disk. This is inefficient, but if you have fast hardware, plenty of storage space and are lazy, it's simple and guaranteed to work. It has the added advantage of also taking a copy of the partition table, so there's one less step required on re-installation. However it will require the same amount of storage space as the size of the partition (or disk) you are copying - hence using gzip can help!

If you only want to image a particular partition, or e.g. LVM logical volume, then just change e.g. /dev/hda to /dev/hda1 or /dev/mapper/VG1_LV1 (or whatever), but you'll then become responsible for setting up the partition table and/or LVM and (probably) the boot loader

If you want to take a copy of the boot loader, you can normally do :


dd if=/dev/hda bs=512 count=1 of=boot.img

Using tar

tar reads at the file system level of a disk, and therefore :

  • Uses the minimum amount of disk space (when compared to dd)
  • The backup won't contain partitioning information (unlike dd)
  • The backup will vary in size depending on the amount of disk usage
  • It will be necessary to re-install the boot sector afterwards (unlike dd)

The best way to use tar, is to again (like when using dd) boot the system from a live-cd. Then mount the disk read-only and create a tar file. Restoration is essentially the reverse, but you'll need to reinstall the loader and partitioning in manual steps (grub-install from a chroot, for example :


#!/bin/bash

parted -s /dev/hda mklabel msdos
parted -s /dev/hda mkpart primary ext3 1 37000
parted -s /dev/hda mkpart extended 37001 38500
parted -s /dev/hda mkpart logical linux-swap 37002 38499

mkfs.ext3 -j /dev/hda1 -L ROOT
mkswap /dev/hda5
mkdir /mnt/hda1 || true
mount /dev/hda1 /mnt/hda1
pwd=`pwd`
cd /mnt/hda1
tar -zxvf disk_backup_2005-03-11.tar.gz
set +x echo "Installing boot loader (Grub)"
chroot /mnt/hda1 /sbin/grub-install /dev/hda

Technorati Tags:

Comments

Para que seja feita o

Para que seja feita o restore é necessario primeiro ter o linux instalado na maquina ?

dd'ing to/from drives of different sizes

(00:52:19) random_person@hotmail.com: can i ask you a question?
(00:55:34) random_person@hotmail.com: i suppose i already have, so here goes.  in regard to your linux imaging document, using the dd command will i be able to put that image on a drive of a different size?

It's been a while since I've done this (dd stuff), but from memory you can :

  • Have a destination drive larger than the source and have no problems.
  • If the destination is smaller than the source, you're going to have to resize the used space on the source to be less than, or equal to, the destination disk. For this you'll definately need to resize the filesystem, and then the partition itself.

After dd'ing across, when there has been a size change, you may need to run fdisk to make sure the partition table matches the size of the disk - I think fdisk will correct this automatically, it just needs to be run once.

Is there a way to do this

Is there a way to do this with an external USB drive?
I have a remote box I need to backup and need to be able
to plug up a "backup" usb drive, reboot to a bootable
disc, backup the drive using dd, mirror image like
Drive Image, Ghost, etc. then reboot the box back to
it's "normal" operating state.

Yes

Assuming you boot from a Linux LiveCD, then it will all work - assuming your external usb drive is large enough to fit the disk image onto, there should be no problems at all.

/dev/hda not found when tried dd.

Hi, I get response from fedora core 5 that /dev/hda: No such file or directory
Shouldn't it be taking image of hard-drive anyway I try. I am taking image of /dev/sda to see it works. Let me know how to solve it.

Linux device naming

If you are using parallel ATA disks (i.e. IDE), then it's likely you'll have hd[a-d] disks.

If you have Serial ATA (sata) then you'll probably have sd[a-d] instead.

Is it possible to transfer a Linux Image to new Hardware?

Hi, would it be possible to transfer a Linux System with Software Raid and LVM to a new Hardware (1Ghz PIII to 2.5Ghz PIV, IDE remains)
What has to be done/foreseen?

Thanks for help
kindest regards,
Paddy

Yes....

Yes, it is possible - but you'd need to take the image from the 'internal' device, e.g. the lvm volume, and write that out to e.g. /dev/hda1.

muito bom

muito bom

Restore in LAN

Can I restore the image to another computer on my Lan with dd? Like this:gzcat -dc hda.img.gz | dd of=static05/dev/hda. My aim is to install a computer and transfer this installation to 83 other computers in my Lan. The best way to do it would be to put the image on the server and fetch it from there. I can ssh them and I cn use scopy.

network + dd restore

It would be easiest if you booted the remote machine up from a livecd, and then mounted the 'remote' filesystem over e.g. NFS, then you could treat everything as a local disk.

At least, that's what I used to do....

dd iDE to SATA?

I am running winxp but i need to image my old ide to a newer sata drive. can i use a live cd to do this, mbr (master boot reccord) and all?

yes....

yes.... this will work; however Windows might not like the fact that the hardware has changed; but it would work for e.g. Linux, and should work for Windows.

dd and different partition sizes

I'll try not to go off half-cocked here, but as far as the comment about "using the dd command will i be able to put that image on a drive of a different size?", and then the second part of the response was "If the destination is smaller than the source [...] you'll definitely need to resize the file system, and then the partition itself"
For those who don't know, you may want to mention the fact that you can actually mount the raw image file using the loop file system, and make changes to the actual image as if it were a live partition! A google search for "image", "mount", and "loop" can yield some very interesting results.
Depending on the file system, this can be quite complicated, but it can save you from having to do inconvenient changes to the original partitions. Just a thought. Please disregard if I have inadvertently come off as a crackpot. :-) Surf Wisely!

Indeed!

Mounting the filesystem image over loopback is pretty much the same as what you do when you use UserModeLinux, Xen, QEmu or VMWare virtual machines and their disk images.

More details please :)

I just had some questions about this procedure as I am new to "cloning boxes". First, I am working with RHEL 5 and need to be able to create an image of a box in order to rebuild it to the same state at a later time. So let's assume I have created the image above and all is well. In order to "apply" the image to the box can I do it at runlevel 5 or a multiuser mode? Obviously this would be the most convenient. If not, you wrote to do it when I have read only media mounted. Can you explain this further? Would I just have to insert disk 1 of the RHEL 5 o/s and then run the "dd of=/dev/hda" command ?? If so, what do I type when I insert CD 1 in order to get to a prompt to perform this? Do you need to be in any particular directory when you run the command? Also, my drive is not called /dev/hda it is called /dev/mapper/VolGroup00-LogVol00 so I think my command should read "dd of=/dev/mapper/VolGroup00-LogVol00" to unpack the file correct?
That's all I have for now. I hope by chance this thread is still being monitored. I would appreciate any help. Thx.

disk imaging - some details (?)

Hi Sarah,

Which you take a copy of, and restore from, will determine what you can do in the future.

For instance, you could take a copy of /dev/mapper/VolGroup00-LogVol00 using dd if=/dev/mapper..., but then when it comes to restoration you'd need to setup LVM to have that logical volume.

On the other hand, you could (effectively) ignore LVM, and take a dump of an entire disk (or partition of the disk), doing say :

dd if=/dev/hda1 of=/somewhere/image.disk

Then from a restoration point of view, you'd just need to partition the disk and then you could run dd if=/somewhere/image.disk of=/dev/hda1

Regardless of which you do, you need to make sure that the thing you're restoring onto (logical volume or partition) is the same size, or bigger than, the original source.. otherwise you'll loose data.

I've not used RHEL5, so I don't know whether it's a LiveCD or not. I do know that e.g. Knoppix is, and also the Ubuntu installer CD is.

In RHEL run level 5 is multi-user mode. If the disk you are taking an image from, or restoring to, is mounted you will almost certainly have problems. This is why the LiveCD route is suggested - as it allows you to have sole access to the hard disk - thereby ensuring the image's integrity.

Good luck!

Trying again...

I don't know if my other comment posted but would CD #1 of RHEL 5 be considered a live CD?

A couple other questions

Thanks for the reply, since I want to make a image of the entire system I assume I need the /dev/mapper/etc... because on my system /dev/hda1 is /boot
I have tried to do it in runlevel 5 and runlevel 3 and the root disk is only 3gb total and both times the dd never finished and the files were 11gb or more.
I assume the multiuser is what is hosing me.
I am a little confused about have to setup an LVM volume to have it available because all I did when I installed the box was a default install and did not
set up any type of LVM partition. So, I was hoping when I apply the file to another box it would set it up as well. I'll keep trying and let you know where I
get. Thanks again !

A couple of answers?

Hi,

1) A friend tells me that RHEL 5, CD1 can be used as a rescue CD - but only if you type in 'linux rescue' when it gets to the first prompt.

2) Download Knoppix, and boot your system from a CD. This should then mean you're not using the hard disk...

3) How big is the hard disk you're using? If you're taking an image of /dev/hda (for example), it's not going to matter how big the first partition is, as it will take an image of the entire disk.

RedHat default to using LVM; I _think_ you can do an install without LVM, but it would probably require you to customise the partitioning.

David

So, are you saying I can use

So, are you saying I can use cd 1 for a livecd as long as i type linux rescue? if so, i'll just go that route since I've already got the cd.

My df -k output is as follows total used partition
/dev/mapper/VolGroup00-LogVol00 36gb 2.5gb /
/dev/hda1 101mb 10mb /boot
tmpfs 257mb 0 /dev/shm

To get a full system image I need to image /dev/mapper/.... and not /dev/hda1 correct? Since that is only the /boot partition

i think so ;)

Hi,

I don't have RHEL here, so I'm only going on what someone else said briefly (although he does work for RedHat!).

CD1 can act as a rescue CD; what this probably means is that it will get you to a command prompt with your filesystems mounted, but probably nothing running. If this is the case, unmount the filesystems and go ahead and create your image using dd.
(You'll need to mount some additional form of storage first - e.g. NFS or SMB/CIFS to copy the image onto, or pipe it through ssh....)

re partition table

I'll read the rest of your post next time....

_If_ you only have a single hard disk in the computer, you may find it easiest to just take an image of /dev/hda; but the size of this image will obviously be the same as the hard disk itself (which is probably many gigabytes).

You can, if you wish, take an image of .....LogVol00 - but when it comes to restoring it, you'll probably need to create a volume group etc beforehand; and create the logical volume. I'm not sure how easy this is, as my memory is a bit rusty.

That's interesting

I was assuming when I run dd on the /dev/mapper partition which is 2.5 gb then my file created by dd would not be more than 2.5gb but if it is taking an image of the entire disk including unused space then it will be 36gb (if I'm reading you correctly). But if that's the case the author of the original post would have probably mentioned it that you have to pipe it to another box. hmmmm.....
I'm currently in rescue mode and I am in read only mode and I'll see what happens this time. A crucial question would be...If my entire system only uses 2.5gb of disk space would you expect the dd file to be the same or larger than this, and if larger, how much larger, the size of the disk? If so, you could never do this locally.

yes..

Yes, you're right wrt disk space usage requirements.

When I last did this, I piped it via e.g. ssh to a remote box (or mounted an NFS share from another server).

i.e.

dd if=/dev/hda1 | ssh user@box "cat > image.disk"

(I think that syntax is correct)

Alternatively, you could mix in gzip, like :

dd if=/dev/hda1 | gzip -c | ssh user@box "cat > image.disk.gz"

I'll try and reformat hte original article to make it easier to read....

sounds good

That would be great. Wow, that's crazy, I have to create a 36gb file even though onnly 2gb is used on a 36gb drive? That means on my systems with a 200gb drive it will create a 200gb file? Holy cow. The time it would take to back up and restore an image of that size would be very time consuming. Doesn't the gzip shrink it? I'm just having a hard time believing this. Is there any way you can look at an image you created and see what size it is? Like is it the entire disk size or more like the used space.
On another front, I rebuilt the box and got rid of all the LVM stuff so I'll just be dealing with /dev/hda now...

err

In the way I documented it, dd is reading the bits off the disk. It's very 'dumb' in the way it does this - as it has no understanding of how filesystems work... hence it will create an image which is the same size as the partition/disk itself.

You can use gzip to compress the size of the created image; and it should help a lot. But the size reduction depends somewhat on what bits were what on the disk. If the disk is "old" and has been extensively used, then it's highly likely that most parts of the disk will of, at some time or another, been written to. Therefore, there will be no 'blank' areas of the disk that gzip can compress into near nothing.

(When you delete files off a filesystem, it's normal for the data to remain on the disk, but the pointers to that data are deleted).

One way to "cheat" is to therefore run "dd if=/dev/zero of=/dev/hda" before you install the OS on the disk, which you will eventually image. This will allow gzip to perform great compression on the disk, as so much of the data will be the same.

Yes - creating a 200gb disk image will take a long time - this is why gzip can help.

Running 'ls -lh disk.image' will show you how big the created image is.

Clonezilla

Has anyone else tried Clonezilla?

Does what your trying to do here and also copying of discs and partitions in one easy to use Linux Live CD!

http://clonezilla.org

interesting experiment

So, I just did a test experiment of making a dd of the /boot partition on my box (because it is smaller) and what I found is that the device total size
was 99mb and the used size was 18mb. When I ran the dd command with the gzip option as instructed above it quickly completed the task and the size of the
output file is 7.5mb or about half of what the "used size" was and not the "total allocated size" for the partition.

Interesting though is the fact that on my other test box I booted off of cdrom and ran the same command but this time trying to copy /dev/hda and it has
been running for about 7 hours now and still is not complete. Total disk size is 36gb and used space is about 3gb. I initially was running this command at
runlevel 5 and then tried runlevel 3 and then single user mode all of which never finished (or I wasn't patient enough). So I came in this morning and booted
off of cdrom and ran the command and after 7 hours still nothing. I guess I'll leave it over night and see how it looks in the morning, but copying this whole
entire disk has really seemed to be a bear. Will wait and see what the morning brings...

not so surprising

1. You can't be using the disk when you take a 'dd' image of it. You won't get a consistent snapshot.

2. The used size of a partition will have only some bearing on how big a disk image is created (assuming you are using gzip).

3. Where are you writing the image to for the computer with the 36gb disk? Is the disk image you're creating growing? The image file should be created on a different filesystem than the one you are imaging (I hope this is obvious).

4. As the article states; dd "does everything" but it's the slowest method. You might want to look at 'tar' which will be significantly quicker as it will only deal with the 'used space' on the disk - but you will then be responsible for partitioning and fixing the boot sector afterwards...

something for me to try

Interesting comment you made about piping the new .gz file to another partition. I have been trying to create the file on the same partition for /dev/hda and it has not been working. However, I thought yesterday when I copied /boot I was sitting in the /boot partition and it worked fine. I came in this morning to find my dd command still running after 24 hours so I killed it. I'm still having issues with the damn root drive. Maybe the issue is because I was sitting in the directory although it wouldn't explain how the /boot partition allowed me to do it. I'll be looking into clonezilla as well as this is just becoming near impossible. I've got to be missing something...

So, if I can't be sitting in the directory and I need to nfs mount another box I don't know if that's possible in a read only rescue type mode, although I think I saw a choice where I can enable networking. Off to try it another way...

that explains a lot!

As I said in the previous comments, you should have a remote (or external) file system.... so :

Copying from /dev/hda to :

* External USB disk
* Remote filesystem through ssh
* Remote filesystem via NFS
* Remote filesystem via CIFS/SMB

Would all work.

thanks
David.

now we're getting somewhere

i got a large nfs partition mounted now and while in runlevel 5 i was able to dd the /boot directory to this nfs partition and also got it to work while i was sitting in /boot itself. I was then also able to dd the entire /dev/hda to the nfs partition as well while sitting in / at runlevel 5. The only thing I might try now is so get to a single user type mode with networking and see if the file size is any different. I don't suspect it will be since dd actually finished this time. So I don't think it matters so much as where you are at when you run the command but as long as it's to a different partition. I also want to make sure the runlevel is not affecting the outcome so that's why I just need one more test. The next fun part will be the restore test to see if I can delete some things on the box and see if the hda.img.gz file will recover everything. And btw, I know I've been a pain so much thanks for getting me this far. I can actually see the homestretch now... I hope :)

Good results

I now have two successful hard drive images. One was created at runlevel 5 and one was created with the rescue CD, both were sent to the same NFS partition.
The files are very similar in size. The first one is 24,157,150,033 and the second is 24,156,849,423 so just 300mb difference. I think just to be safe I will try to restore from the smaller file done by the rescue CD.

What is the best way to test this? Should I just delete some important folders like /var or /usr and then boot off of the rescue CD and
run "gzcat -dc hda.img.gz | dd of=/dev/hda" ?? Does that sound reasonable?

Also, will this restore a box only if a previous linux load was on it or should I be able to take another identical box that has never had an o/s on it and boot into rescue mode and do the same procedure above and get an identical box? That is what I was going to test next but you might already have the answer.

So far so good!

answers? me?

Hi,

You can probably restore it onto any box, but you may run into difficulties with hardware (e.g. one image expects $x network card and $y graphics card...) - normally Linux is very good about such things, but it's something you should test beforehand.

Yes, the restore sounds reasonable (i think; without checking the syntax)

restore help

I'm trying to restore the image to a box that never ran linux before and is identical in hardware to my current box. I booted it up from the rescue cd and nfs mounted the filesystem that contains my dd image.gz, however the restore to /dev/hda doesn't work. I think the reason is my df -k output which is:

Filesystem Mounted on
/dev /dev
/tmp/loop0 /mnt/runtime
/dev/VolGroup00/LogVol00 /mnt/sysimage
/dev/hda1 /mnt/sysimage/boot

The root filesystem has mounted under the Volume group instead of /dev/hda, even though /dev is mounted by itself and contains /dev/hda that partition is very small and basically I get a read error if I try to put data in it. Any suggestions?

Also, assuming I just do a restore to my original box does /dev/hda need to be mounted or unmounted before kicking off the zcat|dd restore command?

err

You probably need to check what /dev/hda is. I've seen people state that hard disks now all turn up as /dev/sd[abcd] (etc). So it could be what was /dev/hda is now /dev/sda.

The easiest way to check, is to run 'dmesg' and look at the output. Or try : 'fdisk -l /dev/hda' etc, and see if it looks "big" enough.

no luck restoring

I built another box identical to my original with /dev/hda disks instead of raid. However, when I boot the rescue cd /dev mounts itself as it's own partition and is very small. However, I don't think that's it. It's just not letting me write to /dev/hda (and I thought this was gonna be the easy part)

so far...

I have played around with this again all week and gave up on using the gzip command because I could never get the files to come back that way.
So, I started just going with a dd if=/dev/hda of=/nfsmountpoint and that worked perfect. I was able to image separate partitions as well as the whole hda drive and recover
them just fine. I would go in and absolutely delete all types of things from the root drive or boot sector and I could always recover it.

However, what I was really wanted to do with this was to use that image to build other boxes with. Here's what I found so far:

I took an identical box and installed the same version of linux on it and configured the partitions exactly like my first box.
Next I took an image of the new boxes hda drive just to be safe (this image happened to be identical to the byte of the image of my original boxes image file), so I was feeling pretty good that the image of my first box might work for the new box.
When I did the restore it was successful and everything copied fine.
However when I went to boot the box it just didn't work, it gave a bunch of errors and it had problems with the password file and said that there was no /etc/fstab I believe.
It got stuck in a loop and just kept rebooting itself.

So, I am able to clone a box and restore it to itself but I just can't find a way to take that image and rebuild another box with it even though they were built exactly the same. Any suggestions?

was the disk you took an

was the disk you took an image of in use when you imaged it?

i.e. did you boot the system off a LiveCD to create the disk image? Or was the system booted off it's own hard disk?

Linux HDD image

Please inform, it is possible to take total image with partitions of a Linux (RHEL5) running Hard Disk?? and restore to other Hard Disk??.......Thanss

permission denied

Using Knoppix I just can't get dd to copy anything from sda1, the Ubunut system partition.
For example:
dd if=/dev/sda1 ¦ gzip -1 > /media/sda3/86g reports dd: opening '/dev/sda1/': Permission denied
dd if=/media/sda1 ¦ gzip –1 > /media/sda3/86g tells me that /media/sda1 is a directory then copies 0+0.

Check which user you are

It's probable that you need to "su" or "sudo" to root, like :

sudo -s

or

sudo /bin/bash

As normal users will not be able to read the file(s) /dev/sd[abcd][0-9] etc.

David.

new bigger disk

Hello David,

The disks (2) in my system are full (100GB). Can i simply use dd to copy those disks to the new disk?
My plan is
1. remove disk 2 an place new disk1 into its place
2. boot with e.g. knoppix, dd from old disk 1 to new disk 1 without gzip
3. do the similar with old disk 2
4. Now ? How to get use of the additional space? (500GB)?
resize partition? resize Filesystem?

ar at least the steps 1 to 3 reasonable?

regards

derobo

why use dd?

I don't see why you'd want to use dd - it would be quicker (and less complex) to use tar.

Namely :

Insert new disk, Boot off knoppix, Format & partition new disk, mount old file system, mount new file system and tar from one to the other.

You can pipe the output from one tar to the other so don't need to create an intermediate file.

The benefit of this is that you'll also effectively defragment the file system.

You could use it using dd, but after doing the initial copy, you'd need to :

a) Run fdisk or similar and fix the partition end point(s)
b) Resize the underlying file system

David

did it with tar but...

David,
1. Thanks a lot.
2. Who I am: yes, i heard of linux, but my fellow who knows linux did everything before he left the company some month ago. Till yesterday i sometimes looked at the changing lines of the top-command. Someone else told me to use dd.
3. the tar-job is finished. Great advise. Thanks (again) it was a quick copy. but now: the system does not boot from the new disk.
Yes i adjusted the jumpers of master/slave disk, and yes i called fdisk to toggle the boot-partition. By the way:
hda1 goes from 1 to 131 is a swap-partioiton Type=82,
hda2 from 132 to 30799 is a reiserfs with the tar-copied Suse-linux and other files, Type=83 and should be the boot-partition.

perhaps: where ist the data stored on the disk?

i creadted /mnt/To and /mnt/From in my Knoppix
the mount cmd: mount -t reiserfs /dev/hda2 /mnt/From
second mount: mount -t reiserfs /dev/hdb2 /mnt/To
the tar command was:
tar -c mnt/From/ | tar -C mnt/To -xv
is my data on a first level directory on the disk or in /mnt/from/...?
if th elatter i have to change the tar command but
tar -c * | tar -C mnt/To -xv
does not work.

What can i do, that my pc will boot from that disk/partition? and the data is where it should be?

regards

derobo52

aaaaah

Hi,

I didn't realise the disk you were hoping to copy need to be bootable.

You've (obviously) discovered that you're missing the boot sector - which lives outside of the file system - therefore 'tar' doesn't copy it, but 'dd' would.

As you've used tar, your best bet would be to re-install the bootloader on the file system - this is either done by 'lilo' or 'grub-install' depending on your distribution (From memory, you need to boot off knoppix, mount the new file system, run 'chroot /path/to/new/filesyste' and then run 'grub-install' but perhaps you just run 'grub-install /path/to/new/filesystem' - sorry, hazy memory.

'tar' wise, try http://php.ptagis.org/wiki/index.php/Tar-to-pipe

David

Can this be restored on a

Can this be restored on a working drive?

no

Assuming you mean working, as in 'mounted' or 'in-use' - then no, you couldn't restore to it

after backup can't restore Filesystem

Hi,

I only have to partition on my hard drive, swap and /. The / (root) partition contains all my file system including boot files. I used dd, dump and tar to copy and restore that partition which is /dev/sda1. I did the backup using rescue CD and while logging. But after restore I get error, root can’t be mount…. !
What could be the problem do I have to backup the whole drive /dev/sda?
I am using Fredora 10.

Thanks for your help

dd dump and tar??

I'm not sure why you'd want to use all three.

You either use dd, and take an image of the disk, or you use something like tar which just takes a copy of the files on the disk.

If you use tar, then you will probably need to repartition and reformat the disk beforehand - as well as restoring the boot loader.

David.

Post new comment

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
Et tu Roboto?