TS-4720 eMMC Backup/restore: Difference between revisions

From embeddedTS Manuals
No edit summary
(Undo revision 5592 by Mark (talk))
Line 1: Line 1:
{|  
{|  
| [[File:eMMC.png|70px|link=ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4710-linux/binaries/ts-images/2gb-emmc-slc-471x-latest.dd.bz2]]
| [[File:eMMC.png|70px|link=ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4710-linux/binaries/ts-images/emmc-dblstor-latest.dd.bz2]]
| [ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4710-linux/binaries/ts-images/2gb-emmc-slc-471x-latest.dd.bz2 Click to download the latest 2GB SLC eMMC image.]
| [ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4710-linux/binaries/ts-images/emmc-dblstor-latest.dd.bz2 Click to download the latest 4GB eMMC image.]
|}
|}


{{Warning|Make sure the SD and eMMC filesystems are mounted read only while writing any images.  If dd is used to read or write a disk while a filesystem on it is mounted read/write this will result in a corrupt image.}}
{{Warning|Make sure the SD and eMMC filesystems are mounted read only while writing any images.  If dd is used to read or write a disk while a filesystem on it is mounted read/write this can result in a corrupt image.}}


First boot to the initramfs.  These steps should '''not be run from the full Debian environment''', so to get back to the initramfs, first run:
First boot to the initramfs.  These steps should '''not be run from the full Debian environment''', so to get back to the initramfs, first run:
Line 11: Line 11:
</source>
</source>


First, boot to the SD card.  Once you are in the initramfs, mount a network share or usb drive containing the emmc image.
Once you are in the initramfs, mount a network share or usb drive containing the emmc image.


''' Write an Image to eMMC '''
''' Write an Image to eMMC '''
Line 25: Line 25:
umount -l /mnt/root/
umount -l /mnt/root/


dd if=/mnt/usbdev/emmcimage.dd bs=4M of=/dev/nbd1
# Tell sdctl to pause so we don't kill it during a burst
sync
killall -USR1 sdctl
# Allow time for any buffered writes to finish
sleep 5
killall sdctl
 
# The dblstor-disable command only tells the card to
# ignore any doublestore metadata on the eMMC during
# this write.  It does not prevent reading/writing doublestore
# formatted media.
# This command can be expected to take about 10 minutes
sdctl --lun 1 -z 65536 --dblstor-disable -i /mnt/usbdev/emmc-image.dd
reboot
reboot
</source>
</source>
These steps can write the eMMC image to use a single-card [[#Doublestore]], or you can write the [ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4710-linux/binaries/ts-images/4gbsd-471x-latest.dd.bz2 SD Image] to not use doublestore.


''' Save an image from eMMC '''
''' Save an image from eMMC '''
Line 42: Line 54:
umount -l /mnt/root/
umount -l /mnt/root/


dd if=/dev/nbd1 bs=4M of=/mnt/usbdev/emmcimage.dd
# Tell sdctl to pause so we don't kill it during a burst
killall -USR1 sdctl
# Allow time for any buffered writes to finish
sleep 5
killall sdctl
 
sdctl --lun 1 -z 65536 --dblstor-disable --nbdserver lun1:disc
nbd-client 127.0.0.1 7500 /dev/nbd1
# This can take about 15 minutes
dd if=/dev/nbd1 bs=4M of=/mnt/usbdev/emmc-image.dd
umount /mnt/usbdev
umount /mnt/usbdev
sync
sync
</source>
</source>

Revision as of 09:48, 14 August 2014

EMMC.png Click to download the latest 4GB eMMC image.
WARNING: Make sure the SD and eMMC filesystems are mounted read only while writing any images. If dd is used to read or write a disk while a filesystem on it is mounted read/write this can result in a corrupt image.

First boot to the initramfs. These steps should not be run from the full Debian environment, so to get back to the initramfs, first run:

tshwctl --removejp 1 && reboot

Once you are in the initramfs, mount a network share or usb drive containing the emmc image.

Write an Image to eMMC

# Check /mnt/root.  If it shows a file "root.version", you can proceed.
# If it shows nothing, you need to wait for the Debian filesystem
until [ -e /mnt/root/root.version ]; do sleep .1; done

# Plug in a thumbdrive formatted with ext2/3/4 or fat32/ntfs
mkdir /mnt/usbdev
mount -o ro /dev/sda1 /mnt/usbdev
umount -l /mnt/root/

# Tell sdctl to pause so we don't kill it during a burst
killall -USR1 sdctl
# Allow time for any buffered writes to finish
sleep 5 
killall sdctl

# The dblstor-disable command only tells the card to
# ignore any doublestore metadata on the eMMC during
# this write.  It does not prevent reading/writing doublestore
# formatted media.
# This command can be expected to take about 10 minutes
sdctl --lun 1 -z 65536 --dblstor-disable -i /mnt/usbdev/emmc-image.dd
reboot

These steps can write the eMMC image to use a single-card #Doublestore, or you can write the SD Image to not use doublestore.

Save an image from eMMC

# Check /mnt/root.  If it shows a file "root.version", you can proceed.
# If it shows nothing, you need to wait for the Debian filesystem
until [ -e /mnt/root/root.version ]; do sleep .1; done

# Plug in a thumbdrive formatted with ext2/3/4 or fat32
mkdir /mnt/usbdev
mount /dev/sda1 /mnt/usbdev
umount -l /mnt/root/

# Tell sdctl to pause so we don't kill it during a burst
killall -USR1 sdctl
# Allow time for any buffered writes to finish
sleep 5 
killall sdctl

sdctl --lun 1 -z 65536 --dblstor-disable --nbdserver lun1:disc
nbd-client 127.0.0.1 7500 /dev/nbd1
# This can take about 15 minutes
dd if=/dev/nbd1 bs=4M of=/mnt/usbdev/emmc-image.dd
umount /mnt/usbdev
sync