TS-7553-V2 MicroSD Backup: Difference between revisions

From embeddedTS Manuals
(Initial creation)
 
(Modifications to support TS-7553-V2 Rev. B)
Line 1: Line 1:
{|  
{|  
| [[File:MicroSD.png|70px|link=ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/binaries/ts-images/ts553-V2-latest.dd.bz2]]
| [[File:MicroSD8GB.png|70px|link=ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/distributions/ts7553-V2-latest.tar.bz2]]
| [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/binaries/ts-images/ts7553-V2-latest.dd.bz2 Click to download the latest 4GB SD card image.]
| [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/distributions/ts7553-V2-latest.tar.bz2 Click to download the latest tarball.]
|}
|}


''' Using another Linux workstation '''
These instructions assume you have an SD card with one partition.  Most SD cards ship this way by default.  If the card has had its partition table modified this can be corrected with a tool like 'gparted' or 'fdisk'.


If you do not have an SD card that can boot to the initramfs, you can download the [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/binaries/ts-images/ts7553-V2-latest.dd.bz2 latest SD card image] and rewrite this from a Linux workstation.  A USB MicroSD adapter can be used to access the card.  First, you must find out which /dev/ device corresponds with your USB reader/writer. 
Plug the SD card into a USB reader and connect it to a linux workstation PC.  Newer distributions include a utility called 'lsblk' which lists all block devices like a USB SD card reader:
 
Step 1 Option 1 (lsblk)
----
 
Newer distributions include a utility called "lsblk" which allows simple identification of the intended card:
<source lang=bash>
<source lang=bash>
lsblk
lsblk
Line 29: Line 24:
In this case the SD card is 4GB, so sdX is the target device.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.
In this case the SD card is 4GB, so sdX is the target device.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.


Step 1 Option 2 (dmesg)
After plugging in the device after Linux has booted you can use dmesg to print out the kernel log.  When the USB drive is added it will append to the end of that file.  Try running:
----
<source lang=bash>dmesg | tail -n 100</source>
 
After plugging in the device, you can use dmesg to list


   scsi 54:0:0:0: Direct-Access    Generic  Storage Device  0.00 PQ: 0 ANSI: 2
   scsi 54:0:0:0: Direct-Access    Generic  Storage Device  0.00 PQ: 0 ANSI: 2
Line 40: Line 33:
In this case, sdXc is shown as a 3.97GB card.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.
In this case, sdXc is shown as a 3.97GB card.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.


Step 2
The following commands will reformat the first partition of the SD card, and unpack the latest filesystem on there:
----


Once you have the target /dev/ device you can use "dd" to backup/restore the card.  To restore the board to stock, or rewrite to the latest SD image:
<source lang=bash>
<source lang=bash>
wget ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/binaries/ts-images/ts7553-V2-latest.dd.bz2
# Verify nothing else has this mounted
sudo umount /dev/sdX1


# Specify your block device instead of /dev/sdX
sudo mkfs.ext3 /dev/sdX1
# Note that this is a whole disk image, so use /dev/sdX instead of
sudo mkdir /mnt/sd
# using /dev/sdX1
sudo mount /dev/sdX1 /mnt/sd/
bzcat ts7553-V2-latest.dd.bz2 | dd conv=fsync bs=4M of=/dev/sdX
wget ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/distributions/ts7553-V2-latest.tar.bz2
 
sudo tar -xf ts7553-V2-latest.tar.bz2 -C /mnt/sd
sudo umount /mnt/sd
sync
</source>
</source>
{{:U-Boot ext4 warning}}


To take a backup of your entire SD card, you can switch the input file and the output file:
Once written, the files on disk can be verified to ensure they are the same as the source files in the archive.  Reinsert the disk to flush the block cache completely, then run the following commands:
<source lang=bash>
<source lang=bash>
# Specify your block device instead of /dev/sdX
mount /dev/sdX1 /mnt/sd
dd if=/dev/sdX conv=fsync bs=4M | bzip2 > backup.dd.bz2
cd /mnt/sd/
sudo md5sum --quiet -c md5sums.txt
umount /mnt/sd
sync
</source>
</source>
The md5sum command will report what differences there are, if any, and return if it passed or failed.

Revision as of 13:46, 2 March 2017

MicroSD8GB.png Click to download the latest tarball.

These instructions assume you have an SD card with one partition. Most SD cards ship this way by default. If the card has had its partition table modified this can be corrected with a tool like 'gparted' or 'fdisk'.

Plug the SD card into a USB reader and connect it to a linux workstation PC. Newer distributions include a utility called 'lsblk' which lists all block devices like a USB SD card reader:

lsblk
 NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 sdY      8:0    0   400G  0 disk 
 ├─sdY1   8:1    0   398G  0 part /
 ├─sdY2   8:2    0     1K  0 part 
 └─sdY5   8:5    0     2G  0 part [SWAP]
 sr0     11:0    1  1024M  0 rom  
 sdX      8:32   1   3.9G  0 disk 
 ├─sdX1   8:33   1   7.9M  0 part 
 ├─sdX2   8:34   1     2M  0 part 
 ├─sdX3   8:35   1     2M  0 part 
 └─sdX4   8:36   1   3.8G  0 part  

In this case the SD card is 4GB, so sdX is the target device. Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc. Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.

After plugging in the device after Linux has booted you can use dmesg to print out the kernel log. When the USB drive is added it will append to the end of that file. Try running:

dmesg | tail -n 100
 scsi 54:0:0:0: Direct-Access     Generic  Storage Device   0.00 PQ: 0 ANSI: 2
 sd 54:0:0:0: Attached scsi generic sg2 type 0
 sd 54:0:0:0: [sdX] 3862528 512-byte logical blocks: (3.97 GB/3.84 GiB)

In this case, sdXc is shown as a 3.97GB card. Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc. Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.

The following commands will reformat the first partition of the SD card, and unpack the latest filesystem on there:

# Verify nothing else has this mounted
sudo umount /dev/sdX1

sudo mkfs.ext3 /dev/sdX1
sudo mkdir /mnt/sd
sudo mount /dev/sdX1 /mnt/sd/
wget ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/distributions/ts7553-V2-latest.tar.bz2

sudo tar -xf ts7553-V2-latest.tar.bz2 -C /mnt/sd
sudo umount /mnt/sd
sync
Note: The ext4 filesystem can be used instead of ext3, but it may require additional options. U-Boot does not support the 64bit addressing added as the default behavior in recent revisions of mkfs.ext4. If using e2fsprogs 1.43 or newer, the options "-O ^64bit,^metadata_csum" must be used with ext4 for proper compatibility. Older versions of e2fsprogs do not need these options passed nor are they needed for ext3.

Once written, the files on disk can be verified to ensure they are the same as the source files in the archive. Reinsert the disk to flush the block cache completely, then run the following commands:

mount /dev/sdX1 /mnt/sd
cd /mnt/sd/
sudo md5sum --quiet -c md5sums.txt
umount /mnt/sd
sync

The md5sum command will report what differences there are, if any, and return if it passed or failed.