Clever! Oh, you'll need to add --force to those command lines. ddrescue needs that when you write to existing devices.
One thing I also usually do is install ddrescue-utilities, and use ddru-ntfsbitmap to create a mapfile of all blocks containing data. Then you pass that to ddrescue using -m (ddrescue -m file.map infile outfile logfile). This means that ddrescue then only copies blocks containing data. On Sat, 26 Oct 2019 at 19:06, Dr. Anonymous <[email protected]> wrote: > There is one more way to do exactly you want! Without copying any unneeded > sectors and without determining the exact sizes! > Assuming /dev/sdc to be the source and /dev/sdb to be our destination. > First, copy the MBR (the very first sector): > ddrescue /dev/sdc /dev/sdb -s1s > Then, either reboot the system or anyway make the kernel recognize the new > MBR of the destination drive. > Then copy the initial partitions to the destination: > ddrescue /dev/sdc1 /dev/sdb1 ~/1.log > ddrescue /dev/sdc2 /dev/sdb2 ~/2.log > That's all. > > ----- Original Message ----- > From: "Ketil Froyn" <[email protected]> > To: "Shahrukh Merchant" <[email protected]> > Cc: "dd-rescue" <[email protected]> > Sent: Saturday, October 26, 2019 10:30 AM > Subject: Re: How to clone to a smaller HDD without messing up partitions? > > > >I have a different suggestion. Set up your target device with some sort of > > deduplication and/or compression. For example btrfs or zfs or vdo. Then > you > > can clone to a file on the target, and hopefully you'll have space for > the > > whole thing. > > > > On Sat, Oct 26, 2019, 04:03 Shahrukh Merchant < > [email protected]> > > wrote: > > > >> I have a 500 GB HDD (source) that I want to clone to a 320 GB HDD > >> (destination). Both are MBR. Only about 60 GB of the source drive is > >> actually in use (in 2 partitions), the rest (400+ GB) is in unallocated > >> space. > >> > >> I will ask more specifically in two different ways: > >> > >> 1. I would like to tell ddrescue to clone the entire drive, i.e., > >> > >> ddrescue -f -n /dev/sda /dev/sdb > >> > >> BUT with options that effectively say "and don't worry if you run out of > >> space on the destination drive--just stop copying since the important > >> stuff is at the start anyway." Can I do that, and how? (And other than > >> relying on the Windows Disk Management visual to believe that the > >> unallocated space is all at the end, which it seems to be, is there some > >> other tool I can use to let me confirm that explicitly?) > >> > >> 2. If the answer to the above is "No" or "Not recommended," then I would > >> have to do the clone partition by partition. There are two partitions on > >> the source disk as follows: > >> > >> lsblk version > >> ------------- > >> sda 465.8G > >> -sda1 RECOVERY 9.8G ntfs > >> -sda1 OS 54.9G ntfs > >> > >> Windows 7 Disk Management version > >> --------------------------------- > >> Disk0 Basic/465.76 GB/Online > >> -------- > >> 9.77 GB > >> Healthy (Active, Recovery Partition) > >> -------- > >> OS (C:) > >> 54.93 GB (NTFS) > >> Healthy (Boot, Page File, Crash Dump, Primary Partition) > >> -------- > >> 401.07 GB > >> Unallocated > >> -------- > >> > >> So if I do the clone partition by partition, two things are not clear: > >> > >> (a) What is the sequence of commands I need to use (and how to I prepare > >> the destination drive in advance). Can I do, for example: > >> ddrescue -f -n /dev/sda1 /dev/sdb > >> ddrescue -f -n /dev/sda2 /dev/sdb > >> and have ddrescue figure out that I mean "put them in their > >> corresponding places on the destination drive based on how it was on the > >> source drive and fix the MFT so it does the right thing" (seems a lot to > >> ask for, but maybe it does!)? > >> > >> (b) How do I maintain the integrity of the destination drive w.r.t. the > >> MFT of that drive being properly configured (since it is not part of the > >> ddrescue copy, as I understand it, if I do a partition at a time), and > >> in terms of the destination drive booting fine in exactly the same way? > >> > >> Basically, the unallocated space at the end is the only part that I want > >> to be different, owing to the different in drive sizes. > >> > >> Thanks! > >> > >> Shahrukh > >> > >>
