Fully Erase / Duplicate Micro SD Cards – BACKITUP

Best way to backup micro-sd cards

 

You can still use the dd command to completely erase a microSD card on macOS, but the device naming convention is different from Linux. Instead of /dev/sdX, on macOS you will use /dev/diskX for the entire disk, where X is the number of the disk (e.g., /dev/disk2).

Here’s how to proceed with erasing the microSD card using dd on macOS:

1. List the Disks:

Use diskutil to find the correct disk identifier for your microSD card:


diskutil list

This will show all connected disks and partitions. Look for your microSD card in the list (likely something like /dev/disk2 or /dev/disk3), depending on how many drives you have connected.

2. Unmount the microSD Card:

Before using dd, you must unmount the card to prevent any file system corruption during the process:


diskutil unmountDisk /dev/diskX

Replace /dev/diskX with the correct disk identifier from the previous step (e.g., /dev/disk2).

3. Erase the microSD Card Using dd:

You can now safely use dd to zero out the entire microSD card. Here’s the command:


sudo dd if=/dev/zero of=/dev/rdiskX bs=4M status=progress

Important:

  • Replace /dev/rdiskX with your actual device (/dev/rdisk2 or similar). The r in front of diskX (e.g., /dev/rdisk2) speeds up the process by using raw disk access.
  • This will overwrite the entire disk with zeros, effectively erasing all the data on the microSD card.

4. Wait for the Process to Complete:

Depending on the size of your microSD card, this may take some time. dd will display the progress as it writes zeros to the card.

5. Eject the microSD Card:

Once the process is complete, you can safely eject the microSD card:


diskutil eject /dev/diskX

Notes:

  • macOS uses different disk names: Unlike Linux’s /dev/sdX, macOS refers to disks as /dev/diskX (e.g., /dev/disk2), and partitions as /dev/diskXsY (e.g., /dev/disk2s1). To operate on the whole card, use /dev/diskX, not a partition like /dev/diskX1.
  • Erasing vs Formatting: The dd command completely wipes the card. Afterward, you'll need to format it to a specific file system (e.g., FAT32) if you want to use it on a different device.

If you're planning to use the card on multiple devices, you may need to format it with diskutil afterward:


diskutil eraseDisk FAT32 SDCARD MBRFormat /dev/diskX

This method works just fine on macOS! Let me know if you run into any issues.

 

 

 

You said:

after sudo dd – if I wanted to duplicate anotehr micro ssd card onto it – would I leave it blacnk?

 

ChatGPT said:

ChatGPT

Yes, after using sudo dd to wipe the microSD card with zeros, the card will be "blank" (i.e., no partitions or file systems). If you want to duplicate another microSD card onto this blank card, you do not need to format it or create any partitions beforehand. You can directly use dd to clone the contents of the source microSD card onto the wiped card.

Steps to Duplicate Another microSD Card Using dd

  1. Insert Both microSD Cards (Source and Destination) into your computer.

  2. Identify the Device Names:

    • Use the following command to list the connected disks:

      
      diskutil list
      
    • Identify both the source microSD card (which contains the data you want to clone) and the destination microSD card (the blank one you want to clone to). They will appear as /dev/diskX (e.g., /dev/disk2, /dev/disk3, etc.).

  3. Unmount Both Cards:

    • Before using

      dd
      

      , unmount the partitions on both microSD cards to avoid any file system issues during cloning.

      e
      diskutil unmountDisk /dev/diskX
      

      Repeat this for both the source and the destination card, replacing

      diskX
      

      with the appropriate disk identifiers.

  4. Clone the Source microSD Card to the Destination:

    • Use the

      dd
      

      command to copy the contents of the source card to the blank destination card:

      
      sudo dd if=/dev/rdiskX of=/dev/rdiskY bs=4M status=progress
      
    • Replace /dev/rdiskX with the source card's identifier (e.g., /dev/rdisk2) and /dev/rdiskY with the destination card's identifier (e.g., /dev/rdisk3).

    • As mentioned before, using rdisk instead of disk gives you raw access to the device, which speeds up the process.

  5. Wait for the Process to Complete:

    • Depending on the size of the source card, this could take some time. The status=progress option will show you the progress of the cloning.
  6. Eject the Cards:

    • Once the cloning is complete, safely eject both microSD cards:

      
      diskutil eject /dev/diskX
      diskutil eject /dev/diskY
      

Notes:

  • Exact Duplicate: Using dd like this will create an exact bit-for-bit clone of the source card, including all partitions, boot sectors, and file systems. The destination card will be an exact replica of the source card.
  • Different-Sized Cards: If the destination card is larger than the source card, the extra space will remain unused, but you can expand the partition later using a tool like gparted. If the destination card is smaller than the source card, dd will fail because there won’t be enough space to complete the clone.

Steps to Duplicate a microSD Card on Linux



From the output, I see the following:

sdc (29.8 GB): This is your destination microSD card, which is currently blank or unpartitioned.
mmcblk1 (29.8 GB): This is your source microSD card that contains your working Ubuntu installation. It has two partitions:
mmcblk1p1 (256 MB): Likely your boot partition (mounted at /boot/efi).
mmcblk1p2 (29.5 GB): This is likely your root filesystem partition.
Given this setup, you can clone the working mmcblk1 microSD card to the blank sdc card using dd.

Steps to Clone the Working microSD Card to the Blank Destination Card
Unmount the Destination microSD Card (sdc):

To ensure no processes are using the destination card, unmount any partitions:
sudo umount /dev/sdc*
Use dd to Clone the Source Card to the Destination:

Now, use dd to clone the entire mmcblk1 card (source) to the sdc card (destination):
sudo dd if=/dev/mmcblk1 of=/dev/sdc bs=4M status=progress


  1. Insert Both microSD Cards (Source and Destination):

    • Insert the source card (the one you want to clone) and the destination card (the one you want to write the clone to) into your computer using SD card readers.
  2. Identify the Device Names:

    • Open the terminal and run the following command to list all block devices:

      
      
      
      
      lsblk
      
    • Look for your microSD cards in the output. They will usually be listed as /dev/sdX (e.g., /dev/sdb, /dev/sdc). You can identify them by their sizes to avoid confusion between your system's internal drives and the microSD cards.

    Example:

    
    
    
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 256G  0 disk
    sdb      8:16   1  32G  0 disk    # Source microSD card
    sdc      8:32   1  32G  0 disk    # Destination microSD card
    

    In this case:

    • /dev/sdb is the source card.
    • /dev/sdc is the destination card.
  3. Unmount Both microSD Cards:

    • Ensure both the source and destination microSD cards are not mounted before proceeding with the duplication:

      
      
      
      
      sudo umount /dev/sdb*
      sudo umount /dev/sdc*
      

    This unmounts all partitions on both the source and destination cards.

  4. Clone the Source microSD Card to the Destination:

    • Use the

      dd
      

      command to clone the source microSD card to the destination. Here’s the command:

      
      
      
      
      sudo dd if=/dev/sdb of=/dev/sdc bs=4M status=progress
      
    • if is the input file (source card, /dev/sdb in this example).

    • of is the output file (destination card, /dev/sdc in this example).

    • bs=4M sets the block size to 4 megabytes for faster copying.

    • status=progress shows you progress during the cloning process.

  5. Wait for the Cloning to Complete:

    • This process can take some time depending on the size of the source card and the speed of your card readers. The terminal will show the progress of the operation.
  6. Verify the Clone (Optional):

    • You can verify that the cloning process was successful by using the

      lsblk
      

      command again to check the partitions on the cloned card, or by mounting the destination card and comparing its contents to the source card:

      
      
      
      
      sudo mount /dev/sdc1 /mnt
      ls /mnt
      sudo umount /mnt
      
  7. Eject the Cards:

    • Once the process is complete, safely eject both cards:

      
      
      
      
      sudo eject /dev/sdb
      sudo eject /dev/sdc
      

Important Notes:

  • Exact Duplicate: The cloned microSD card will be an exact copy of the original, including all partitions, boot loaders, and data.

  • Card Size

    :

    • If the destination card is larger than the source, the extra space will remain unallocated, but you can expand the partition later using a tool like gparted.
    • If the destination card is smaller than the source card, dd will fail because there isn’t enough space.
  • Data Integrity: If there’s any sensitive data on the source card, be cautious as dd makes a complete byte-for-byte copy, including deleted files, empty space, etc.

With these steps, you should be able to successfully duplicate a microSD card on Linux. Let me know if you encounter any specific issues!

Scroll to Top