As the title of this blog says I'm using gentoo. I just love this system. But compiling often has a drawback, it just spreads files around your filesystem all the time.
But there is no defragmenter yet under linux. So here is what I do to backup AND defrag my boxes.
First burn or even better, usb install the awesome SystemRescueCd.
Boot under systemrescueCD.
From there, mount back your main partition (here sda1) and do some cleanup prior to backup:
mount /dev/sda1 /mnt/gentoo rm -Rf /mnt/gentoo/tmp/* rm -Rf /mnt/gentoo/var/log/* # warning : if you don't care about your logs ! rm -Rf /mnt/gentoo/usr/portage/distfiles/* # you can always redownload them # etc ...
Important : umount the partition after cleanup
cd / umount /mnt/gentoo
Now mount an external HD or your backup volume (here sdb1) :
Note : don't do that on FAT !! It must be something that we can name "filesystem" like ext4, xfs etc .. With at least the partition size you want to backup as free space of course.
mount /dev/sdb1 /mnt/backup
Dump an image of your main partition on it:
pv /dev/sda1 > /mnt/backup/sda1.img
You should see on the right side how many coffees you can drink during the dump.
Remount your backup read-only and check out quickly if the backup was successfull :
mount -o loop,ro /mnt/backup/sda1.img /mnt/custom ll /mnt/custom
Now be extra careful, format your main partition (here sda1, the same as above), no typo are authorized here :
mkfs.ext4 /dev/sda1
Optional step for those who uses labels/UUID : restore them !
cat /mnt/custom/etc/fstab # to get whatever you use to mount your partition tune2fs /dev/sda1 -U 4c7556bf-5c6c-4f85-bc45-d7fa55c8ca1d # for example for UUID
mount your all nice and clean main partition and restore the files from your backup.
mount /dev/sda1 /mnt/gentoo rsync -av --progress /mnt/custom/ /mnt/gentoo/ #be careful the ending slashes ARE important
You'll notice how this is piece of cake for your main harddrive to cope with the incoming files and how painful it will be for your backup drive to be able to feed it from the files splashed all over the image (even from raid0 external disks on esata to a poor performing laptop drive !).
If your console slows down the process you can switch to another one and do df to see /dev/sda1 catching up the Use% of /mnt/backup/sda1.img.
Pack up, and enjoy the speed boost.
umount /mnt/gentoo umount /mnt/custom umount /mnt/backup reboot
Or switch to SSD :)
ReplyDelete@pdecat... oki, let's try on my modest Sony z gen3 ssd :)
ReplyDeleteMethodology :
Case 1 : drop caches, precache the tree, dump the data -> 173 MB/s
Case 2 : linear dump
-> 626 MB/s
Booya !
Note the zsh awesomeness also
⚫ sal projects # sync ; sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
3
⚫ sal projects # ll **/*(.) >/dev/null
⚫ sal projects # pv **/*(.) >/dev/null
788MB 0:00:04 [ 173MB/s] [=========================================================================================>] 100%
⚫ sal projects # pv /dev/mapper/isw_ddbeejgcgd_Volume0 >/dev/null
^C22GB 0:00:02 [ 626MB/s] [> ] 0% ETA 0:06:28