Last modified: May 10, 2008
© Sergey A. Galin, 2003
Каждый имеет право воспроизводить, распространять и/или вносить изменения в настоящий Документ в
соответствии с условиями GNU Free Documentation License, Версией 1.1 или любой более поздней версией,
опубликованной Free Software Foundation.
Ревизии документа: 0.1/2003.04.26; 0.2/2004.04.02
Вопрос об использовании одного и того же пространства для подкачки Linux и Windows возникает нередко. Не так уж редко у "настольных" пользователей Linux на одном компьютере стоит несколько современных операционных систем (например, Linux для работы и Windows для игр), и каждой из этих систем нужно место для виртуальной памяти. Нормальный объем виртуальной памяти, которого хватит практически на все случаи жизни, составляет 500Мб - 1Гб. Учтем тот факт, что Windows работает быстрее, если размер свопа постоянен, а Linux вообще любит свопить на отдельный дисковый раздел. Итого - до 2Гб диского пространства уходят на разделы и файлы подкачки! Хотя на современных жестких дисках обычно достаточно места, но некоторые пользователи не очень рады жертовать столько дискового пространства.
После прочтения статьи "Общий файл подкачки для Windows и Linux" в рассылке "Linux Info" (кстати, эта же статья проскакивала еще где-то, кажется, в "Linux Gazette"), в которой предлагалось выделить под своп раздел, автоматически переформатируемый то под FAT16 для подкачки Windows, то под Linux Swap, у меня возник вопрос: а зачем все эти навороты нужны? Ведь есть же значительно более простой способ!
Во-первых, нужен раздел диска, на котором будет своп. Лучше всего, если это будет отдельный раздел, не использующийся ни для чего другого, отформатированный под FAT16. Для большинства систем достаточный размер будет 256Мб, но если вы работаете с большими программами, то сделайте его размером хотя бы 512Мб, а лучше - 1Гб. Этот раздел должен быть расположен достаточно близко к началу диска, то есть, быть одним из первых на нем. Далее я подразумеваю, что вы создали раздел чуть больше 1Гб (1Гб свободного места и несколько Мб под системные области), а сам раздел имеет имя D: под Windows и /dev/hda3 под Linux.
Под Windows настраиваем своп (aka объем виртуальной памяти) фиксированного размера, например, 1Гб. Идем в Настройки Системы - Быстродействие - Файл подкачки. Ставим размер файла подкачки от 1024Мб до 1024Мб, расположение - на диске D:. Применяем, при необходимости перезагружаем компьютер. Теперь область подкачки Windows будет находиться D:\Win386.swp (если у вас Windows 9x) либо D:\pagefile.sys (если у вас Windows NT/2000/XP...) (Далее по тексту я подразумеваю, что файл называется pagefile.sys.) Теперь перезагружаемся в Linux.
Под Linux, прописываем раздел /dev/hda3 в fstab примерно такой строкой:
/dev/hda3 /mnt/swapdisk vfat quiet,umask=0777 0 0
Не забудьте создать точку монтирования - каталог /mnt/swapdisk. Я указал в параметре umask значение 0777, что означает - никто, кроме root не будет иметь возможности читать своп-диск. Это важный элемент безопасности, так как Linux не умеет выставлять права на доступ к файлам на FAT по отдельности.
Под root, пишем такие команды в конец /etc/rc.d/rc.local:
# Команду dd можно и не писать, если Windows работает прилежно и # держит постоянный размер свопа, или, по крайней мере, не уменьшает # его меньше требуемого Линуксом размера: # dd if=/dev/zero of=/mnt/swapdisk/pagefile.sys bs=1024 count=1024000 mkswap /mnt/swapdisk/pagefile.sys swapon /mnt/swapdisk/pagefile.sys
После этого выполняем все те же команды mkswap, swapon из командной строки либо просто перезагружаем компьютер.
После перевода Linux на новый своп нужно отключить старый (командой swapoff) и удалить описание старого свопа из fstab, а освободившийся дисковый раздел отформатировать и присоединить к файловой системе. Если у вас достаточно оперативной памяти, можно лишить Linux обычного свопа и до операции, а потом отформатировать своп-раздел как FAT и его и использовать в качестве общего FAT-свопа.
Примечание: если у вас возникнут проблемы с выполнением какой-либо операции, обратитесь к документации на соответсвующую операционную систему, или в какой-нибудь соответствующий форум.
| © Sergey A. Galin, 1998-2009 | http://sageshome.net/enotes/howto/linux-...>> Time: 0.009s · LinWinSwap: 5848/6054 Total: 1060139/1253196 |