Need to clone 16GB partition on 128GB disk to 32GB disk
from InFerNo@lemmy.ml to linux@lemmy.ml on 28 Sep 2024 20:43
https://lemmy.ml/post/20813130

I’m not coming up with a lot of useful (clear) results when searching for a solution to this issue.

Is it OK to simply dd the 128GB disk to the 32GB disk using count to stop after the 16GB partition was cloned?

A bit more context: I had to clone a 16GB eMMC and only had a 128GB SD around. Now I purchased a 32GB eMMC and want to clone it again. The partition holds a root filesystem for an ARMv8 device. I don’t have the 16GB eMMC anymore, that would have been the easy way out.

#linux

threaded - newest

zelifcam@lemmy.world on 28 Sep 2024 20:46 next collapse

I’d use clonezilla

E: It’s not that it can’t be done other ways, it’s just clonezilla will work and has worked for nearly 2 decades. Also there’s no information provided above about the data. So clonezilla is nice if it’s a complicated scenario.

Plus, it’s a nice tool to throw in the toolbox once you know how to use it.

E. Why do you feel like you have to use something like dd for this particular task? Less than 16 GB of data? Ya probably could have copied it over manually by now.

InFerNo@lemmy.ml on 28 Sep 2024 20:54 collapse

It’s not an active partition/disk I want to clone. Clonezilla seems like something I need to boot into?

hushable@lemmy.world on 28 Sep 2024 22:33 next collapse

Yes, Clonezilla runs off a live USB. If it is large enough it can also store the partition you want to clone, making the whole process a lot simpler.

IsoKiero@sopuli.xyz on 28 Sep 2024 22:33 next collapse

You can run clonezilla on your shell session, just apt install conezilla (or whatever variant you’re using) and it can do the trick. Dd will almost surely work too, but that leaves a ton of responsibility to you instead of making any sanity checks on the way. That makes dd very powerful tool and it has saved my ass a multiple times, but if you already have a working partitioning schema clonezilla has a ton of options to make your life a lot simpler and a likely a bit faster than dd.

Taleya@aussie.zone on 29 Sep 2024 10:30 collapse

Use a clonezilla boot usb. I did exactly what you’re trying with clonezilla: 16gb partition on a 128gb ssd to a 64gb ssd. The clone disk is in a production machine rn and has been for two months.

30p87@feddit.org on 28 Sep 2024 20:50 next collapse

Could be - just try it ig. And even if not, just create a new partition on the 32 GB disk and then dd it over.

[deleted] on 28 Sep 2024 20:54 collapse

.

30p87@feddit.org on 28 Sep 2024 20:56 collapse

If it’s normal files, yeah. If the partition is complicated to replicate, or encrypted etc., then just dd’ing the partition would be easier

nickapos@nickapos.social.oncrete.gr on 28 Sep 2024 20:51 next collapse

@InFerNo@lemmy.ml you should do the partition not the whole disk. Then create a new partition in the 32gb disk or mount the dd file with a loopback device and transfer the files to the whole 32gb disk

InFerNo@lemmy.ml on 28 Sep 2024 20:55 collapse

It’s a root fs for an ARM device. I can’t simply copy the files over.

azron@lemmy.ml on 28 Sep 2024 21:23 collapse

Is the system Linux? If so, then yes you can. Rsync it on to the newly created device get the uiid and fix up the fstab and boot loader configs and you are back in business.

[deleted] on 28 Sep 2024 20:57 next collapse

.

PetteriPano@lemmy.world on 28 Sep 2024 21:39 next collapse

INFO: What filesystem does your source drive/partition have?

InFerNo@lemmy.ml on 28 Sep 2024 21:53 collapse

ext4

Kazumara@discuss.tchncs.de on 28 Sep 2024 21:49 next collapse

Is it OK to simply dd the 128GB disk to the 32GB disk using count to stop after the 16GB partition was cloned?

I think it would work, but it seems a little overcomplicated, you can just use the partition paths as if and of of dd directly, as long as the output partition is not smaller than the input partition. For example dd if=/dev/sdc1 of=/dev/sdd1 bs=4M status=progress

Your method would also copy the partition table I suppose, which might be something you want under specific circumstances, but then it would be a little harder to get the count right, just taking the size of partition 1 would be wrong, because there is some space before it (where the partition table lives) and dd would start at 0. You’d need to add up the start position and the size of partition 1 instead.

Personally I would prefer making a new partition table on the new eMCC, and create a target partition on it. Then you clone the content of the partition (i.e. the file system). This way the file system UUID will still be the same, and the fstab should still work because these days it usually refers to mounts by filesystem UUID in my experience.

If you make the target partition larger than the source partition, and you intend to use the full partition going forward you will additionally need to resize the filesystem to fit the new larger partition, for example with resize2fs.

ekky@sopuli.xyz on 28 Sep 2024 21:58 collapse

This is the way!

Way simpler than using any GUI tool or somehow recreating the partition and manually copying the files.

7U5K3N@lemmy.dbzer0.com on 28 Sep 2024 21:51 next collapse

Gnome-disk-utility or “disks” in Linux will clone a partition and then restore it to another disk.

friend_of_satan@lemmy.world on 28 Sep 2024 22:58 next collapse

If I understand the problem correctly it has a pretty simple solution that I have done before. Make a new partition on the destination and dd if=/dev/diskAsB of=/dev/diskXsY where A is the source disk and B is the source partition and X is the destination disk and Y is the destination partition. You may have to run fsck on the destination afterwards and maybe a gpt repair tool.

Honestly though, since it’s an ext filesystem, if it were me I’d just mount the source and dest and rsync.

Rin@lemm.ee on 29 Sep 2024 00:12 next collapse

Do you only have the root parition or do you have everything else too (like /boot)?

  1. If you only have root, reinstall the OS then just overwrite the root partition with your old one.
  2. Run fsck on the root partition and/or use gparted to expand the ext4 partition. You might have to fuck around with the disk UUIDs to get it to boot again. You’ll most likely have to at the very least change your /etc/fstab file to update the UUID of the boot partition.

if you have everything, you can just dd the sd disk to the emmc, provided that you didn’t mess around with the partitions after.

  1. Copy with dd to the emmc with or without the count, it doesn’t matter that much if time isn’t a priority. (something like dd if=/dev/sdcard of=/dev/newemmc). If it fails and says the device is out of memory after 32GB, that’s fine. Any other error is not fine.
  2. Use gparted to expand the root partition.
  3. fsck the partition.
seaQueue@lemmy.world on 29 Sep 2024 02:38 next collapse

Is the 16gb partition the first partition? If so I’d just dd the 128gb drive at the 32gb drive then fix the partition table and remove the others.

If it’s not the first partition use gparted to copy it to the new drive.

BCsven@lemmy.ca on 29 Sep 2024 02:44 next collapse

Dd with count does work. scroll down to: Use dd, with the count option. response

serverfault.com/…/dd-on-entire-disk-but-do-not-wa…

g_damian@lemmy.world on 29 Sep 2024 07:28 collapse

I recommend FSArchiver, it can handle different size partitions