Les étapes:
- préparer la nouvelle partoche (parted, …)
 2 solutions:
- formater la partition (mkfs.ext4)
- monter la partition (mount)
- copier les données (avec cp -a et pas -r, ou mieux avec rsync --numeric-ids --devices --specials -A -X -H -W -a)
- sync && umount
 Si les 2 partitions sont strictement identique, tu peux copier directement:
- dd if=/dev/partitiondedepart of=/dev/partitiondestination bs=1M
Exemple de script que j’utilise pour cloner le plus rapidement des disques, en faisant du hotplog sata
Bon courage,
#!/bin/bash
backupfile=""
while [ 1 ]; do
    echo -n "OLD IP Address: "
    read oldip
    backup="backup_${oldip}.tgz"
    backupfile="/tmp/${backup}"
    wget -q http://xxx/~ed/xxx/${backup} -O${backupfile}
    if [ "$?" != "0" ]; then
        echo "No backup found. Please retry"
        echo ""
    else
        break
    fi
done
[ -f "${backupfile}" ] || exit "No backup file."
echo "Rescaning SCSI"
for host in /sys/class/scsi_host/*; do
    echo "- - -" >${host}/scan
done
echo "Setting up kernel"
sysctl -q -w vm.dirty_ratio=50
sysctl -q -w vm.dirty_writeback_centisecs=50000
sysctl -q -w vm.dirty_background_ratio=50
sysctl -q -w vm.swappiness=1
dpkg -l 2>&1|grep -q pwgen || apt-get install -f pwgen
kpartx -d /dev/sdb
echo "Zeroing start of disk"
dd if=/dev/zero of=/dev/sdb bs=32M count=1
echo "Copy Partition table..."
# This table should have proper alignment.
(cat <<EOF
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start=     2048, size= 22528000, Id=83
/dev/sdb2 : start= 22530048, size=954243072, Id= 5
/dev/sdb3 : start=        0, size=        0, Id= 0
/dev/sdb4 : start=        0, size=        0, Id= 0
/dev/sdb5 : start= 22532096, size=  8806400, Id=82
/dev/sdb6 : start= 31340544, size= 55296000, Id=83
/dev/sdb7 : start= 86638592, size=  8806400, Id=83
/dev/sdb8 : start= 95447040, size= 45056000, Id=83
/dev/sdb9 : start=140505088, size=512000000, Id=83
EOF
) | sfdisk /dev/sdb
echo "Making swap..."
mkswap /dev/sdb5
MNTOPTIONS="rw,noatime,nodiratime,barrier=0,data=writeback"
for part in 1 6 7 8 9; do
    echo "Zeroing partition"
    dd if=/dev/zero of=/dev/sdb${part} bs=1M count=1
    echo "Copying partitions /dev/sda${part} -> /dev/sdb${part}"
    mkdir -p /mnt/sda${part}
    mkdir -p /mnt/sdb${part}
    # May use -E lazy_itable_init
    mkfs.ext4 -q /dev/sdb${part} && \
        tune2fs -c0 -i0 /dev/sdb${part} && \
        mount -o ro,noatime /dev/sda${part} /mnt/sda${part} && \
        mount -o ${MNTOPTIONS} /dev/sdb${part} /mnt/sdb${part} && \
        rsync --numeric-ids --devices --specials -A -X -H -W -a /mnt/sda${part}/ /mnt/sdb${part}/
    umount /dev/sda${part}
    umount /dev/sdb${part}
done
# Remount proper system
target=/mnt/target
[ -d $target ] || mkdir $target
mount -t ext4 -o ${MNTOPTIONS} /dev/sdb1 $target
mount -t ext4 -o ${MNTOPTIONS} /dev/sdb7 ${target}/tmp
mount -t ext4 -o ${MNTOPTIONS} /dev/sdb9 ${target}/home
mount -t ext4 -o ${MNTOPTIONS} /dev/sdb8 ${target}/usr
mount -t ext4 -o ${MNTOPTIONS} /dev/sdb6 ${target}/var
mount --bind /dev $target/dev
mount --bind /proc $target/proc
echo "Restore backup"
bak=$target/var/oldbackup
(mkdir -p $bak && cd $bak && tar xpzf ${backupfile})
cp $bak/cups/printers.conf $target/etc/cups
cp $bak/cups/ppd/* $target/etc/cups/ppd/
for f in hosts hostname resolv.conf; do
    cp $bak/etc/$f $target/etc/
done
cp $bak/etc/interfaces $target/etc/network/
echo "Reg��n��ration clefs SSH"
echo -e "#!/bin/sh\nexit 101" >$target/usr/sbin/policy-rc.d
chmod +x $target/usr/sbin/policy-rc.d
rm $target/etc/ssh/ssh_host*
chroot $target dpkg-reconfigure openssh-server
# policy-rc.d seems not enough with dpkg-reconfigure.. :/
chroot $target /etc/init.d/ssh stop
# STILL not enought!!!! :(
pkill -9 sshd
echo "Install GRUB"
chroot $target update-grub
chroot $target grub-install /dev/sdb
rm $target/usr/sbin/policy-rc.d
ROOTPW=$(pwgen -B -1 8)
echo "Root password: $ROOTPW"
chroot $target echo "root:$ROOTPW" | chpasswd -m
echo $ROOTPW > $target/root/passwd
chmod 600 $target/root/passwd
[ -d $target/var/log/install ] || mkdir $target/var/log/install
touch $target/var/log/install/installed
echo ${oldip}:$ROOTPW >> /tmp/passwords
echo "SYNC"
sync
umount $target/dev
umount $target/proc
for part in 6 7 8 9 1; do
    umount /dev/sdb${part}
done
kpartx -d /dev/sdb
echo "Disable / powerdown drive..."
echo "1" > /sys/block/sdb/device/delete
echo "Done ${oldip}"