Questa guida insegna come fare il backup e un eventuale ripristino della sdcard del sistema operativo del proprio Raspberry Pi tramite Mac OSX.
BACKUP: Inseriamo l’sdcard nel nostro Mac e apriamo il Terminale.
Per prima cosa controlliamo che la scheda sdcard sia stata riconosciuta con il comando
diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 75.0 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
4: Microsoft Basic Data BOOTCAMP 45.5 GB disk0s4 /dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *4.0 GB disk1
1: DOS_FAT_32 NO NAME 78.6 MB disk1s1
2: Linux_Swap 255.9 MB disk1s2
3: Linux 3.7 GB disk1s3
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *1.0 TB disk2
1: Windows_NTFS Elements 1.0 TB disk2s1
La nostra sdcard è stata vista ed è montata sotto il volume /dev/disk. Andiamo quindi a fare l’unmount del device con il comando
diskutil unmountDisk /dev/disk1
Una volta fatto l’unmount del volume andiamo ad eseguire un disk dump con il comando dd e mettiamo tutto in pipe con gzip in modo da creare un archivio compresso. In questo caso l’ho messo nel volume /Volumes/Elements (un hd western digital usb) all’interno della directory /raspi/ chiamando l’archivio con il nome image_20141130.gz NOTA: se bs=4m non dovesse funzionare (da errore) provare con bs=4M.
sudo dd bs=4m if=/dev/disk1 | gzip > /Volumes/Elements/raspi/image_20141130.gz
959+1 records in
959+1 records out
4025483264 bytes transferred in 1691.089930 secs (2380408 bytes/sec)
Aspettiamo il termine del comando e avremo il nostro file image_20141130.gz pronto per essere archiviato al sicuro.
RESTORE
Per fare il restore invece andiamo ad inserire sempre la nostra sdcard all’interno del nostro MAC e ne facciamo sempre l’unmount con il comando
diskutil unmountDisk /dev/disk1
Lanciamo quindi il comando per decomprimere l’archivio e mettiamo tutto in pipe con il comando disk dump (dd) questa volta dall’archivio verso l’sdcard.
A questo punto al termine del comando avremo nella nostra sdcard il ripristino del sistema operativo del nostro Raspberry Pi relativo all’archivio gzip selezionato.
Se vi si presenta il messaggio:
dd: /dev/disk1: Permission Denied
allora dovete formattare la scheda SD:
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmount /dev/disk1
disk1 was already unmounted or it has a partitioning scheme so use “diskutil unmountDisk” instead
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
Fabios-MacBook-Air:~ shadowsheep$ diskutil partitionDisk /dev/disk1 1 MBR “Free Space” “%noformat%” 100%
Started partitioning on disk1
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Finished partitioning on disk1
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: *31.0 GB disk1
Fabios-MacBook-Air:~ shadowsheep$
Mi raccomando, fate in modo che il vostro Mac o PC non vada in sospensione durante le copie altrimenti il comando potrebbe non terminare correttamente! 🙂
Ripristinate poi la configurazione come meglio credete al termine del backup o del ripristino.
Istruzioni dettagliate per installare la prima volta una immagine sull’SD del vostro Raspberry Pi le potete trovare direttamente sul sito raspberry.org!
Se vogliamo installare magento in un sottodirettorio (e.g. /magento/) invece che nella root del nostro web server allora per far sì che il tutto funzioni occorre:
1. Avere un hosting Linux (per installare Magento ovviamente)
2. Cambiare dal pannello di configurazione dell’host il tipo di php.ini file in cgi.fix_pathinfo che attiva la modalità cgi.fix_pathinfo = 1
3. Attivare l’url rewrite nel vostro .htaccess
# Setting rewrite rules. <IfModule mod_rewrite.c>
#Options +FollowSymLinks RewriteEngine on
################################################## MAGENTO ########################################## RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteRule ^.+.php$ /bogusfile
############################################
## you can put here your magento root folder
## path relative to web root
## QUESTO PUNTO E’ FONDAMENTALE SE AVETE INSTALLATO
## MAGENTO NEL DIRETTORIO /magento/ RewriteBase /magento/
############################################
## uncomment next line to enable light API calls processing
# RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
############################################
## rewrite API2 calls to api.php (by now it is REST only) RewriteRule ^api/rest api.php?type=rest [QSA,L]
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks RewriteCond %{REQUEST_METHOD} ^TRAC[EK] RewriteRule .* – [L,R=405]
############################################
## always send 404 on missing files in these folders RewriteCond %{REQUEST_URI} !^/(media|skin|js)/ ############################################
## never rewrite for existing files, directories and links RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l ############################################
## rewrite everything else of magenta to its index.php RewriteCond %{REQUEST_URI} ^/staging/magento/1.9.1.0/.* RewriteRule .* index.php [L]</IfModule>