IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Больше места или сделаем swap общим...

Как сэкономить дисковое пространство, путем использования общего раздела подкачки различными операционными системами.

Андрей Клепча

В этой статье я хочу поделиться опытом более удобного (на мой взгляд по крайней мере) использования места на диске под swap на системах с установленными Linux и Windows. Идея не нова - на каком-то из старых дистрибутивов Linux'а (вроде это был дистрибутив Caldera или RedHat) в Linux-HOWTO описывалось нечто подобное, правда по-английски :).

Для работы и для большей части развлечений я использую Linux, но когда появляется потребность запустить игрушку, использующую OpenGL, или посмотреть фильм... Именно тогда я начинаю стучать в барабаны, жечь ритуальные костры, протыкать иголкой тряпичные фигурки и слать смертельные проклятья как в адрес самой корпорации Intel так и ее видеокарты Intel 740 (самый обычный образчик которой есть и у меня). Наступает время Windows 9x... т.к. под Windows 2000 нормальных драйверов под Intel тоже нет. Впрочем это к делу не относится, а всего лишь объясняет зачем мне понадобилась Windows (кстати, может кто-нибудь подскажет мне другой выход из ситуации, когда нет нормальных (OpenGL, DGA2, DRI) драйверов под Linux для Intel 740?).

Но, довольно обсуждения объективных причин, заставляющих людей держать две операционки на диске - этих причин могут быть тысячи. Займемся тем, чтобы сделать эту ситуацию чуть менее болезненной с точки зрения расходования драгоценного места на жестком диске, который и так уже трещит по швам.

Мне давно не давало покоя сознание того, что впустую расходуется мегабайт 150 - 200 под Linux'овый swap-раздел когда я загружаю Windows, и примерно столько же когда работает Linux, а на разделе FAT лежит жирный pagefile.sys (это в случае Windows NT, если же вы используете Win9x, то роль 'жирного' выполняет win386.swp). Идея напрашивалась сама собой - сделать так, чтобы две (или больше, если вы большой выдумщик) операционки использовали под swap один и тот же раздел на диске. Итак начинаем.

Пусть у нас имеется жесткий диск с разбиением следующей конфигурации:

Disk /dev/hda: 255 heads, 63 sectors, 1216 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 117 939771 b Win95 FAT32
/dev/hda2 118 955 6731235 5 Extended
/dev/hda3 * 956 1216 2096482+ 83 Linux
/dev/hda5 118 955 6731172 b Win95 FAT32
/dev/hda6 923 955 265041 82 Linux swap

Мы видим следующие разделы:

  • Основной раздел DOS с файловой системой FAT32 размером в 917.74М (надеюсь все помнят, что 917.74М это вовсе не 917740К, а 939771К, т.е. 917.74*1024, ведь 1М = 1024К, а 1К = 1024 байт) [/dev/hda1];
  • Дополнительный раздел DOS (размером, как вы уже догадались 6731235К / 1024 = 6573.47М / 1024 = 6.41G) [/dev/hda2]. В дополнительном разделе определены:
  • досовский диск FAT32 (диск D:) [/dev/hda5] и
  • раздел для свопа Linux [/dev/hda6].
  • Раздел Linux [/dev/hda3].

Немного слов о том, почему разделы нумеруются именно таким образом. На диске может быть до четырех первичных разделов (primary partition). Эти разделы получают номера от единицы до четверки. Остальные разделы могут создаваться в разделе Extended и являются логическими (logical). Они получают номера начиная с пятерки.

Теперь, когда мы прояснили имеющуюся ситуацию с разделами на нашем диске, мы можем начинать что-либо планировать более целенаправленно.

Дам небольшую наводку. Linux может использовать как своп очень много чего. В принципе даже на дискете можно попробовать сделать swap ;). Windows же умеет только файл подкачки. Правда, о чудо! (и в этом наше счастье) может размещать его на различных дисках. Значит все наше шаманство будет осуществляться средствами Linux, а продукту Самой Доброжелательной Компании в Мире мы просто сообщим куда (следует читать 'на какой диск') положить этот самый злополучный файл.

Если вы еще не догадались, то теперь настало время раскрыть стратегию этого замысла. Раздел /dev/hda6 должен быть логическим диском DOS, _полностью_ (это ВАЖНО) отдаваемым под swap файл windows. Ни в коем случае не размещайте на нем какие-либо другие файлы кроме файлов подкачки. Размещать там что-либо еще нельзя, потому как Linux будет использовать этот же раздел, как свой swap, а следовательно данные будут потеряны.

Вот какие операции должны выполняться для реализации задуманной нами схемы:

1. Задачи Linux:

  • Создать swap на разделе, который для этого выделен;
  • Подключить только что созданный swap;
  • Работать;
  • При получении команды на перезагрузку или выключение питания сделать раздел, используемый под swap, обычным диском DOS;
  • Остановить работу компьютера или перезагрузить его.

2. Задачи Windows:

  • Создать win386.swp на диске, созданном на этапе 1.г;
  • Работать;
  • При получении команды на перезагрузку или выключение питания завершить работу или повиснуть :).

Теперь займемся реализацией.

Прежде всего нужно отключить swap раздел Linux'а (я предполагаю, что именно это место на диске мы хотим сделать общим для свопа Windows и Linux). Для этого скажем 'cat /proc/swaps' и далее 'swapoff $device', где $device - имя раздела, который у вас используется как swap раздел (это имя будет написано в выводе предыдущей команды в графе Filename).

 

 

Дальше>>

 

Источник - SoftТерра, http://www.softerra.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com