Android: come formattare la partizione /cache

Formattare la partizione /cache di Android, partizione nascosta dove vengono memorizzati dati temporanei del sistema operativo e di alcune app di sistema, non è una pratica consueta da eseguire che ho deciso di adoperare per cercare di risolvere alcuni problemi che affliggono il mio Nexus 5 da quando sono passato a Lollipop.
La partizione /cache è simile nelle funzionalità, ma non a nulla a che vedere, con la “cache” delle app Android.

Per formattare /cache bisogna accedere al “Recovery mode” del telefono:

  1. spegnere il telefono;
  2. avviare il telefono tenedo premuti il “Tasto Accensione” ed il tasto “Volume -“;
  3. selezionare il menu “Recovery mode” usando i tasti volume;
  4. dopo poco apparirà il robottino Android sdraiato ed il messaggio “No command”;
  5. tenedo premuto il “Tasto Accensione” schiacciare una volta “Volume +”;
  6. usando i tasti volume selezionare “Wipe cache partition” e confermare premendo il “Tasto Accensione”;

A questo punto inizierà la formattazione della partizione e ci potrebbero volere diversi minuti: vi suggerisco di iniziare il processo con il telefono collegato all’alimentazione e di NON INTERROMPERE IL PROCESSO DI FORMATTAZIONE PER NESSUN MOTIVO.

Mac OS X 10.10: come disattivare l’indicizzatore di Spotlight

Non utilizzo molto Spotlight e recentemente, sul mio MacBook Pro End 2009, mi sta creando non pochi problemi di lentezza, indicizzando sempre sull’SSD dati che non dovrebbe indicizzare (i file di build di Macports).

Mi sono accorto della attività anomala dell’indicizzatore mdworker con un semplice comando da riga di comando:

fs_usage -w -f filesys mdworker

Ho quindi deciso di disattivare Spotlight: per farlo è sufficiente lanciare (come root)

launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

In caso vi servisse riattivare Spotlight, dovrete lanciare invece (come root)

launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Windows 8.1: come risolvere l’errore 0x80070002 durante l’installazione del November 2014 Update Rollup Package (KB3000850)

Mi è capitato di vedere alcuni Windows 8.1 sui quali fallisce l’installazione del November 2014 Update Rollup Package (KB3000850), anche tramite Windows Update, riportando il codice di errore 0x80070002 ahimè non troppo esplicativo.

Solo una attenta analisi del file di log di installazione della patch,  C:\Windows\Logs\CBS\CBS.log che nel mio caso era circa 80 MB, svela l’origine del problema: manca la directory “Accessibility” nell menu-schermata Start.
Lo stesso problema si presenta anche se manca la directory “Tablet PC” oppure “System Tools“.

Per evitare il problema, dunque, verificate che esistano le seguenti directory:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessibility
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Tablet PC
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools

Se non esistono, ricreatele, riavviate il computer e lanciate nuovamente l’installazione di KB3000850.

 

Windows: come risolvere l’errore “RPC server is unavailable” per il servizio Windows Time

Mi è capitato, su di un Windows7, di non riuscire più a sincronizzare l’ora via NTP, ricevendo costantemente l’errore “RPC server is unavailable” (“Il servizio RPC non è disponibile” in italiano) sul servizio “Windows Time”.

Non ho ancora capito da cosa sia causato questo problema, tuttavia per risolverlo è sufficiente lanciare, con diritti amministrativi, in una console:

w32tm /unregister (per rimuovere il servizio malfunzionante)

seguito da

w32tm /register (per ricreare nuovamente il servizio)

Problema risolto!

 

CentOS 7: come installare VMware Workstation 10 e risolvere il problema di compilazione di “vmnet”

E’ possibile installare VMware Workstation 10 su CentOS 7, pur non essendo al momento una distribuzione supportata ufficialmente, a patto di installare un paio di package extra e smanettare un po’ con i sorgenti del modulo vmnet di VMware.

In particolare, anche se l’installazione di VMware viene completata correttamente, non è possibile avviare il programma poiché il modulo kernel “vmnet”, necessario per il funzionamento della virtual network, non viene compilato a causa di una incompatibilità tra i sorgenti di vmnet ed i sorgenti del kernel.

Per installare WMware Workstation su CentOS 7 dobbiamo (come root):

  1. aggiornare il sistema:
    yum update kernel
  2. riavviare
  3. installare i sorgenti del kernel e l’ambiente base per compilare:
    yum install gcc kernel-headers kernel-devel
  4. installare VMware

Completata l’installazione, avviando VMware partirà il task di compilazione del modulo vmnet da inserire nel kernel, ma la compilazione fallirà e verrà creato un log con i dettagli dell’errore.

A questo punto viene il bello: bisognerà editare un file dei sorgenti di vmnet per correggere un paio di errori:

  1. andare in:
    /usr/lib/vmware/modules/source
  2. scompattare l’archivio dei sorgenti di vmnet:
    tar -xvf vmnet.tar
  3. portarsi nella directory estratta:
    cd vmnet-only
  4. editare il file filter.c:
    vi filter.c
  5. alle righe 206 e 259 modificare la stringa:
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
    in
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)
  6. tornare in:
    cd /usr/lib/vmware/modules/source
  7. aggiornare l’archivio vmnet.tar con il file modificato:
    tar -uvf vmnet.tar vmnet-only

Con questa semplice modifica ora sarà possibile avviare VMware Workstation e far compilare correttamente vmnet.

 

Linux: come individuare la frequenza del kernel timer degli interrupt

Per individuare nel kernel in esecuzione la frequenza del timer degli interrupt va usato il comando:

albertoscotti@scorpius:~$ grep HZ /boot/config-`uname -r`
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_MACHZ_WDT=m

I valori che ci interessano sono quelli di CONFIG_HZ= e CONFIG_HZ_valore=, che nel mio caso sono settati a 1000.
Qualora sia presente la voce CONFIG_NO_HZ allora siamo in presenza di un kernel tickless dove la generazione degli interrupt avviene on-demand e non ad intervalli predefiniti di tempo.
Nel mio caso, essendo definito anche il valore CONFIG_NO_HZ_IDLE, ho un kernel in cui la generazione degli interrupt è mista: on-demand se il processore è idle e ogni 1000Hz se il processore è sotto carico.

 

Linux e XFS: come controllare la frammentazione del filesystem e deframmentarlo

Per gestire le partizioni XFS in Linux è necessario il pacchetto xfsprogs, mentre il pacchetto opzionale xfsdump contiene alcune preziose utility per controllare la frammentazione del filesystem e dei file.

Per verificare lo stato di frammentazione di un filesystem XFS lanciare il comando xfs_db e verificare il valore fragmentation factor:

# xfs_db -c frag -r mount_point
actual 288787, ideal 286616, fragmentation factor 0,75%

Nel mio caso il valore è molto basso, non è quindi necessario riorganizzare il filesystem.

E’ possibile controllare la frammentazione anche solo di singoli file, tramite il comando xfs_db:

# xfs_bmap -v nome_file_frammentato
nome_file_frammentato:
 EXT: FILE-OFFSET          BLOCK-RANGE          AG AG-OFFSET                 TOTAL
   0: [0..524159]:         499404728..499928887  1 (134240184..134764343)   524160
   1: [524160..2097023]:   504064368..505637231  1 (138899824..140472687)  1572864
   2: [2097024..27320671]: 542998144..568221791  1 (177833600..203057247) 25223648

In questo caso nome_file_frammentato ha 3 frammenti (extents).

Nel caso in cui invece il fragmentation factor sia consistente, io considero consistenti valori >= 20%, per deframmentare un filesystem XFS lanciare il comando:

# xfs_fsr -v -t 600 mount_point

oppure per deframmentare un singolo file:

# xfs_fsr -v nome_file_frammentato

 

Windows7: ottimizzare il sistema operativo per utilizzo in un virtualizzatore (GuestVM)

Una serie di consigli su come ottimizzare Windows7 per essere utilizzato come GuestVM: un sistema operativo ottimizzato è più veloce e responsivo, occupa meno risorse e ci permette di lavorare più efficacemente.

  • disabilitare i servizi di Windows non necessari;
  • disinstallare le funzionalità di Windows non necessarie (es. “Componenti TabletPC”);
  • utilizzare il profilo energetico “Prestazioni elevate”: sarà compito del virtualizzatore gestire gli idle-state ed il throttling della vCpu;
  • disattivare la sospensione (Sleep) del sistema operativo: non vogliamo occupare la RAM / HD del nostro host con una VM in sospensione, vero?;
  • disattivare il System Restore e cancellare i punti di ripristino: è nettamente più comodo e flessibile lavorare con le snapshot dell’intera VM, ed in caso di bisogno è molto più veloce ripristinarle;
  • disattivare tutti gli effetti grafici, regolando le impostazioni in modo da ottenere prestazioni migliori;
  • eseguire l’utility Pulitura Disco per rimuovere i file temporanei, i file di backup del Service Pack e di Windows Update;
  •  eseguire l’utility Deframmentazione Disco per consolidare e riorganizzare i file frammentati;
  • disattivare l’esecuzione automatica dell’utility Deframmentazione Disco: non vogliamo che una VM in idle inizi improvvisamente a deframmntare il disco;
  • disattivare il timestamping su filesystem dell’ultimo accesso ai file tramite fsutil con il comando:
    fsutil behavior set disablelastaccess 1
  • aumentare il valore del timeout sugli HD tramite regedit, modificando TimeOutValuea “190” (decimale) in:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk
  • aumentare la memoria della scheda video virtuale a 128MB;
  • disabilitare IPv6, a meno che non sia necessario usarlo;