wtorek, 2 października 2012

Raspberry Pi: tworzenie kopii karty SDHC

Ustalamy jak nazywa się urządzenie, w którym jest zamontowana karta SDHC:


pi@raspberrypi ~ $ sudo fdisk -l

Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders, total 15564800 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
Disk identifier: 0x000108cb

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 15564799 7720960 83 Linux

Teraz można zamontować pendrive'a, na którym zostanie zapisana kopia:


pi@raspberrypi ~ $ mkdir /media/sda1
## zakładamy że pendrive jest oznaczony jako /dev/sda1
pi@raspberrypi ~ $ mount /dev/sda1 /media/sda1

Kopiowanie za pomocą dd


pi@raspberrypi ~ $ sudo dd if=/dev/mmcblk0 | gzip -1 > /media/sda1/sd_backup.img.gz
## bez kompresji będzie szybciej:
pi@raspberrypi ~ $ sudo dd if=/dev/mmcblk0 of=/media/sda1/sd_backup.img
## po sieci, w przypadku gdy nie mamy wolnego pendrive'a
ktos@inny-komputer ~ $ sudo ssh root@raspberrystar dd if=/dev/mmcblk0 | gzip -1 | dd of=sd_backup.img.gz

Uwaga: raspberrystar powinno być zamienione na odpowieni adres IP (lub nazwę).

Przywracanie systemu z kopii zapasowej:


pi@raspberrypi ~ $ zcat sd_backup.img.gz > /dev/sdX

Gdzie /dev/sdX to nazwa urządzenia z zamontowaną czystą kartą SDHC.

Więcej szczegółów i bardziej detalicznie jest tutaj.

Kopiowanie do pliku zamontowanego za pomocą sshfs:


pi@raspberrypi ~ $ sudo apt-get install sshfs fuse-utils

pi@raspberrypi ~ $ mkdir -p ~/Dist/jupiter

## montuję (jako użytkownik tomek) zdalny katalog /public/raspberry na
## komputerze jupiter; punkt montowania to ~/Dist/jupiter
pi@raspberrypi ~ $ sshfs tomek@jupiter:/public/raspberry/ ~/Dist/jupiter
failed to open /dev/fuse: Permission denied

# Za pierwszym strzałem (jak zwykle) nie wyszło, a to dlatego, że
# wyłącznie członkowie grupy "fuse" mogą czytać/pisać do/na /dev/fuse.
# Należy zatem dodać użytkownika pi do grupy "fuse":

pi@raspberrypi ~ $ sudo usermod -a -G fuse pi
## Teraz trzeba się wy/zalogować żeby zadziałały modyfikacje w /etc/group

pi@raspberrypi ~ $ sshfs tomek@jupiter:/public/raspberry/ ~/Dist/jupiter
pi@raspberrypi ~ $ ls -l /home/pi/Dist/jupiter
razem 0

## kopiowanie za pomocą dd (z kompresją `w locie'):
sudo dd if=/dev/mmcblk0 | gzip -1 > /home/pi/Dist/jupiter/raspberrystar.iso

2 komentarze:

  1. 15564800+0 przeczytanych recordów
    15564800+0 zapisanych recordów
    skopiowane 7969177600 bajtów (8,0 GB), 3504,04 s, 2,3 MB/s

    Kopiowanie karty 8Gb z kompresją przez sshfs zajęło około 1 godziny. Plik z kopią systemu zajmuje około 1,6Gb

    OdpowiedzUsuń
  2. Bardzo fajnie to opisałeś, ciekawy post

    OdpowiedzUsuń