Клонирование sd карты linux

SD card cloning using the dd command

I am trying to clone an SD card which may contain a number of partitions, some of which Ubuntu cannot recognize. Generally, I want to clone the whole volume, not only some partition. So, I mount the SD card and see something like this in the Log viewer:

kernel: [ 262.025221] sdc: sdc1 sdc2 alex@u120432:~$ ls /dev/sdc* /dev/sdc /dev/sdc1 /dev/sdc2 
dd if=/dev/sdc of=sdimage.img bs=4M 

File sdimage.img, 7.9 GB (7,944,011,776 bytes) is created (SD card is 8 GB). Now I mount another SD card and execute:

dd if=sdimage.img of=/dev/sdc bs=4M 

The problem is that the second dd command hangs on some stage, and never succeeds. After this, I cannot reboot or shut down computer, and I need just to switch power off. Is this the correct approach? Maybe there is another way to clone an SD card? OS: Ubuntu 12.04 (Precise Pangolin), 32 bit.

If I remember correctly: mount -o loop sdimage.img /path/to/mount. Then check to see if you can browse img file correctly.

@MilanTodorovic: I tried sudo mount -o sdimage.img /dev/mydisk and got: mount: can’t find /dev/mydisk in /etc/fstab or /etc/mtab Possibly I need to create some dev entry before. Can you post this as answer with some details? Thanks.

you should not be using dd on mounted devices. unmount all the partitions first, then your command should work.

5 Answers 5

Insert the original SD card and check the name of the device (usually mmcblkX or sdcX ):

Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 2048 2099199 2097152 1G c W95 FAT32 (LBA) /dev/mmcblk0p2 2099200 31116287 29017088 13.9G 83 Linux 

In my case the SD card is /dev/mmcblk0 (the *p1 and *p2 are the partitions).

Now you have to unmount the device:

Now to create an image of the device:

sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=1M status=progress 

Once it’s finished, insert the empty SD card. If the device is different (USB or other type of SD card reader) verify its name and be sure to unmount it:

sudo fdisk -l sudo umount /dev/mmcblk0 

Write the image to the device:

sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0 bs=1M status=progress 

The write operation is much slower than before.

when copying big amounts of data you should set a bigger than default blocksize, otherwise you may have to wait very long. sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=4M

Читайте также:  Linux for samsung galaxy mini

One thing that is really annoying of the dd command is that there is no output by default. You can change that by adding status=progress at the end of your command Therefore it would become: sudo dd if=/dev/mmcblk0 of=/media/data/sd-card-copy.img status=progress

Note: in my case the name of the device was sdc , not sdcX like written in this answer because sdcX was used for the partitions, for example partitions were named sdc1 and sdc2 . At least this answer helped me to make the dd command work by using /dev/sdc instead of /dev/sdc1 .

You should not be using dd on mounted devices. unmount all the partitions first, then your command should work.

I am using dd tool to clone usb sticks with multiple partitions, here is my command:

sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror 

notrunc — do not truncate the output file
noerror — continue after read errors

dd is fine, but I prefer cat /dev/sdc/ > ~/backup.iso If you want to put it on an SD card again, just run cat ~/backup.iso > /dev/sdc

Here are the steps which worked for me on Ubuntu to restore the image file ( ~/raspberrypi2.img in my case) back to a new SD card (inspired heavily by Alon’s reply above):

  1. Insert the micro SD card via the card reader.
  2. Open the Disks app.
  3. Quick format the whole card (not a specific partition).
  4. Close Disks.
  5. Open terminal and execute:

Relevant output (which showed there were no partitions due to the quick format of the whole card):

Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x6957f2f2 
sudo dd if=~/raspberrypi2.img of=/dev/sdb 

This step takes a few good minutes (even on USB3). Make sure to not interrupt it by any operation which will invoke mounting (opening the Files or Disks apps).

Thanks for everyone’s answers.

Источник

Как сделать копию флешки или SD карты на Windows, Linux и MacOS

Если вы относитесь к той категории пользователей, которая любит устраивать эксперименты своему оборудованию, то знаете, как важно обеспечить при этом сохранность всех пользовательских данных и настроек. Ведь эксперименты не всегда кончаются хорошо и лучше заранее защитить свои ценную информацию от возможных проблем. Сегодня разбираемся, как создать образ SD-карты, используемой, например, в Raspberry Pi.
Обратите внимание, независимо от того, какой объем памяти занят на флешке, величина клона будет соответствовать величине вашего накопителя. Сжать образ можно только на компьютерах под управлением Linux и мы расскажем как это сделать. Если есть реальная необходимость провести эту же операцию на других операционках, есть смысл запустить Linux на виртуальной машине.

На Windows

Для создания резервной копии мы будем использовать программу Win32DiskImager, она доступна для скачивания бесплатно. Первым делом, вставляем интересующую нас microSD в кард-ридер своего ПК и запускаем Win32DiskImager. В программе выбираем свою карту и прописываем путь, где будет сохранена его копия, задаем имя для нее. Расширение файла будет .img. Далее нажимаем “Read” и ждем, пока программа сохранит копию файла. Когда создание клона будет закончено, вы увидите сообщение “Read Successful”. После этого microSD можно извлекать и проводить с ней любые эксперименты. Есть ли аналоги? Да, например, Rufus, о котором мы рассказывали читателям в инструкции по созданию загрузочной флешки с Windows.
Обратный процесс выглядит примерно так же: вставляем флешку в кард-ридер и выбираем ее в программе, прописываем путь к резервной копии и нажимаем “Write”, чтобы переписать ее на карту памяти.

raspberry_pi_windows.jpg

На Linux

На данной операционке мы будем использовать команды в терминале, но для начала флешка опять же должна быть подключена к ПК. Открываем Терминал и вводим команду

она позволит вам просмотреть все файловые системы. Ваш накопитель будет обозначен как /dev/sdb, а рядом будет обозначена его емкость. Название вашего накопителя нужно запомнить или записать, оно понадобится для следующего этапа.
Для записи образа используем команду dd, результат будет выглядеть следующим образом:

sudo dd if=/dev/sdb of=~/raspbian_backup.img

параметр if будет указывать путь к исходному файлу, то есть, суда нужно будет вписать название, которое вы запомнили на предыдущем этапе. Параметр of — результат записи, сюда нужно вписать желаемое имя и расширение файла. Здесь стоит проявить осторожность, так как неверно введенные параметры могут полностью и безвозвратно уничтожить данные на вашей флешке. Запись данных займет какое-то время, при этом никакой строки прогресса вы не увидите, на окончание запущенного процесса вам укажет сообщение “Copied”.
Прежде чем заниматься восстановлением данных на карте, проверяем, все ли разделы отключены, для этого используем команду

sudo mount | grep sdb sudo mount | grep sdb

где sdb — имя вашего накопителя. Если вывод пустой — все в порядке, если нет — используем команду sudo umount где нужно вписать все высветившиеся разделы. Например

sudo umount /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

А теперь, собственно восстановление. Для этого используем ту же команду dd, но теперь вводим данные в другом порядке:

sudo dd if=~/raspbian_backup.img of=/dev/sdb

где if — название клона, сохраненного на вашем ПК, а of — название накопителя.
Прогресса записи нет, так что ждем подтверждения завершения процесса, после чего извлекаем карту памяти.
Пользователям Linux также доступен еще один процесс — уменьшение клонированного образа. Как мы уже отмечали выше, размер клона будет равен по объему размеру вашей SD-карты, так что если у вас вместительный накопитель, уменьшить его копию будет не лишним. Для уменьшения будем использовать скрипт PiShrink. Чтобы загрузить его последнюю версию, используем команду

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

После этого сделать исполняемым при помощи команды

Теперь переходим к собственно сжатию, для этого запускаем скрипт и указываем имя образа, который нужно сжать в следующем формате

sudo ./pishrink.sh ./raspbian_backup.img

где “raspbian_backup.img” — имя образа.

После этого можно записать образ описанным выше способом.

На MacOS

После подключения карты памяти, открываем терминал и вводим команду

Находим нашу флешку среди подключенного оборудования и размонтируем ее. Для этого используем команду

diskutil unmountDisk /dev/disk2

где “disk2” — имя вашего накопителя.

sudo dd if=/dev/disk2 of=~/raspbian_backup.img

Где disk2 — имя накопителя, а raspbian_backup.img — название будущего образа. Не отключайте свое устройство и не извлекайте карту, пока не увидите подтверждения окончания записи. Сам процесс займет какое-то время, запаситесь терпением.
Восстановление образа происходит похожим образом: сначала подключаем накопитель и размонтируем его, при помощи команды в Терминале:

diskutil unmountDisk /dev/disk2

где “disk2” — имя нашего накопителя.

Теперь используем команду

sudo dd if=~/raspbian_backup.img of=/dev/disk2

где параметр if — имя вашего образа, а of — название накопителя.

Как видим, на Mac и на Linux процесс записи и восстановления образа практически идентичен и там нужно понимать базовые команды для Терминала, а вот на Windows можно воспользоваться специальным софтом, который облегчит процесс. Надеемся, эта инструкция была полезной для наших читателей, а чтобы не пропускать другие секреты и советы из мира технологий, подписывайтесь на наш канал в Telegram.

Алеся Шарапова

Автор Алеся Шарапова

Источник

How to clone SD cards on Linux

You can activate several devices by flashing and cloning your sd card. This article explains how to clone your SD card on linux.

Note: You will need to undertake a couple of steps beforehand. Take a look at our tutorial.

  1. Insert the SD card into your PC, through a USB or a built-in card reader.
  2. Open Terminal and enter the following command:

This will list all drivers on your system.

  • Search in this list for the drive name of the inserted SD card.
    In our example it is: sdd.
    CloningSDcards-5-linux
  • If you want to write the backup to a backup drive instead of the system drive, you have to first mount this drive.
    In our example it is: sdb1.
    CloningSDcards-6-linux
  • Create a mount point:

    sudo mount -t auto /dev/sdb1 /mnt/sdb1
    sudo dd if=/dev/sdd of=/mnt/sdb1/emteriaBackup'date +%d%m%y'.img

    CloningSDcards-7-linux

  • Insert the new SD card into your PC.
  • Before you restore the image, it is important to make sure that the SD card’s partitions are unmounted. To verify this, open the Terminal, and execute the following command:
    sudo dd if=/mnt/sdb1/emteriaBackup'date +%d%m%y'.img of=/dev/sdd

    Источник

  • Оцените статью
    Adblock
    detector