ATTENZIONE: Partizionare le MMC card significa distruggere il contenuto di tali memorie, si consiglia un backup prima di procedere.
Esiste un po di confusione su come vengono chiamate le memorie MMC dal sistema operativo usato dal Nokia N800/N810, di seguito un chiarimento:
Inoltre bisogna avere accesso come root per procedere.
Smontare inizialmente i device interessati, usare il comando seguente sostituendo PUNTO_MONTAGGIO con il device interessato e ripetere l'operazione per l'eventuale altro device.
umount PUNTO_MONTAGGIO
Si usa in seguito il seguente comando per creare la tabella delle partizioni che poi andranno formattate, sostituendo DEVICE con il device della memoria da formattare :
sfdisk DEVICE
Verranno elencate le possibili 4 partizioni che possono essere create sulla memoria, dalla prima /dev/mmcblk0p1 alla quarta /dev/mmcblk0p4 una dopo l'altra. Per ogni partizione bisogna specificare:
Blocco_iniziale,Blocco_finale,Tipo_partizione
Blocco_iniziale = s'intende il blocco dove comincia la partizione, per esempio la prima partizione parte dal blocco 1, la seconda dall'ultimo blocco della prima più uno, la terza dall'ultimo blocco della seconda più uno e cosi anche per la quarta.
Blocco_finale = determina la dimensione della partizione. Le dimensioni vengono specificate in blocchi da 32k, per sapere quanti blocchi sono contenuti nella dimensione scelta per la partizione, bisogna dividerla per 32k per un calcolo approssimato, ad esempio:
100M sono circa 100000K quindi 100000K diviso 32K = 3125 blocchi, se vogliamo una partizione di 100M scriveremo a posto di Blocco_finale, 3125.
Tipo_partizione = s'intende un codice che identifica il tipo di filesystem che vogliamo assegnare alla partizione, si trovano qui
Le partizioni FAT16 hanno come Tipo_partizione "06" e vengono spesso usate per le memorie di dimensione inferiore al 2G, per quelle più grandi si usa FAT32 LBA che si specifica "0c" al posto di Tipo_partizione, se scegliamo di creare una partizione di tipo "ext" si consiglia "ext2" in quanto non danneggia le memorie come potrebbe fare un tipo "ext3" compreso di journaling, il quale ha bisogno di scrivere spesso sulla memoria per tale scopo, per "ext" il codice è "83".
Per rendere la partizione avviabile si aggiunge ",*" dopo Tipo_partizione
Per assegnare il restante spazio a una partizione bisogna lasciare vuoto lo spazio Blocco_finale:
Blocco_iniziale,,Tipo_partizione
sfdisk /dev/mmcblk1 [INVIO] /dev/mmcblk1p1 :1,125000,83,* [INVIO] /dev/mmcblk1p2 :125001,,0c [INVIO] /dev/mmcblk1p3 : [lasciare vuoto e INVIO] /dev/mmcblk1p4 : [lasciare vuoto e INVIO]
Per salvare e uscire scrivere "y" e INVIO.
Per le partizioni "ext" dobbiamo aver installato e2fsprogs, se così non fosse accertiamoci di aver inserito il repository giusto per tale pacchetto e diamo il comando:
apt-get install e2fsprogs
Di seguito i comandi per formattare, sostituite PARTIZIONE con la partizione interessata:
per formattare una partizione FAT16:
mkfs.msdos -F16 PARTIZIONE
per formattare una partizione FAT32 LBA:
mkfs.vfat PARTIZIONE
per formattare una partizione ext2:
mkfs.ext2 PARTIZIONE
Formatto la partizione di tipo ext2 avviabile e riavvio il sistema:
mkfs.ext2 /dev/mmcblk1p1 shutdown -r now
Formatto la partizione di tipo FAT32 LBA e riavvio il sistema:
mkfs.vfat /dev/mmcblk1p2 shutdown -r now
Per quanto riguarda le "p1" (partizioni n°1), esse vengono montate automaticamente sotto le directory /media/mmc1 e /media/mmc2 per le altre dobbiamo creare il punto di montaggio e modificare gli script /usr/sbin/osso-mmc-mount.sh e /usr/sbin/osso-mmc-umount.sh. Questi due script hanno il compito di montare automaticamente le due memorie, sia interna che esterna, ma non montano automaticamente le partizioni oltre la prima. Il senso della modifica è far eseguire allo script ulteriori comandi per montare le altre partizioni al riconoscimento automatico della prima. per fargli eseguire questo compito dobbiamo modificare tali script in questo modo:
creiamo il punto di montaggio delle partizioni "p2" sostituendo NOME_PUNTOM con il nome del punto di montaggio che si vuol creare, ripetere il comando per i punti di montaggio da assegnare a "p3" o "p4" dove è necessario:
mkdir /media/NOME_PUNTOM
Editiamo il file /usr/sbin/osso-mmc-mount.sh:
nano /usr/sbin/osso-mmc-mount.sh
Aggiungiamo prima di :
exit $RC
sostituendo:
per un filesystem di tipo FAT inseriamo le seguenti righe di codice, inserite solo le righe delle partizioni che vi interessano (se non dovete far caricare automaticamente le partizioni "p3" e "p4" potete omettere completamente le righe di tali partizioni):
if [ $PDEV = DEVICE_P1 ] && [ $MP = PUNTO_MONTAGGIO_P1 ]; then
mount -t vfat -o rw,noauto,nodev,noexec,nosuid,utf8,uid=29999 DEVICE_P2 PUNTO_MONTAGGIO_P2
mount -t vfat -o rw,noauto,nodev,noexec,nosuid,utf8,uid=29999 DEVICE_P3 PUNTO_MONTAGGIO_P3
mount -t vfat -o rw,noauto,nodev,noexec,nosuid,utf8,uid=29999 DEVICE_P4 PUNTO_MONTAGGIO_P4
fi
per un filesystem di tipo ext2 inseriamo le seguenti righe di codice, sostituendo con gli stessi criteri elencati in precedenza e omettendo le righe delle partizioni che non sono interessate:
if [ $PDEV = DEVICE_P1 ] && [ $MP = PUNTO_MONTAGGIO_P1 ]; then
mount -t ext2 -o noatime DEVICE_P2 PUNTO_MONTAGGIO_P2
mount -t ext2 -o noatime DEVICE_P3 PUNTO_MONTAGGIO_P3
mount -t ext2 -o noatime DEVICE_P4 PUNTO_MONTAGGIO_P4
fi
per un filesystem di tipo ext3 inseriamo le seguenti righe di codice, sostituendo con gli stessi criteri elencati in precedenza e omettendo le righe delle partizioni che non sono interessate:
if [ $PDEV = DEVICE_P1 ] && [ $MP = PUNTO_MONTAGGIO_P1 ]; then
KERNEL_VERSION=`uname -r`
if install_module $KERNEL_VERSION mbcache; then
if install_module $KERNEL_VERSION jbd; then
if install_module $KERNEL_VERSION ext3; then
mount -t ext3 -o noatime,data=writeback DEVICE_P2 PUNTO_MONTAGGIO_P2
mount -t ext3 -o noatime,data=writeback DEVICE_P3 PUNTO_MONTAGGIO_P3
mount -t ext3 -o noatime,data=writeback DEVICE_P4 PUNTO_MONTAGGIO_P4
fi
fi
fi
fi
creo il seguente punto di montaggio:
mkdir /media/mmc1p2
edito /usr/sbin/osso-mmc-mount.sh:
nano /usr/sbin/osso-mmc-mount.sh
aggiungo prima di:
exit $RC
le seguenti linee:
if [ $PDEV = /dev/mmcblk1p1 ] && [ $MP = /media/mmc1 ]; then mount -t vfat -o rw,noauto,nodev,noexec,nosuid,utf8,uid=29999 /dev/mmcblk1p2 /media/mmc1p2 fi
salvo e esco.
Editiamo il file /usr/sbin/osso-mmc-umount.sh:
nano /usr/sbin/osso-mmc-umount.sh
aggiungiamo prima di :
else
sostituendo:
le seguenti righe inserendo solo quelle delle partizioni interessate:
if [ $MP = PUNTO_MONTAGGIO_P1 ]; then umount PUNTO_MONTAGGIO_P2 2> /dev/null umount PUNTO_MONTAGGIO_P3 2> /dev/null umount PUNTO_MONTAGGIO_P4 2> /dev/null fi
Edito il file /usr/sbin/osso-mmc-umount.sh:
nano /usr/sbin/osso-mmc-umount.sh
aggiungo prima di:
else
le seguenti linee di codice:
if [ $MP = /media/mmc1 ]; then umount /media/mmc1p2 2> /dev/null fi
salvo e riavvio il dispositivo.
Creato da Chris.