6 votes

Partage de l'espace d'échange entre Windows et Ubuntu

Ce site Mini-HOWTO Linux Swap Space décrit comment partager l'espace d'échange entre Windows et Linux. **Ces instructions s'appliquent-elles toujours à Ubuntu en 2011 ? Comment dois-je modifier les étapes pour Ubuntu ?

Existe-t-il une meilleure approche pour partager l'espace d'échange ?

D'après le HOWTO, il semble préférable de créer une partition swap NTFS dédiée :

  • Dédié pour que le fichier d'échange soit contigu et reste non fragmenté.
  • NTFS pour que Windows et Ubuntu puissent lire/écrire dessus. (Ou est-ce que FAT32 est mieux pour cet objectif ?)

Ensuite, configurez Ubuntu pour qu'il prépare l'espace d'échange à être utilisé par Linux au démarrage et par Windows à l'arrêt.

Je veux faire un double démarrage Ubuntu et Windows 7 sur mon ordinateur portable X301. Cependant, mon ordinateur portable n'a qu'un SSD de 64 Go, et je voudrais donc conserver autant d'espace disque que possible.


mettre à jour : Il existe un autre méthode utiliser un pilote spécial pour Windows qui vous permet d'utiliser une partition swap Linux pour le stockage temporaire comme un disque RAM, mais il ne semble pas être aussi bon...

0 votes

Vous ne pouvez utiliser ni NTFS ni FAT32 pour le disque d'échange. La partition d'échange possède un système de fichiers propre appelé "swap", qui ne peut être utilisé que dans ce but particulier. Mais vous pouvez essayer d'utiliser un fichier d'échange à la place. Ce que je pourrais imaginer serait d'utiliser un fichier d'échange et de supprimer automatiquement le fichier d'échange de l'autre système d'exploitation au démarrage. Mais cela nécessiterait quelques astuces avec les scripts de démarrage, où je n'ai absolument aucune idée.

2 votes

Le lien "Linux Swap Space Mini-HOWTO" traite des versions 3.1 et 95/98. Je ne surveille pas MS très attentivement, mais peut-être que ce n'est pas vraiment à jour. D'après ce que je sais, mkswap ne fait que marquer le fichier/partition en tant qu'espace de pagination, c'est juste une mesure de sécurité pour que vous ne paginiez pas vos documents. Je n'ai aucune idée de ce que fait Windows, mais je pourrais imaginer qu'il se base sur le nom du fichier et peut-être ses attributs. Si j'étais vous, j'irais l'essayer.

1 votes

Pour mémoire, Linux peut effectivement utiliser un fichier pour Swap.

3voto

Joe the Person Points 5090

L'espace d'échange de Windows est généralement un fichier pagefile.sys stocké sur le disque. Une taille arbitraire lui est attribuée, et il ne peut utiliser plus que cette taille.

Ubuntu et Linux nécessitent une partition "swap" dédiée ou un espace swap désigné. Cependant, l'espace de pagination entre Linux et Windows n'est pas formaté correctement pour que chaque système puisse comprendre l'espace de pagination de l'autre. C'est ce qui limite la possibilité de partager l'espace swap. Cependant, il n'est pas nécessaire de partager l'espace swap. Il fonctionne sur le principe de la RAM : chaque bit de mémoire est rempli de données et alloué en fonction des besoins. Lorsque les données ne sont pas nécessaires, elles sont marquées comme pouvant être écrasées. Cela signifie qu'un autre programme peut venir et écraser la dernière zone allouée avec de nouvelles données. Ce cycle se poursuit ensuite.

2voto

psusi Points 35613

Pas possible. Le format de pagefile.sys est propriétaire et inconnu.

3 votes

Le fichier pagefile.sys n'a pas besoin d'être partagé. Windows et Ubuntu ignorent tous deux le contenu initial de leurs espaces d'échange respectifs au démarrage, de sorte que le contenu réel n'a pas besoin d'être préservé. Il suffit qu'il soit "prêt".

2 votes

@Leftium : Non, Linux recherche un en-tête de swap valide. C'est pourquoi vous devez formater une partition swap avec mkswap avant de pouvoir l'utiliser. Je suis presque sûr que Windows est similaire.

1voto

Jean Paul Points 111

Il est toujours possible d'utiliser le fichier pagefile.sys de Windows comme fichier d'échange dans Linux et ce n'est pas si compliqué après tout.

Tout d'abord, vous devez monter automatiquement votre partition Windows au démarrage. Ajoutez cette ligne à /etc/fstab :

UUID=<MY_UUID> /mnt/Windows_C auto auto 0 0

Créez ensuite un script qui formatera le fichier swap si nécessaire et le montera. Par exemple home/<username>/swap.sh :

#!/bin/bash
pagefile=/mnt/Windows_C/pagefile.sys
type=$(blkid -s TYPE -o value $pagefile)
if [[ $type != swap && $type != swsuspend ]]; then
    mkswap $pagefile
fi
swapon $pagefile

Rendez le script exécutable et créez un service pour le lancer après le montage de la partition Windows : créez le fichier /etc/systemd/system/swap.service contenant

[Unit]
Description=Use Windows swap file
After=local-fs.target

[Service]
Type=simple
ExecStart=/home/<username>/swap.sh

[Install]
WantedBy=multi-user.target

Démarrez le service pour vérifier qu'il fonctionne :

sudo systemctl start swap

Si le script fonctionne, la commande swapon devrait retourner quelque chose comme :

NAME                        TYPE SIZE USED PRIO
/mnt/Windows_C/pagefile.sys file 8,5G   0B   -2

Si ce n'est pas le cas, essayez de faire systemctl status swap.service pour voir ce qui s'est passé.

Si tout s'est bien passé, vous pouvez activer le service :

sudo systemctl enable swap

Maintenant, vous avez presque terminé. Si vous voulez éviter certains avertissements de permissions non sécurisées sur pagefile.sys, vous devez mettre en place un mappage de permissions entre Windows et Linux.

Pour ce faire, démontez la partition Windows puis générez un fichier de mappage utilisateur :

sudo ntfsusermap /dev/disk/by-uuid/<UUID>

Remontez la partition et déplacez le fichier de mappage utilisateur dans un nouveau dossier nommé .NTFS-3G :

sudo mkdir /mnt/Windows_C/.NTFS-3G
sudo mv UserMapping /mnt/Windows_C/.NTFS-3G/

D'après ce que j'ai vu, vous n'avez rien à faire du côté de Windows, le reformatage de pagefile.sys est automatique au démarrage.

https://linuxize.com/post/create-a-linux-swap-file/

Exécuter script après fstab

Comment utiliser 'chmod' sur une partition NTFS (ou FAT32) ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X