Condividere lo spazio di swap tra Linux e Windows
Ho installato una bellissima SSD da 120 GB sul mio portatile. Come al solito ho una sistema un dual boot Windows (ora Seven) e Linux (ora Mint XFCE). Mi sono chiesto: sia Linux che Windows vogliono uno spazio di swap… Ma è possibile che non si possa usare lo stesso spazio anziché sprecarne di prezioso sulla SSD?
Dopo qualche ricerca infruttuosa mi sono imbattuto in questo splendido trucchetto: http://ubuntuforums.org/showthread.php?t=245393, che condivido (e traduco) sperando possa servire a qualcuno.
Si tratta, come capirete a breve, di usare la partizione di swap di Linux anche per il pagefile di Windows.
Quindi procedete con la vostra canonica installazione dual boot, avendo cura solamente che l’area di swap di Linux sia una partizione “fisica” e non all’interno di un volume LVM.
Ora avviate Windows, scaricate da http://www.acc.umu.se/~bosse/ il file SwapFs-3.0.zip (mirror).
Prima procedere dobbiamo capire dove si trova la partizione di swap secondo Windows.
Anche in questo caso mi sono rifatto ad un commento dell’articolo originale.
Apriamo un bel prompt dei comandi e digitiamo:
C:\>diskpart
Ora vediamo i dischi presenti:
DISKPART> list disk
N. disco Stato Dimensioni Disponibile Din GPT
——– ————- ————- ————- — —
Disco 0 Online 298 Gbytes 3602 Mbytes
Disco 1 Online 111 Gbytes 1024 Kbytes
Nel mio caso la SSD è il secondo disco (disco 1 dato che si parte da 0 a contare), quindi:
DISKPART> select disk 1
Il disco attualmente selezionato è il disco 1.
DISKPART> list partition
Partizione ### Tipo Dim. Offset
————— —————- ——- ——-
Partizione 1 Primario 53 Gb 32 Kb
Partizione 2 Primario 53 Gb 53 Gb
Partizione 3 Primario 4096 Mb 107 Gb
Eccola lì, 4096MB, i miei 4GB di swap (il portatile ha 2GB di RAM).
Quindi mi annoto disco 1, partizione 3.
Ora apriamo il file swapfs.reg e adeguiamolo alle nostre necessità:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwapFs]
“ErrorControl”=dword:00000001
“Group”=”Filter”
#
# When to start the driver:
# At boot: Start=1
# Manually: Start=3
#
“Start”=dword:00000001
“Type”=dword:00000001
#
# (/dev/hda1 in Linux = \Device\Harddisk0\Partition1 in NT, an extended
# partition is skipped in the enumeration)
#
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwapFs\Parameters]
“SwapDevice”=”\Device\Harddisk1\Partition3”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
“S:”=”\Device\Harddisk1\Partition3”
Infine, ma non meno importante, copiamo il driver (swapfs.sys) in “%systemroot%\system32\drivers\”.
Al riavvio noteremo la presenza di una unità S: (che come vedete dalla figura, non corrisponde a nessuna partizione Windows) che sembra fatta apposta per noi… anzi lo è!
Nel mio caso ho abilitato la gestione automatica del file di swap solo su S: e ho creato un file di dimensione fissa 200MB che ho lasciato su C:.
Questo perché Windows si premura di farmi sapere che con senza un file di almeno 200MB su C: potrebbe non essere possibile reperire le informazioni di debug in caso di problemi.
Vero o no, 200MB sono un sacrificio che posso affrontare.
Un altro riavvio e… abbiamo liberato 4GB!
ATTENZIONE: la partizione S: lavora un po’ come un ramdisk ed il suo contenuto va perso allo spegnimento, quindi usiamola solo per il file di paging!!!