Как ОС Windows, так и ОС Linux используют так
называемую подкачку, чтобы восполнить
нехватку оперативной памяти. Когда
компьютер выключен, область подкачки
содержит ненужные данные и любой ОС не
важно, что в действительности находится в
области подкачки. Вопрос состоит в
следующем: поскольку в один момент времени
работает только одна из ОС, возможно ли,
чтобы Windows и Linux использовали одну и ту же
область на диске для подкачки. Некоторая
сложность состоит в том, что Windows использует
для подкачки файл, а Linux — для этих же целей
раздел на диске. (Конечно, и в Linux возможно
использовать для подкачки файл, но этого
делать не рекомендуется). Если попытаться
выделить отдельный раздел для подкачки и
разместить там файл подкачки Windows, а затем
запустить Linux, которая будет использовать
тот же раздел для тех же целей, то будет
перезаписан загрузочный сектор, FAT и другие
таблицы, и при загрузке Windows эта ОС, потеряв
файл подкачки на этом разделе, не долго
думая создаст его на своем загрузочном
диске.

Поэтому для решения этой задачи нам
необходимо сохранять важные с точки зрения
Windows данные с начала раздела подкачки в
каком-нибудь файле, находящемся в разделе
Linux. А при каждом запуске Linux надо будет
проверить, кем в последний раз
использовалась область подкачки — Linux или
Windows. Если это был Linux, то просто разрешается
подкачка, в противном случае надо будет
сохранить служебные данные с начала
раздела в файле, создать раздел подкачки на
диске командой mkswap /dev/winswap и затем разрешать
подкачку. И теперь мы готовы настроить
систему на использование общей области
подкачки. Правда, стоит отметить, что при
современных объемах винчестера это не
столь актуально, но придает некую
завершенность совместному размещению Windows
и Linux на одном винчестере вашего компьютера.

Процедура на самом деле не сложна и
требует выполнения следующих шагов:

1) Загружаемся в Linux, отключаем файл
подкачки, отредактировав файл /etc/fstab (закомментировав
все строки, которые его описывают).

2) Перезагружаемся в Windows и форматируем
раздел, на котором будут находиться файлы
подкачки Windows и раздел подкачки Linux в FAT16.

3) В Windows устанавливаем файл подкачки
фиксированного размера на этот раздел.

4) Поскольку содержимое файла подкачки
неважно, достаточно сохранить загрузочный
сектор, сектора с FAT и корневой каталог, так
называемые специальные сектора. Количество
секторов, которые надо сохранить
определяется по формуле:

T = r + (s * f) + (d / 16)

где:
r — Reserved Sectors
f — Number of FATs
s — Sectors per FAT
d — Root entries

В нашем случае:
T = 1 + (251 * 2) + 512 / 16 = 535

Значения, используемые в формуле можно
получить, используя любой дисковый
редактор. Главное, чтобы он мог видеть все
пространство вашего диска. Можно
воспользоваться DiskEdit из пакета Norton Utilities 2002
или штатным дисковым редактором Win’2k — Disk Probe,
для чего нужно с дистрибутива Windows из папки
Support\Tools установить дополнительные
инструменты, в том числе установится и Disk
Probe. Подойдет и утилита PartitionInfo из пакета Partition
Magic
, для вызова которой надо загрузить
пакет Partition Magic, выделить раздел, нажать
правую кнопку мыши и выбрать
соответствующий пункт контекстного меню Info,
а в открывшемся окне выбрать вкладку — FAT Info.
Я воспользовался двумя последними
программами.

5) Определим точный размер раздела
подкачки, воспользовавшись одним из
дисковых редакторов. Если ваш выбор — Disk Probe,
то значение поля Large sectors умножьте на
значение поля Bytes per sector, то есть 256977 * 512 =
131572224 Byte. Или же воспользовавшись утилитой
PartitionInfo из пакета Partition Magic на вкладке Partition
Info найдите значение Total physical sectors 256977 и
умножьте его на своеобразный стандарт для
жестких дисков — 512 Byte и получите тоже
значение, что и при использовании Disk Probe —
131572224 Byte. Я показываю использование двух
разных инструментов в связи с
ответственностью этих вычислений и
исключения возможных ошибок.

6) Перезагружаемся в DOS и удаляем каталог
RECYCLED, конечно он при загрузке Windows появится
снова, но это будет уже не важно.

7) Загружаемся в Linux, и входим в него как root.

8) При необходимости, используйте команду
fdisk, чтобы узнать название раздела и его
размер в блоках (в моем случае hda5 и размер
256977 блоков).

9) Поскольку название этого раздела может
попасть в конфигурационные файлы в разных
местах, создаем символьную ссылку /dev/winswap,
указывающую на этот раздел, следующей
командой:
 
# ln -s /dev/hda7 /dev/winswap 

10) Для создания копии специальных секторов
в сжатом виде в файле /etc/winswap.gz в приглашении
командной строки наберите:

# dd if=/dev/winswap bs=512 count=T | gzip -9 > /etc/winswap.gz

где T — число так называемых специальных
секторов (в нашем случае 535), вычисленных в п.4).

11) Подготовим два отдельных файла, под
названиями swapinit.sh и swaphalt.sh. Примеры этих
файлов, которые будет работать в Red Hat Linux,
даны в приложении. Поместите эти файлы в
каталог /etc/rc.d/init.d Проставьте им флаг "исполняемых"
командами: 
# chmod +x swapinit.sh
# chmod +x swaphalt.sh

Оставить мнение

Check Also

А ты знал? 10 фактов о Python

Python — язык программирования с достаточно низким порогом вхождения, поэтому его часто вы…