[win] swap-файл под Windows

aliska12

Можно ли создать на диске отдельный раздел и заставить винду использовать его целиком, как swap?
ЗЫ: вопрос родился в

diman4ik

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

Aleksei66

С разделом работа идет быстрее, поскольку он не фрагментирован и нет файловой системы. Можно readahead нескольких страниц, например, быстрее делать.

domovoy

Лучше всего чтобы такого файла не было совсем;)

aliska12

ты конкретную последовательность действий укажи. Я понятия не имею, где в винде настраиваются подобные вещи.

diman4ik

>С разделом работа идет быстрее, поскольку он не фрагментирован и нет файловой системы. Можно readahead нескольких страниц, например, быстрее делать.
afaik винды так не умеют(раздел под своп) тока юнихи всякие...
>ты конкретную последовательность действий укажи. Я понятия не имею, где в винде настраиваются подобные вещи.
создаёшь раздел (лучше в самом начале диска)
винда какая? для ХР/2k/2k3: My Computer --> Properties (Свойства) --> закладка Дополнительно --> первая (верхняя кнопка Параметры) --> закладка Дополнительно --> нижний раздел Виртуальная память (Pagefile вроде) --> кнопка Изменить --> выбираешь там свой тот самый раздел --> ставишь отметку "Особый размер" и указываешь макс и мин. --> Кнопка "Задать" --> А на своём системном диске (С: наверно) убираешь файл подкачки (ставишь точку на "Без файла подкачки") --> Кнопка Задать. --> Кнопка ОК --> Reboot.
уфф.. доступно объяснил? если винда 98 - малясь по другому, но тоже можно найти в настройках.

Gulveig

Это не так. Головкам диска приходится мотаться от системной папки до свопа и обратно..это тормозит. Если один физический диск, то поставить своп надо на тот же раздел, что и папку с виндами...хотя имхо, пофиг, у меня своп на striped raid висит

aliska12

странно, а мне кажется, что лучше вообще разносить своп и системные файлы, к которым система постоянно обращается. Т.е. вообще своб лучше даже на отдельный диск выносить. Я не прав?

aliska12

Вполне доступно объяснил, спасибо
Еще один вопрос. Винда при каждой загрузке создает файл подкачки? Т.е. если я этот же раздел заюзаю для юниховой подкачки, после перезагрузки под винду не возникнет проблем?

aliska12

> у меня своп на striped raid висит
А расскажи вкратце что это такое, плз. Сколько у тебя дисков в raid?

marinaSV

этот же раздел у тебя заюзать не получится.
только винда или только linux swap

Gulveig

своп и временные файлы лучше выносить на отдельный Физический диск, а не на партицию на системном диске. Т.е надо 2 харда.

Gulveig

в raid 2 диска, сделано софтварно. striped- половина инфы пишется на один диск, половина на другой-полосками. В итоге получаем некоторый прирост производительности при чтении.

aliska12

Знаешь, как Станиславский говорил?
- Не верю!
ЗЫ: мне когда-то статейка попадалась на эту тему, где подобная конфигурация была реализована. К сожалению, я не смог ее найти.

aliska12

> лучше выносить на отдельный Физический диск
Я это и имел ввиду.
>striped- половина инфы пишется на один диск, половина на другой-полосками
Так это raid 0, правильно?

marinaSV


если ты хочешь и линукссвоп и виндовссвоп на одну партицию, то это возможно только если виндовс умеет создавать файлы на файловой системе lynux swap.
он этого делать не умеет. -> нельзя
другое дело, если линух умееет своп размещать на fat или fat32

marinaSV

а как софтварно рэйд сделать в винХП?

pollak

>> другое дело, если линух умееет своп размещать на fat или fat32
умеет.

buba741

>этот же раздел у тебя заюзать не получится.
>только винда или только linux swap
Неправда
Вот, например, решение: http://www.acc.umu.se/~bosse/index.html (раздел SwapFS). Причём при желании его ещё можно упростить (и с фрёй подружить).

abrek

Народ, что вы извращаетесть, я не понимаю?
fat32 - раздел только для swap-файла, при загрузке линукса делать dd, mkswap, swapon
при загрузке windows тоже наверное надо что-то делать, чтобы стереть следы постороннего вмешательства
есть ещё Linux Swap Space mini-howto, но там несколько устаревшая информация, в частности с тех пор производительность при свопинге в файл в линуксе сильно увеличилась
только чего добиваетесь такими извращениями, экономии максимум 1G на диске?

buba741

>при загрузке windows тоже наверное надо что-то делать, чтобы стереть следы постороннего вмешательства
Вот именно это оно (по большому счёту) и делает.
Но чувак, видать, расчувствовался, и сделал ещё, чтобы при этом линуксовая сигнатура не портилась. Т.е. даже mkswap при каждой загрузке в линукс делать не надо.

aliska12

>с фрёй подружить
умеешь это сделать?

buba741

P.S. И я никого не призываю этим пользоваться (и сам не пользуюсь). Просто сообщаю факт.

abrek

насколько я знаю, во freebsd раздел для свопа не имеет специального формата, поэтому с этим проблем нет
нужно только windows научить при загрузке инициализировать раздел

buba741

>насколько я знаю, во freebsd раздел для свопа не имеет специального формата, поэтому с этим проблем нет
>нужно только windows научить при загрузке инициализировать раздел
Именно. Если лень что-то придумывать самому, можно просто от вышеуказанного драйвера отрезать всё, кроме функции инициализации.

abrek

скорее, оторвать только проверку линуксовой сигнатуры, если она там вообще есть

buba741

>скорее, оторвать только проверку линуксовой сигнатуры, если она там вообще есть

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

Gulveig

а как софтварно рэйд сделать в винХП?

PQ Magic'om делаешь на своих дисках unallocated space, одинаковый по размеру. Затем коневертируешь диски в динамические (Dynamic disk далее выбираешь Создать раздел на unallocated space, говоришь, что raid и далее в зависимости от того, что тебе нужно идешь по шагам мастера.

aliska12

>Именно. Если лень что-то придумывать самому, можно просто от вышеуказанного драйвера отрезать всё, >кроме функции инициализации.
А зачем вообще это делать, если правда, что FreeBSD безразлично содержимое свопа в момент его подключения? А уже при загрузке винды эту заботу на себя возьмет драйвер.
ЗЫ: задавая вопрос, я лишь хочу убедиться, что у меня нет катастрофического непонимания сути дела и можно опробовать этот драйвер "as is". Я мельком заглянул в сорцы, испугался и теперь всячески хочу избежать кодокопания

buba741

Объясняю по пунктам.
Что делает этот драйвер:
1) [Как я уже выше писал]. При запуске проверяет, имеется ли в указанном разделе сигнатура линуксового свопа (которая располагается в начале раздела). Если нет, то дальше не работает. Зачем так? Чтобы не "мешать" линуксу (сомнительное достижение ввиду очевидной возможности делать mkswap при каждой загрузке) + защита от попытки использовать не тот раздел. Последнее, пожалуй, полезно. Например, если будешь перетыкать винты и нумерация дисков изменится, можно поиметь неприятности. Убрать проверку: вырежь место, где вызывается IsDeviceLinuxSwap, ну или просто подправь эту функцию, чтобы она всегда возвращала STATUS_SUCCESS.
2) Если всё ок, то форматит этот раздел (без куска, занятого сигнатурой) в FAT16.
3) Далее занимается тем, что фильтрует все запросы к этому разделу, поправляя их на длину этой сигнатуры. Грубо говоря, система "видит" раздел чуть меньшего размера, чем реальный, с FAT16 на нём. На этом диске и создаётся своп-файл. Таким образом, привносятся (небольшие?) накладные расходы при каждом обращении к этому диску. И от всего этого можно* с чистой совестью избавиться. Т.е. реально от этого драйвера даже не нужно, чтобы он был загружен и "работал" - достаточно дать ему выполнить п. 2) при старте системы, и всё. Для этого надо не задумывась отрезать процентов девяносто кода.**
* Но совершенно необязательно
** Мне лень щас рюхать, но по-моему, требуемые действия (т.е. поформатить раздел при старте системы) вполне можно и в userspace сделать, т.е. и драйвер нафиг не нужен - но это уже потребует конструктивных усилий.
Оставить комментарий
Имя или ник:
Комментарий: