Creating iso images of Linux dd. Creating a bootable USB flash drive for installing Windows using the Rufus program. Migrating the system to another hard drive
Be careful because if you misspell the name of the flash drive in the dd command, you can damage the host hard drive.
We will display the partition designation of all devices
and find a flash drive among them:
Sudo fdisk -u -l /dev/sd?
Also, to define partitions on all devices, you can use the command:
Sudo cat /proc/partitions
dd command syntax
dd if=/AAAA of=/BBBB bs=CCCC count=DDDD conv=noerror- if: (input file) indicates the source, i.e. to where we are copying from. Specifies a file, which can be either a regular file or a device file.
- of: (output file) points to the destination file. The same thing, we can write both to a regular file and directly to the device.
- bs: The number of bytes that will be written at a time. That is, the size of a piece of data that will be read and written at a time. It is recommended to set bs= to the size of the hard drive cache, i.e. 8M 16M 32M
- count: how many pieces bs will be copied.
- conv: allows you to connect filters that apply to the data stream. Filter "no error" just disables stopping the program when it encounters a reading error.
Examples
Complete disk erase
So that nothing can be restored on the media, you can fill it with zeros, this command will always end with the error “the media has run out of space”
Dd if=/dev/zero of=/dev/sdX
Creating a disk image
dd if=/dev/cdrom of=image.iso conv=noerroryou can also log into the system
Mount -o loop /PathToImageFile/image.iso /mnt/FolderMount
If something doesn’t work out, the process is divided into 2 levels:
Losetup -e /dev/loop0 /PathToImageFile/image.iso mount /dev/loop0 /mnt/FolderMount
MBR Operations
MBR is located in the first 512 bytes hard drive, and consists of a partition table, a bootloader and a couple of additional ones. byte. Sometimes you have to back it up, restore it, etc. Backup is done like this:
Dd if=/dev/sda of=mbr.img bs=512 count=1
You can restore it more easily:
Dd if=mbr.img of=/dev/sda
Copying with archiving
(using gzip) data from a flash drive to a hard drive.
Dd if=/dev/sdX conv=sync,noerror bs=8M | gzip -c >/PathToSave/sdX.img.gz
and back
Gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync,noerror bs=8M
Copying over the network
dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c blowfish UserName@HostName "dd of=sdX.img.gz bs=8M"and back
Dd if=sdX.img.gz | ssh -c blowfish UserName@HostName "dd of=/dev/sdX bs=8M"
To create an image of a hard drive, it is not necessary to use utilities like Acronis True Image or Norton Ghost; a simple dd utility, which is included in most Unix-like computers, is sufficient. operating systems(Linux, FreeBSD, Solaris, etc.) The article describes a simple way to create backup copy hard disk image using dd. The first step is to prepare for backup. In this article we introduce the following notation:
- /dev/sda - the disk whose image needs to be created;
- /dev/sdb - the disk on which the image will be written.
If necessary, you need to substitute your own values.
Preparing to create a hard drive image
The first step is to boot from any available Live-CD disk that has the dd utility and enter command line as a superuser. Create a mount point to carry out Reserve copy.
mkdir /mnt/backup
We mount HDD to which you want to save the image.
Creating a hard drive image
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
- if=/dev/sda - copy all hard disk sda;
- of=/mnt/backup/sda.img - copy to /mnt/backup/sda.img;
- bs=8M - set the size of the hard drive cache to speed up the copying procedure (otherwise the data will be reset in small portions of 512 bytes);
- conv=sync,noerror - we indicate to dd the need for bit-for-bit copying and ignoring read errors.
To reduce the size of a hard disk image, you can compress it with any archiver.
dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img
Recovering a hard drive image
To restore a hard disk image, you must follow the reverse procedure to the procedure for creating this image.
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
When using compression, you must unzip the image in parallel.
gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M
Migrating the system to another hard drive
To migrate the entire system to another hard drive, you must set the location of the new drive as the destination.
dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror
Then, if necessary, install the boot from this tough disk. Provided that the new hard drive is larger than the old one, there will be an unallocated area on it. It should be marked up and formatted according to existing requirements.
Copy statistics in dd
The main disadvantage of dd is the lack of a visual representation of the statistics of the copying procedure. However, this disadvantage can be easily circumvented. All you need to do is connect to another terminal.
Determine the process number under which dd is running.
Periodically send the command kill -USR1 process_number_dd to this process.
watch -n 5 kill -USR1 process_number_dd
- watch -n 5 - execute the command every 5 seconds;
- kill -USR1 process_number_dd - show copy statistics.
The dd command does just one simple thing: it copies data from a file to another file. But since in Linux many entities are represented precisely as files, dd has many uses. Let's look at the most useful of them.
What does dd mean?
dd is short for data duplicator. But because in the wrong hands the dd command can lead to complete loss of all data, the program is often jokingly called disk destroyer. Let's try to figure out how not only not to destroy your data, but even to benefit from using dd.
General use case for dd
The command syntax is as follows:
Dd if=$input_data of=$output_data
The command will copy the data from the $input_data file to the $output_data file, taking into account the options. It would seem that everything is simple. Now let’s look at what opportunities this simple copying opens up.
Examples of using dd
1. Destruction of all data on the disk without the possibility of recovery:
Dd if=/dev/urandom of=/dev/sda bs=4k
2. Complete byte-by-byte copying of one disk to another (cloning):
Dd if=/dev/sda of=/dev/sdb bs=4096
3. Copying one partition to another:
Dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror
4. Display a list of available file systems:
Dd if=/proc/filesystems | hexdump -C | less
5. Copying data on devices with different block sizes (1 KB at the source and 2 KB at the destination):
Dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1
6. Create a bootable USB flash drive:
Dd if=/home/$user/bootimage.img of=/dev/sdc
7. Check the disk for bad sectors:
Dd if=/dev/sda of=/dev/null bs=1m
8. Create a backup Disk MBR and saving to floppy disk
Dd if=/dev/sda of=/dev/fd0 bs=512 count=1
9. Removing an ISO image from a CD:
Dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync
10. Checking the file for viruses (of course, ClamAV is required):
Dd if=/home/$user/suspicious.doc | clamscan -
11. Saving the contents of RAM to a file:
Dd if=/dev/mem of=/home/$user/mem.bin bs=1024
12. Converting an image from Nero NRG format to a standard ISO image:
Dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k
13. View MBR contents:
Dd if=/dev/sda count=1 | hexdump -C
Where are the promised million applications?
An observant reader will probably notice that the article does not list a million useful applications, but several fewer. But the power of the dd program lies in the fact that the user can find other applications on his own, combining different files as if, of parameters and selecting the necessary options. Just remember that working with dd requires extra attention. If you do not know exactly what actions will be performed, then it is better to refrain from experiments. Try not to give dd superuser rights when you can do without these rights.
Your own examples of using this wonderful program are welcome in the comments.
dd is a simple utility that is included in most Unix-like operating systems - Linux, FreeBSD, Solaris, etc.
Its purpose is to read data from one device or file and write to another.
dd can be effectively used to create an image of a hard drive, without using commercial utilities like Acronis True Image or Norton Ghost.
Let's assume we have two disks:
- /dev/sda - the disk whose image needs to be created;
- /dev/sdb - the disk on which the image will be written.
If necessary, you need to substitute your own values.
The first step is to boot from any available Live-CD disk that has the dd utility and enter the command line as a superuser. Create a mount point for backup.
mkdir /mnt/backup
We mount the hard drive on which you want to save the image.
Creating a hard drive image
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
- if=/dev/sda - copy the entire hard drive sda;
- of=/mnt/backup/sda.img - copy to /mnt/backup/sda.img;
- bs=8M — set the size of the hard drive cache to speed up the copying procedure (otherwise the data will be reset in small portions of 512 bytes);
- conv=sync,noerror - we indicate to dd the need for bit-for-bit copying and ignoring read errors.
To reduce the size of a hard disk image, you can compress it with any archiver.
dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img
Recovering a hard drive image
To restore a hard disk image, you must follow the reverse procedure to the procedure for creating this image.
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
When using compression, you must unzip the image in parallel.
gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M
Migrating the system to another hard drive
To migrate the entire system to another hard drive, you must set the location of the new drive as the destination.
dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror
Then, if necessary, install booting from this hard drive. Provided that the new hard drive is larger than the old one, there will be an unallocated area on it. It should be marked up and formatted according to existing requirements.
Copy statistics in dd
The main disadvantage of dd is the lack of a visual representation of the statistics of the copying procedure. However, this disadvantage can be easily circumvented. All you need to do is connect to another terminal.
Determine the process number under which dd is running.
Periodically send the command kill -USR1 process_number_dd to this process.
watch -n 5 kill -USR1 process_number_dd
- watch -n 5 - execute the command every 5 seconds;
- kill -USR1 process_number_dd — show copy statistics.
Cons of using dd to create disk images
Everything has pros and cons. dd is a free and very flexible tool, but it can only make a full copy of a volume. Special programs They can only copy data that is stored on disk.
Thus, the volume of a disk image created using dd will be equal to the volume of the disk itself - regardless of how much data is on the disk.
As is known, “computer users are divided into those who make backups and those who will do them”. In this article we will look at various ways backup (backup) of the entire system and, accordingly, restoration from a backup copy.
It’s worth noting right away that all operations should not be performed “live”, i.e. not on a running system, but from a liveCD or installed on a neighboring partition/flash drive/usb-hdd of the system. In cases where downtime of a few minutes is critical for the system, it is possible to copy the system from under itself, but in this case some additional conditions must be taken into account, which are not yet considered in this article
Further in the text, for actions performed as a superuser, the sudo command will be used, which is the standard for Ubuntu. On other systems it is possible to gain superuser privileges via su , some liveCD systems run in superuser mode by default
tar
One of the most popular ways to create a simple backup is to archive data using tar. The advantages of this method are the possibility of incremental backup (adding files to an existing archive, deleting or changing them), the ability to extract from the archive separate files, as well as the presence of tar in almost any Linux system.
Creating an archive
First, create mount points for the root partition and for the partition on which you are going to create a backup, for example like this
Mount both partitions. For greater reliability, you can mount the root partition in read-only mode to eliminate the possibility of accidental data changes
Sudo mount /dev/sdXY /mnt/root -o ro sudo mount /dev/sdXY /mnt/backup
(Instead of "sdXY" use your values for the partitions you want. You can determine them using sudo fdisk -l or sudo blkid)
If you use separate partitions for /boot, /usr, /home, etc. and want to include their contents in the backup, mount them in the appropriate folders
Sudo mount /dev/sdXY /mnt/root/usr -o ro sudo mount /dev/sdXY /mnt/root/home -o ro
If necessary, create a folder on the backup partition in which you want to place the archive, for example
Sudo mkdir -p /mnt/backup/ubuntu/root
Now you can start creating the archive. To create a gzip-compressed archive, run
Sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .
(The -p switch enables saving owners and permissions for files)
For bzip2 compression use
Sudo tar -cvjpf /mnt/backup/ubuntu-sda1.tar.bz2 /mnt/root
For lzma compression
Sudo tar --lzma -cvpf /mnt/backup/ubuntu-sda1.tar.lzma /mnt/root
Similarly for lzo compression - switch --lzop instead of --lzma
Different compression algorithms produce different archive sizes and also differ in performance
Once the process is complete, unmount all mounted partitions
Sudo umount /mnt/root(/boot,/var,/home,) /mnt/backup
Restoring from an archive
Create mount points for the root partition and the partition where your archive is stored
Sudo mkdir /mnt/(root,backup)
Mount the partition with the backup archive
Sudo mount /dev/sdXY /mnt/backup -o ro
Format the root partition to the same (or another) file system. If you use separate partitions for /usr, /boot, etc. and archived them, format them too
(if you are restoring the system to a new hard drive, partition it using fdisk/gparted and format the partitions)
Some file systems support setting the UUID when formatting. This makes it possible to create a file system with the same UUID as the old one, which will avoid the need to edit fstab.
For ext2/3/4, the UUID is set using the -U switch, and you can simplify the task even further with a command like
Sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o value -s UUID /dev/sda1)" /dev/sda1
If you used archiving when creating the image file, first unpack it using the same archiver, for example
Bzip2 -dv /media/backup/sda5.dd.bz
Now you can mount the image
Sudo mount /media/backup/sda5.dd -o loop /mnt
(With the loop option, the mount program will automatically “pick up” the image file to a free loop device, and then mount the file system)
Now you can work with the contents of the image as with a regular file system, all your changes will be written to the image. When finished, mount the image as a regular file system
Sudo umount /mnt
dd - copy the entire hard drive
In this case, we will use dd again, only this time we will save the entire contents of the hard drive - with the partition table, the partitions themselves and all the data. Advantage this method the fact that you can save all systems installed on this hard drive in one step without having to backup each partition separately. In addition, with such a backup, all data related to the bootloader will be saved - thus, after restoring from the backup, you will not need additional manipulations, you can immediately boot from this hard drive.
Creating an image
In general, the procedure is similar to that described above for backing up individual partitions. In this case, the advice about clearing free space with “zeros” also applies - if you have free time, do this with all partitions.
Before starting the operation, make sure that none of the partitions on this hard drive are mounted. This can be done by running the mount command without parameters.
Select the partition on which you are going to place the clip file. Of course, this must be a partition from another hard drive. Also make sure that there is enough free space on this partition (for example, using the df utility) - the amount of free space should correspond to the volume of the copied hard drive (when compressed, the image will be smaller, but this depends on the type of data stored).
Mount a backup partition
Sudo mount /dev/sdXY /mnt
Now you can start
Sudo dd if=/dev/sdX bs=1M conv=noerror,sync | lzma -cv > /mnt/hdd.dd.lzma
(here “sdX” is a disk, not a partition! for copying without compression, the command is similar to the one above for backing up a partition)
Depending on the size of the hard drive and the performance of the computer, the procedure may take a long time (up to several hours). When finished, mount the backup partition
Sudo umount /mnt
Recovery from image
Attention! This method involves a complete rollback to the state at the time the archive was created with the replacement of all data!
Before starting work, make sure the power supply is reliable. Connect network adapter, if you have a laptop, and if possible use a UPS or stabilizer. At high intensity recording increases the risk of disk damage in the event of a power failure
Make sure that no partition of the disk being restored is in use. Mount a backup partition
Sudo mount /dev/sdXY /mnt
You can start the procedure
Bzip2 -dc /mnt/hdd.dd.bz | sudo dd of=/dev/sdX bs=1M conv=sync,noerror
Or for an uncompressed image
Sudo dd if=/mnt/hdd.dd.bz of=/dev/sdX bs=1M conv=sync,noerror
When finished, mount the backup partition
Sudo umount /mnt
If you want to extract the image to another hard drive, it must be at least as large as the original one. If new disk larger volume, you can expand the partitions or create a new partition for free space using parted/fdisk/gparted/etc
Don't use both hard drives(“duplicate” and “original”) at the same time! When both drives are connected, the system will have two partitions for each UUID, which will lead to operational problems or inability to boot
Mounting the image
By analogy with the partition image, you can work with the hard disk image as with a regular hard drive. In this case, the procedure becomes somewhat more complicated, since the image contains several sections.
If the image is compressed, unpack it. Now “pick up” the image to the loop device
Sudo losetup -fv /media/backup/sda.dd
(With the -f switch, the program will automatically find a free loop device, otherwise you must explicitly specify it)
losetup will display the name of the device used - if you are not working with other image files (iso, encrypted containers, etc.), it will most likely be /dev/loop0
Now we have a device that is a hard drive for the system, but we do not have access to its partitions. The kpartx program will help you get to the partitions (you may need to install the package of the same name)
Sudo kpartx -av /dev/loop0
(Key -a - add partitions for a given device; -v - informative output)
The program will display the names of the created devices for the disk partitions: loop0p1 for the first partition, loop0p2 for the second, similar to the partitions of a regular disk. The device files will be located in the /dev/mapper folder
Now you can work with partitions and FS on them. For example, mount the former sda5 and write files to it
Sudo mount /dev/mapper/loop0p5 /mnt
When finished, unmount the partition
Sudo umount /mnt
Remove partition devices using kpartx
Sudo kpartx -dv /dev/loop0
and release the loop device
Sudo losetup -v -d /dev/loop0
All! The changes are recorded, and your image becomes a regular file again
cp
Here we will look at backup using the cp utility, i.e. using simple copying. Actually, this is not the most optimal method, and it is more suitable for copying the system to another hard drive / partition / computer, rather than for creating a backup copy.
On the other hand, this method has a number of advantages:
Universality - you will find cp in any Linux system
Low resource requirements (due to lack of compression and simplicity of the mechanism)
Ease of further work with the backup (adding/changing/deleting files, extracting the necessary data, etc.)
Making a copy
Create mount points for the root and backup partitions
Sudo mkdir /mnt/(root,backup)
Mount both partitions
Sudo mount /dev/sdXY -o ro /mnt/root sudo mount /dev/sdXY /mnt/backup
Mount partitions for /usr, /boot, etc., if any
Sudo mount /dev/sdXY -o ro /mnt/root/home
Create a folder for your backup on the backup partition
Sudo mkdir /mnt/backup/ubuntu
We can start
Sudo cp -av /mnt/root/* /mnt/backup/ubuntu
(the -a switch enables copying links “as is”, saving all possible file attributes and recursive mode. -v switch - displaying information about what is happening)
Once the process is complete, unmount all partitions
In the future, you can archive your data in any convenient way.
Restoring from a copy
Attention! This method involves a complete rollback to the state at the time the archive was created, replacing all data!
Create mount points for partitions
Sudo mkdir /mnt/(root,backup)
Mount a backup partition
Sudo mount /dev/sdXY -o ro /mnt/backup
Format the root partition and /usr, /boot, etc. partitions, if any. (For formatting partitions while preserving the UUID, see the section about)
Sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXY
Mount the newly created file systems
The copying process is similar, only in the opposite direction.
Sudo cp /mnt/backup/ubuntu/* -av /mnt/root
Once the copy is complete, edit fstab to correct the partition UUIDs
Unmount the partitions
Sudo umount /mnt/backup /mnt/root/(usr,home,)
squashfs
sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXYMount the newly created file systems
Sudo mount /dev/sdXY /mnt/root sudo mount /dev/sdXY /mnt/root/usr sudo mount /dev/sdXY /mnt/root/var
We're ready to start! To unpack the image, use the unsquashfs utility
Sudo unsquashfs -d /mnt/root -f /mnt/backup/ubuntu-root.sqfs
(The -d switch specifies the path for unpacking, with the -f switch the program will use existing folders instead of trying to create new ones)
Just like when creating an image, you will see a progress bar and lots of other useful information.
When finished, edit fstab, replacing the partitions' UUIDs with new ones (if you formatted the partitions with the same UUIDs, skip this step)
Sudo nano /mnt/root/etc/fstab
Save the file and unmount all partitions
Sudo umount /mnt/backup /mnt/root(/usr,/var,)
Mounting the image
squashfs is mounted like any other image - via a loop device. Kernel support for squashfs is included in many distributions, including Ubuntu, so you just need to use the mount command with the loop option
Sudo mount /media/backup/ubuntu-root.sqfs -o ro,loop /mnt
(The ro option is not required, since writing nothing there will not work anyway)
Now you can copy any necessary files. Adding something this way will not work; to do this you will need to use mksquashfs again
When finished, mount the image as a regular file system
Sudo umount /mnt
rsync
Like cp, rsync works with files, not with block devices. The thing about rsync is that it doesn't copy files that are already at the destination. By default, it checks the size and modification time of files, but you can also check the hash (usually this is done when increased security is needed).
Easy to use
The rsync syntax is similar to cp:
Rsync -a /mnt/root /mnt/backup
The -a parameter is often sufficient; it provides what is most needed: recursive copying of directories, saving information about the owner and group, etc. To display detailed information The -v switch is used for copying, be careful with it, you may miss an error message in the data stream. The -x switch ensures that rsync does not go beyond the specified filesystem.
The rsync documentation describes a lot of options. For example, there are those that allow you to copy over SSH, or delete a file from the destination if it was deleted in the source directory.
Smart copying reduces system downtime. We run rsync directly on a running system, the data in which is constantly changing, rsync copies the data, say, within a few hours. Then we switch the system to read-only, run rsync again, now it copies only those files that have changed over these few hours. In a few minutes we have a complete copy of the original file system. Downtime was reduced by an order of magnitude compared to offline copying. And in some cases, one online copy will be enough without converting the system to read-only.
Saving previous copies
Strictly speaking, rsync is not a backup tool - it is a synchronization tool. This is important when creating regular copies, because if any important file was deleted in the source working directory - rsync will delete it in the backup copy as well. To improve data security, it is advisable to save old backup copies. However, simply storing multiple copies will require a lot of hard drive space. If copies have many identical files, then this leads to unnecessary redundancy. This problem can be solved by using hard links.
The point is that in modern file systems(including Ext4), addressing a file is done in two stages: the file name indicates a unique file number (index descriptor or i-node), and the data itself is associated with this number. Any file name is, in fact, a hard link to this number. Consequently, a file (data set) can have several names and be in different directories, and this eliminates redundancy in case of need to duplicate files (after all, a hard link takes up little memory). The data itself is not deleted until the last hard link is requested to be deleted.
A significant limitation is that hard links are only possible within the same file system.
Synchronizing directory contents for the current backup with the source directory:
Rsync \ --archive \ --delete --delete-excluded \ # deleting files that do not exist in the source and excluded files from the backup--progress\ # display information about the progress of the transfer"/home/user/Files/" \ # directory source"/backup/latest/" \ # directory for current backup--exclude = "/Public/" # exclude unnecessary directories
In the “/backup/latest/” directory, a copy of all necessary files and directories from the source will be created and everything unnecessary will be removed.
Creating another current backup without redundancy:
cp\--archive\ # save all Additional information about files--link\ # use hard links for files - eliminate redundancy"/backup/latest/" \ # source is the current backup obtained above "/backup/$(date +%Y-%m-%d_%H-%M-%S) /" # destination - directory with date in name for convenience (see man date)The next time you create a backup, rsync will delete files in the “ /backup/latest/ ” directory that were deleted/excluded/changed in the source directory (changed files are first deleted and then written a new version). However, only the file names (the same hard links) will be deleted; the files themselves (data) will be saved, since hard links were created to them in a neighboring directory with the “cp” command.
Other tools
There are many applications for creating backups in Linux. You can search for "backup" in the Ubuntu App Center to find those available in Ubuntu programs for working with backups.
For a corporate environment and simply for fairly large-scale and critical backup tasks, we can recommend understanding one of the most popular and powerful backup systems for Linux, called Bacula
By the way, you can also find Russian-language manuals on the Internet.
Parted Magic
Parted Magic is another great one, but paid a distribution kit containing a whole collection of tools for backing up and restoring information, working with disks and partitions, as well as recovering lost data. It supports many file systems, LVM2 and RAID (both hardware and software) and contains tools such as fsarchiver, GParted, the aforementioned Clonezilla, and everything that is required for the methods described in this article. In addition, the distribution includes a web browser and some other additional software. The distribution is translated into several languages, including Russian, and has a full-fledged graphical interface.
LParted
LParted is a full-featured LiveCD designed primarily for working with partitions hard drives(HDD), permanent deletion or recovery of data and equipment testing. LiveCD based on Lubuntu Linux. LParted is a functional analogue of Parted Magic.
I would like to add here about SystemRescueCD and others
A little more about saving data
For important data, you can make a mirror partition on two disks. To do this, it is not at all necessary to have a RAID controller and disks of the same size - you can, for example, assemble a mirror from an 80 GB old drive and an 80 GB partition on a new one. Mirroring can be implemented using LVM or software RAID. However, this method is useless if, for example, a voltage of ~220V hits the +5V bus or a meteorite falls on system unit computer.
IT geeks who have their own server at home can expand the idea of mirroring and use DRBD. The same RAID-1, but hard disks are situated in different computers, which increases reliability.
A modern, convenient solution is to back up data to the cloud, for example, using Ubuntu One, Dropbox, http://www.adrive.com/ and others.
Neither mirroring nor replication on Ubuntu One will save you from accidentally pressing Delete, so in any case, make “classic” backups. And one day, all your hard work and efforts will be rewarded.