Moving Partition to SSD

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  274MB   273MB   fat32        EFI System Partition          boot, esp
 2      274MB   290MB   16.8MB               Microsoft reserved partition  msftres
 3      290MB   675GB   674GB   ntfs         Basic data partition          msftdata
 5      675GB   676GB   1074MB  ext4
 6      676GB   1000GB  324GB   btrfs
 4      1000GB  1000GB  548MB   ntfs         Basic data partition          hidden, diag

here is my current partiiton on HDD, Windows partition is around 600GB and Fedora Partition is around 300GB.

I am moving to SSD as i use windows sometime for gaming and its super slow, there is constant issue of 100% disk usage… i cant take it anymore so i knew i can clone windows and it will work but what is the workaround for moving fedora…

First list them

# fdisk -l /dev/sdb1/ /dev/sdc1

Now clone sdb1 to sdc1 it may change as per your device

# dd if=/dev/sdb1  of=/dev/sdc1
1 Like

You can use other tools/techniques to achieve this without resorting to dd, which is a very low level tool that will do verbatum copies of whatever file/directory/partition/disk. Since your Fedora partition is currently btrfs, you could do a writable snapshot of it onto your new ssd. If you want to take a single multi-partitioned disk (which is what I think you have) then just usimg dd as @frankjunior notes above to verbatum copy it to another disk is going to be the less painful approach of the many you have to choose from for this activity. DD works for Windows too, I’ve imaged an old Windows 7 Pro system recently for someone who had to have that particular system, not an updated version, but on newer hardware.
Also, Gnome disks will do disk imaging if you wish to have a GUI approach.


Yes, its a single multi partitioned disk… the problem with taking a single copy using dd that is that windows partition have around 200GB of videos and i dont want to copy them into SSD.

Second thing is that what will i do with 300GB partition in Fedora than? it would be cool to have to two partition like root will be in SSD and Home can take that 300Gb of hdd space… i can use that development purposes…

Note: I can deal with data loss in fedora partition as it just have dev tool and code which can be easily pull back from github… and the size of SSD is 500GB

Well, if the data is not crucial for the Fedora install currently, then obviously re-installing Fedora is what you probably want to do.
The HDD will keep Windows on it I presume? If that is going to be the plan then you could just do a Fedora Linux install on the SSD after deleting the current Fedora Linux Install on the HDD. That should pick up the Windows when the bootloader is written.
You would need to use either the installer and Gparted or Gnome Disks, or the installers advanced Blivet GUI, to delete your current Fedora Linux partition(s) on the HDD first. Then you would begin the install with picking both drives, but using the advanced disk partitioning option you can set the desired partition layout and mount points.
At install start (where you select storage) you would go into this and select the advanced radio button and both disks (they should be visible) and select done. You want to leave the boot-efi partition on the HDD as is, delete the Fedora Linux partition on the HDD, then create the boot (ext4 at least 700Mb) and I would create a btrfs partition with three subvolumes one mounted at / one mounted at /var and one more mounted at /home Then you can use the snapshot feature of BTRFS. Select done and it will popup a window with the deletions in red and the additions in green showing the partitioning layout actions that will be taken. If it was not a valid layout, you will get an error message and the opportunity to redo it. A word of caution on this route it can be a bit daunting, and if there is even a small amount of critical data on your system currently, please do back it up before beginning. If you look around Fedora Magazine articles there are some articles on doing similar things with BTRFS and Fedora.

No, Windows is the reason i ordered the SSD in first place, Whenever i install game or do any kind of work over windows, its super slow because it keep hittting the disk usage to 100%. i tried multiple things to solve but nothing worked switching to ssd will at least make it usable.

Fedora does take a bit longer after switching to NVIDIA Proprietary driver but its only on startup once i logged in it works pretty smooth.

So here is what i have thought to do…

i will create two partition of my 500GB ssd 250GB each,

Delete the fedora partition, and Login to windows then clone the windows to SSD, after that i will insert and fedora bootable USB and start the installtion…

for boot and /boot/efi, there are already partition /boot/efi is of size 300MB and /boot is around 1.1 GB so they can be reused …

SSD partition will be given to “/” and the current fedora partition 300GB will be mounted at “/home”, i will use btrfs. i havent thought regarding "/var/ btw.

On Silverblue and FCOS /var and /home are writable while / and /usr are not. Of course /etc is writable too. Wasn’t certain if you were installing it or Workstation.
I gotcha re the gaming on Win, or anything for that matter, SSD’s are so much faster.

my 2 ct:

  1. you know your partition 4 maybe contains a recovery for windows ?
  • usually to restore windows to it’s initial state
  • and depends on your current disk (-layout)
    => backup [1], with a “fdisk -l …” > myWindows_disklayout.txt
  1. you should read/think about “over-provisioning” for the ssd
  2. I would create a Btrfs Pool with subvol /, /home (?) and leave /var in /.

- I’m unsure with UEFI -
4. your bootsector may contain a special adjustment to recover your windows to it’s initial state with maybe an F-Key during boot or so.
means: you need to backup that bootsector too

I am not using Silverblue, its Fedora workstation actually which i will be using… so what you think my setup is ok or i need to modify few things…

Yes there is one partition for recovery of windows and it will reset if you have created a reset point inside windows .

I read, and over-provisioning is not needed anymore and considering i will be using it for OS and software only so i will have plenty of free space anyway…

How to create subpool when there are multiple drives in place as what i am thinking is to put the root inside ssd and /home will take the current partition in HDD.

can i just leave it alone? or is it necessary…

Well … you could use dd if=/dev/<HDD> of =/dev/<SDD> which would copy your current HDD verbatim to your SSD. Then reformat the HDD as you want, if it is to be the entire HDD for home then so be it. Once you reboot from the SSD, even the Fedora Linux on it (now), you can create a new BTRFS filesystem on the HDD and create a subvolume that you will eventually mount as /home. There are some doc’s about filesystem layouts that you should check out Btrfs Documentation and Resources · Btrfs is one good one, so are Fedoras doc’s on it.

The problem is size, window partition use around 450GB of space and the size of SSD is just 500GB.

if you need to recovery windows in the future on the same disk: NO !
if you format the disk in the future: yes
but, I’m still unsure if you have a adjusted bootsector and if it’s necessary with UEFI !!!

a subvolume and a BTRFS Pool…
my main view was regarding /var as a separate partition; unnecessary for my taste on a desktop box.

subvol like this(my fstab):

UUID=552c82a5-ff63-4873-b5a8-23029eddff6d /boot                   ext4    defaults        1 2
UUID=9133-8ECB                            /boot/efi               vfat    umask=0077,shortname=winnt 0 2

UID=961eb72f-ddab-4308-9355-f2b1f74a1c8f /                        btrfs   subvol=ROOT,compress=zstd:1 0 0
UUID=961eb72f-ddab-4308-9355-f2b1f74a1c8f /home                   btrfs   subvol=HOME,compress=zstd:1 0 0
UUID=961eb72f-ddab-4308-9355-f2b1f74a1c8f /home/DATA              btrfs   subvol=DATA,compress=zstd:1 0 0

/, /home, /home/DATA share the same disk size; dyn. fetched from the pool(size):

/dev/nvme0n1p3  420G  175G  245G  42% /
/dev/nvme0n1p3  420G  175G  245G  42% /home
/dev/nvme0n1p3  420G  175G  245G  42% /home/DATA
/dev/nvme0n1p1  974M  102M  805M  12% /boot
/dev/nvme0n1p2  599M   14M  585M   3% /boot/efi

Pool: 420G shared over all subvol’s
I guess you could somehow bind your current /home to the pool…
- currently don’t know how, e.g. not done so far -

- obsolete -

Windows does have some good tools for shrinking the size of a Win partition, you could do some of that first before copying.
Fedora default BTRFS subvolume layout is two subvolumes, one mounted at / and one mounted at /home, as I use Silverblue, I also create a subvolume I mount as /var since that is the mutable part of the Silverblue system. To call BTRfS a pool is a bit off, it is a modern CoW filesystem, and also covers some of the ground LVM does, but it is so much more. It doesn’t allot space until it is going to be used so shrinking and growing filesystems is easy.
So, I would use dd to image the Windows partition to the SSD. Use Windows tools to shrink the size of the new partition (boot into it and do this). Once you are satisfied your Windows install is behaving as expected, move onto the Fedora install. I wouldn’t do anything to the HDD until I was satisfied the Windows install was working. After the dd image copy is done you will likely have to repair your windows installation on it, so keep that in mind. I have made a habit of making a system recovery USB with any windows systems I am about to work on in case networking fails.

Just Got the ssd today, its pretty small compare to how it looked in videos. I will do as you suggested and will ask for help if needed.

Yeah they’re generally tiny things.