Установка windows xp в оперативную память
Часть этой памяти можно использовать для организации виртуального RAM-диска, чтобы разместить на нем всякие там кэши, папки TEMP и TMP, Temporary Internet Files от браузера и т.п., что я уже сделал и что уже позволяет очень заметно ускорить работу машины в целом, серфинг по И-нету и т.д.
Однако, это лишь частичное решение более общей кардинальной задачи, полного ответа на которую я (пока) не знаю: как расположить ВСЮ операционку Windows ХР, вместе СО ВСЕМИ установленными в ней программами, настройками и т.п. на таком виртуальном диске?
Казалось бы, технические предпосылки существования такого решения имеются: к примеру, после всех оптимизаций и "причесывания" ХР со всеми нужными мне программами занимает у меня на диске С:\ всего 3.42 Гб. Т.е. вполне можно было бы создать RAM-диск размером порядка 4 Гб, расположить на нем абсолютно ВСЕ файлы, относящееся к системе и установленному софту, и еще после этого останется около 4 Гб свободной оперативной памяти для функционирования в ней Windows. Но как это сделать.
Почему я к этому стремлюсь, какие преимущества можно ожидать, если на самом деле удастся это сделать (на ХР, или на 7):
1. Скорость работы машины. Должна быть очень впечатлительной, "летать".
2. Удлинение времени жизни (ресурса) работы жесткого диска, где до этого была расположена система. Потому что по ходу функционирования Винда обращается к жесткому диску ну уж очень активно и агрессивно. А так все эти обращения уйдут на виртуальный диск.
3. Некие новые, неожиданные аспекты (кому это надо и интересно), в частности, очень высокая степень секюрити. С выключением компа все, что было на виртуальном диске в оперативной памяти компа, исчезает бесследно. Все логи, History, Temporary files и т.д. все стирается в высшей степени "качественно" и полно.
4. Если продумать нюансы, то при желании нет необходимости в антивирусе. Даже если схватишь заразу, то при следующем запуске и восстановлении системы из предварительно записанного "чистого" образа (см. далее) все вернется на круги своя, к незараженной операционке.
Предполагаемые "минусы" от этой затеи:
1. Комп будет загружться (и выключаться) дольше обычного. Полагаю, что-то порядка 3-4 мин или около того.
2. Возможно, к компу будет нужен (или желателен) источник бесперебойного питания. Потому как стоит хотя бы на малую долю секунды исчезнуть напряжению, и все текущие данные будут потеряны. Но это в какой-то степени спорный вопрос - на обычном компе в аналогичной ситуации с потерей напряжения информация тоже будет потеряна.
Самые общие соображения, КАК это можно было бы реализовать:
1. Должен быть некий драйвер, при включении компа заранее создающий виртуальный диск заданного размера. Так, чтобы стартующая впоследствии система восприняла этот RAM-диск за "нормальное обычное железо".
2. На этот заранее созданный RAM-диск из файла-образа системы, хранимого где-то на жестком диске, копируется уже полностью настроенная под конкретно это железо Винда с уже установленными на нее нужными мне программами. Как раз на этот процесс копирования-восстановления и будут уходить те 3 мин при "долгой" загрузке. Кстати, этот образ системы, хранимый на диске, вероятно может быть и в зашифрованном виде, с распаковкой "на лету".
3. Далее - самое сложная и самая "хитрая" часть. Стартующая система должна распознать RAM-диск как системный, найти на нем загрузчик ntldr, установленную Винду, и начать загружаться именно с этого виртуального диска. Ну и все. Далее - работа ХР "как обычно", т.е. RAM-диск для нее становится тем же, чем сейчас является жесткий диск С:\
4. Перед выключением Винды, а также возможно и до этого периодически с заданным интервалом, скажем, раз в 3 часа, делается образ текущего состояния системы и сохраняется на жестком диске. Потом, при загрузке, с этого образа (п.2) система будет восстанавливаться. На создание\запись образа на жесткий диск уходят те 3 мин, на которые удлиняется обычное выключение компа.
Вот мои самые общие соображения на данную тему. Но как это реализовать по жизни - вот в чем главный вопрос. Наверняка я не первый, у кого такой вопрос возник, и должны были быть предприняты попытки найти решение. Но где они, и удалось ли кому-нибудь сделать такую Винду, стартующую с RAM-диска? Не с RAM-диска в процессе установки или развертывания системы на комп (типа системы-реаниматоры), а речь об именно уже заранее полностью настроенной конкретно под данное железо системы, фактически ее копирование из образа на с RAM-диск и старт с него же. По крайней мере на Ру-Борде найти ответа я не смог..
Вот специально поинтересовался.
Не говоря уже о весьма кусачей их стоимости (предполжим, что устраивает), но у SSD действительно ограничено число циклов чтение-запись. Время жизни составляет порядка 300-500 тыс. циклов.
Кроме того, "меньшая скорость записи . в силу конструктивных особенностей флэш-памяти, допускает стирание только достаточно большими блоками, что очень сильно снижает скорость случайной записи, и в меньшей степени - последовательной".
Разумеется, для них типична также "большая уязвимость к ряду негативных факторов, включая внезапное отключение питания, магнитные поля и статическое электричество"
В случае RAM-диска внезапное отключение питания по крайней мере не вызывает разрушение самих микросхем памяти. Включил - и все снова есть.
Я думаю это можно реализовать средствами Grub4Dos
Установить его в MBR жесткого диска (или даже на флешку для безопасности)(это решает проблему с загрузкой из БИОСа)
Потом Граб создает РАМ-диск (он это умеет) и монтирует в него ISO образ системы. (Исошка типа ЛайвСД - настроенная винда с кучей софта)
Вариант второй:
Граб создает РАМ-диск, запускает в нем напр., Acronis, GHOST или любую другую систему резервного копирования (лучше систему с поддержкой командной строки, в которой будет прописано распаковать образ заранее подготовленной системы)
спасибо за комментарий, и за наводки.
Оно совпадает с теми мыслями, что есть у меня.
Да, я предполагал, что синхронизация образа диска с его текущем состоянием это непростой момент. Все упирается в наличие\отсутствие подходящего инструмента. Но это уже вторая, более далекая часть общей обрисованой картины. Вполне возможно, что среди многчисленных существующих вариантов Sync'ов найдется подходящий, с такой функцией. Либо тот же Акронис, который умеет делать образ прямо из этой же загруженой системы, а не только из внешней. На худой конец, т.е. как частичное решение общей задачи, можно остановиться и на воспроизведении каждый раз системы из одного и того же "чистого" образа, и попутно отказаться от антивируса. А что касается сохранения наработаной за день информации, то даже сейчас, когда система расположена на С:\, мой браузер хранит его History и Bookmarks на другом диске. Так же можно организовать и в случае постоянного неизменяемого образа системы.
А вот что касается "первой", основной части задачи - собственно загрузке из РАМ-диска - да, я полагал, что тут можно применить Grub4Dos в комбинации с FiraDisk (взятого как раз с greenflash.su). Но решение показалось тяжелым, непростым в реализации. Особенно "смутила" необходимость перекроить реестр в уже записанном образе подготовленной к старту системы, чтобы назначить виртуальному диску букву С:\, ну и прочие связанные с этой же целью манипуляции..
Всё! Больше ничего делать не нужно.
После этого можем с помощью grub4dos загружать .vhd в память и грузиться с него. Когда нужно внести изменения - загружаемся родным способом через загрузчик семерки.
Если кому-то интересно или есть вопросы - пишите.
Добавлено:
если файл подкачки расположен на рам диске обращение к диску будет крайне редким событием.
Добавлено:
акронис насколько я понмю с рам диском конфликтует. если создать рам диск и запустить акронис компьютер перезагрузится
Добавлено:
загрузись с диска с BartPE и если ты даже вообше отключишь винт, и вытащишь сд из привода - то есть вся винда у тебя точно будет в оперативе, никакого особого ускорения ты не заметишь. естсетвенно винда написана так что вся в оперативу не лезет, но все что надо там в оперативе сидит. так что овчинка выделки не стоит.
если ты укажешь размер файла подкачки в 4 гига у тебя уже и так вся винда туда влезет.
Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?
Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.
Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.
Поиски привели на этот сайт: Patch Vista’s Kernel to Address more than 4 GB of Memory
Статья посвящена разблокировке Windows Vista, зато в комментариях, пара человек описывает аналогичный способ для Windows XP. Я решил последовать их советам и опробовать эту методику на практике.
Для начала нужен дистрибутив Windows XP SP1. Возможно, подойдёт и просто первый сервиспак, не знаю, у меня его нет. В общем-то, там нужен только один файл. А именно файл библиотеки Hardware Abstraction Layer. Начиная со второго сервиспака эта библиотека работает с PAE «фиктивно», т.е. даже если режим расширенной трансляции адресов включён – он ничего не делает и не выходит за пределы четырёх гигабайт. А вот библиотека от первого сервиспака работает полноценно и может адресоваться ко всей доступной памяти, аналогично тому, как работает с памятью 32-битный Windows Server. В установленной Windows XP данный файл называется hal.dll, но в дистрибутиве имеется несколько HAL-файлов, и только один из них инсталлируется в систему под именем hal.dll в процессе установки. Необходимо было узнать, какой из файлов нужно использовать на моём конкретном оборудовании. Делается это просто, надо вызвать Свойства в контекстном меню проводника на файле hal.dll в установленной Windows. Файл находится в папке %systemroot%\system32, и вот что я увидел:
В дистрибутиве Windows XP SP1 в папке I386, я взял файл HALMACPI.DL_. Это архив, в котором находится один файл, искомый мной halmacpi.dll. Я его извлёк WinRAR’ом, но можно обойтись и командной строкой:
expand HALMACPI.DL_ HALMACPI.DLL
Полученный файл надо поместить в папку %systemroot%\system32, что я и сделал. Хочу ещё раз обратить внимание, что если кто-то захочет повторить мои шаги, файл надо брать с именем, указанном в свойстве «Исходное имя файла» в свойствах hal.dll из установленной Windows XP.
- ntoskrnl.exe — однопроцессорное ядро Windows.
- ntkrnlmp.exe— многопроцессорное ядро Windows.
- ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
- ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
- BB 00 00 10 00 33 FF 6A 07 8B F0 и заменить её на
- BB 00 00 40 00 33 FF 6A 07 8B F0
Теперь осталось отредактировать boot.ini. Нужно скопировать имеющуюся строчку и дописать пару параметров. У меня была строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN
Я добавил в неё /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE и в результате получилось:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU 16Gb» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE
Теперь есть возможность загружаться как в стандартный Windows с присущим ему ограничением на память, так и в пропатченный, так как я не заменял ни одного системного файла, а только добавил два, которые включаются в работу с помощью вышеописанных параметров boot.ini
Ребут!
И… BSOD.
В принципе, такое может быть. Как следует из обзора истории проблемы на ixbt причиной, по которой Microsoft отключила адресацию верхней памяти, было существование кривых драйверов под различное оборудование, кривизна которых, впрочем, проявлялась только в полноценном режиме PAE. Вполне вероятно, у меня сбоит один из них, за 6 лет в системе накопилось много всего, но какой? Пробую запуститься в безопасном режиме, и УРА! Вот они, мои гигабайты:
В наш век мы все любим скорость. Мы любим быстрый транспорт, быстрые службы доставки, скоростной интернет. И, разумеется, быстрые компьютеры. У нас есть шестое чувство, которым мы детектируем милли/микросекундные задержки. Частенько появляется желание что-нибудь да разогнать.
Но что же разгонять? Что тормозит нам работу и создает дискомфорт? Наши процессоры работают на многогигагерцовых частотах, гоняют электроны на релятивистских скоростях. Не отстают от них и память с шинами передачи данных. Но как только дело касается периферии… здесь притаился неторопливый макромир. Это не электронами жонглировать. Будьте добры дождаться, пока диск в DVD-приводе раскрутится, пока придет очередной байт из порта ввода/вывода, пока HDD подведет свою считывающую головку в нужное место пластины. Ну ладно, DVD и COMпортами мы пользуемся нечасто(если вообще пользуемся), а вот HDD… У нас на нем все-таки ОС лежит, а в ней многие тысячи файлов, и кто знает, в какой момент они могут понадобиться. То лог записать, то dll подгрузить, то шрифт, то реестр, то еще что-то. А на некоторых HDD множество одновременных обращений может приводить к хабраэффектусущественному падению скорости работы — наблюдаю такое на своих WD Green.
Казалось бы, тут нам должны помочь команда славных защитников вселенной по имени Файловый Кэш, Prefetch, Superfetch, и их помощник ReadyBoost. Да, они помогают, но частенько бывает, что и промахиваются — и тогда приходится наблюдать курсор ожидания.
Но что это? Я слышу в зале шум, там скандируют — SSD! SSD! Что тут сказать, SSD — однозначно круто. 200-300мб/с и даже выше, практически мгновенный доступ, никакого шума… ну просто чудеса. Но про SSD и так написана куча тем, а раз уж разгонять… может, есть чего побыстрее? Хм. Есть у нас что-нибудь быстрее флеш-памяти в SSD? SSD подороже? Raid0 из SSD? А еще быстрее? RevoDrive? О! DDR3! (Кто там крикнул «L1 cache»? Юморист!)
Мы знаем про RAM-диски, иногда используем их как временное хранилище — чтоб быстрей работало. Так что если взять да и переместить всю систему в RAM? Должно работать намного быстрее любого SSD, и уж подавно быстрее HDD, не так ли? Или файловый кэш и так должен давать нам похожий эффект? Возможно, разницы и не будет заметно. Ну так почему бы не попробовать? В моем компьютере 16 гб ОЗУ, хватает на все и еще остается. Неплохо бы задействовать то самое оставшееся. Поехали!
0) Чеклист:
— 16 гб RAM, или больше. Хотя можно попробовать и на 8. А вот 4 хватит разве что для XP.
— Grub4Dos
— Wincontig
— BootIce
— Partition Wizard или что-то подобное для клонирования разделов,
— драйвер Firadisk
— дистрибутив Windows x64 (можно и x86, но свободной памяти будет не более 3.5гб). Я проверял на WinXP(x86), Win7, Win8. Весьма желательны «облегченные» версии, ведь память ОЗУ не резиновая.
— установленная и работающая Win7 (или Win8)
1) Внимание! если у вас несколько жестких дисков — во избежание проблем делайте все последующее на HDD, отличном от системного. Системный вообще лучше не трогать и по возможности отключить, а Win7 установить для опытов на другой диск. Мне не известна ваша конфигурация, какие-то действия могут поломать вам загрузку. Неплохо бы предварительно запастись восстановительным LiveCD/USB, или хотя бы установочным диском Windows а также хотя бы примерно понимать, что делаете и как вернуть все назад. Для уверенности можно сначала провести опыт на виртуальной машине.
Сначала немного теории. Grub4Dos — это менеджер загрузки, для организации мультизагрузочных систем. Среди всего прочего — может создавать виртуальные устройства и работать с ними так же как и с обычными дисками. Виртуальный диск может быть смонтирован на файл, или же в память. При монтировании в память содержимое файла-источника копируется в память и дальнейшая работа ведется уже оттуда. Как источник можно использовать файлы .ima (образы дискет), .iso (образы CD/DVD) а также .img (RAW образы HDD). Родные для Win7 файлы .vhd (фиксированного размера, не динамические и не дифференциальные) представляют собой те же .img, но с небольшим заголовком и их тоже можно подключать.
Созданные при помощи Grub4Dos виртуальные диски доступны в реальном режиме. Windows же увидит их только при наличии специального драйвера. Такие драйверы существуют — это Firadisk (работает с дисками в памяти) и WinVBlock (работает с образами в файлах). При наличии в ОС нужного драйвера она сможет работать с дисками, созданными в Grub4Dos. К сожалению, драйверы не подписаны и для их работы в x64 системе нужно отключить проверку подписей драйверов. Таким образом, ход действий: готовим VHD с установленной Windows, где отключаем проверку подписей, устанавливаем Firadisk, затем подгружаем VHD еще до загрузки Windows через Grub4Dos и вперед.
Сначала установим на нашу машину Grub4dos. Запускаем BootIce, выбираем диск, с которого будем грузиться, ставим Grub4dos в MBR, кладем в корень любого раздела файлы grldr и menu.lst.
В menu.lst пишем:
Команда «find --set-root» выполняет поиск указанного файла и делает первый раздел, где этот файл был найден, текущим. Поэтому проверьте, не лежат ли у вас лишние файлы bootmgr на других разделах. Если вам известно, что системный диск — это hd0, можно написать прямо — chainloader (hd0,0)/bootmgr
Далее через управление компьютером-управление дисковыми устройствами создаем в корне нашего рабочего раздела файл VHD фиксированного размера гигабайт этак на 10 (можно и больше, чтобы хватило для установки), форматируем в NTFS, отключаем диск и дефрагментируем его файл при помощи Wincontig.
Сейчас надо из этого VHD получить образ диска с готовой к работе Windows, драйверами для вашего оборудования и поддержкой загрузки из VHD. Этого можно добиться разными способами.
Способ 1, рекомендуемый. Для Win7 редакций Корпоративная и Максимальная, и для Win8. Установка системы в VHD штатными средствами.
После загрузки инсталлятора жмем Shift-F10, и выполняем:
где «D:\win7.vhd» — путь к файлу VHD. Буквы дисков могут отличаться от вашей основной системы, их можно посмотреть запустив, к примеру notepad и открыв в нем диалог выбора файла.
Продолжаем, VHD появится в списке устройств для установки. После установки в вашем загрузочном меню Windows появится новая запись и окажется по умолчанию. Это и есть загрузка в VHD.
Способ 2. Для всех систем. Установка в отдельный раздел на диске. Устанавливаем Windows туда стандартно, и в самом конце после всей подготовки клонируем раздел в VHD.
Способ 3. Для всех систем. Устанавливаем систему в VHD на виртуальной машине, проделываем всю подготовку, а затем грузимся с этого VHD на реальном железе. Есть вероятность возникновения проблем с драйверами оборудования при переносе на реальное железо. Лучше перед переносом выполнить sysprep.
Способ 4. Для WinXP. Используем драйвер WinVBlock.
В menu.lst добавляем вот такие три записи.
Что здесь делается:
-подключается winxp.vhd как жесткий диск (файл VHD обязательно нужно дефрагментировать при помощи WinContig, иначе Grub4Dos откажется его подключать)
-подключается образ дискеты winvblock.ima с драйверами WinVBlock, грузится в память.
-подключается образ установочного CD xp.iso, грузится в память.
-записей для установки две, т.к. установка WinXP состоит из 2х стадий — текстовый и графический режим. Сначала выбираем TXT, при второй загрузке — GUI. Разница лишь в том, откуда грузимся — с CD или HDD.
-нажимать F6 и выбирать драйвер не нужно, интегрировать в дистрибутив тоже, достаточно иметь его на образе дискеты.
-после установки в Grub4Dos выбираем Boot и загружаемся в систему, которая установилась в VHD.
Для Win7, а тем более для x64 редакций это так просто не сработает. Нужна особая, уличная магия.
Впрочем, у меня так и не получилось заставить WinVBlock работать с Win7. Может, у вас получится.
Cпособ 5. Для Win7 любых редакций. Используем VBoot. Это тоже драйвер, позволяющий грузиться в VHD. Он подписан и позволяет устанавливать x64 системы. К сожалению, платный, но доступна демо-версия, которой для установки достаточно.
Выставляем время на 2011 год. (иначе при загрузке получите BSOD)
В корень диска кладем папку VBoot, vbootldr и vbooldr.mbr.
В vboot\grub\grub.cfg ищем записи Windows 7 VHD и Windows 7 Install и меняем на вот такие:
Метку раздела, на котором лежат файлы win7.vhd и win7.iso (дистрибутив Win7) — меняем на SYS (хотя не важно какую, лишь бы совпадало). У меня Vboot почему-то не хочет распознавать пути вида (hd0,1). Еще можно обращаться по UUID, но метки проще.
В menu.lst добавляем запись:
Перезагрузка. В Grub4Dos идем в Vboot, а в нем — в Windows 7 Install. После загрузки инсталлятора жмем shift-F10, запускаем notepad, открываем диалог выбора файлов и смотрим, на какой букве находится диск с Vboot. Допустим, это D:. Возвращаемся в командную строку и пишем для 64-битных редакций — или для 32-битных Это установит драйвер Vboot и примонтирует виртуальные устройства. Затем продолжаем установку на появившийся в списке устройств VHD, и грузимся через запись Windows 7 VHD. После окончательной настройки (см. ниже) удаляем Vboot командой vbootctl uninstall и тогда можно вернуть время на текущее.
И вот Windows установлена и загрузилась.
Во первых, проверим через Bootice, не снес ли нам установщик Grub4Dos из MBR. Если снес — снова ставим.
Во вторых, проверим, есть ли на системном разделе загрузчик Windows — файл bootmgr и папка Boot (в случае Win7/8). Они имеют атрибуты скрытых и системных, включите их отображение. Если нет — значит установщик увидел этот загрузчик где-то еще и добавил опцию своей загрузки туда, или же создал скрытый 100мб раздел и разместил все там. Это не дело, загрузчик на системном разделе нам нужен. Поэтому создаем его:
И отключаем в нем проверку подписей драйверов:
В действующем загрузчике тоже отключаем:
Перезагрузка для включения тестового режима и устанавливаем драйвер Firadisk: hdwwiz (hdwwiz.cpl в XP), установка вручную, все устройства, установить с диска и выбираем .inf файл.
Теперь ужимаем VHD до приемлимого размера (я добавил пару гб на всякий случай, получилось 6). Кстати, а как определить доступный размер? На экране меню Grub4Dos в верхней строке есть строка вроде Mem: /639K/13582M/512M.
Это доступные области памяти, в которые он может загрузить образ. Но он может загружать образ только целиком в одну область, так что размер нового VHD не должен превышать самое большое значение из этой строки, иначе получите ошибку.
Грузимся в предыдущую Win, монтируем win7.vhd, создаем еще один vhd уже конечного размера и копируем один в другой через редактор разделов вроде Partition Expert. (Если вы решили последовать способу установки 2 — сейчас самое время склонировать ваш системный раздел в VHD) Заменим прежний файл на новый, опять дефрагментируем через Wincontig. Попробуем загрузиться в новый VHD. Проблем возникнуть не должно.
Можно вместо всего этого использовать специальную программу для урезания и сжатия уже установленной Win7 — VHD_W7_Compact. Заявляется, что может урезать до 600мб.
5) Пора таки загрузиться из RAM! Добавим в menu.lst еще несколько строчек:
(для XP вместо /bootmgr пишем /ntldr)
И наконец загружаемся, выбрав Boot Win7 from RAM.
Минуту-две VHD копируется в память, несколько секунд загрузки и… появляется рабочий стол. Ура, семерка работает без использования HDD, причем вроде неплохо работает.
Можно еще добавить хитрый способ загрузки Win7 напрямую из VHD с сохранением изменений:
Чтобы это работало — в .inf файле Firadisk нужно заменить «LoadOrderGroup = Boot Bus Extender» на «LoadOrderGroup = SCSI miniport».
Здесь Firadisk заставляем работать с образом не в памяти, а на диске. Оно заметно тормозит, так что лучше все же применять способ установки 1 с родным VHD boot.
Вот тут есть еще одна статья о загрузке Win7 из RAM.
Ну а c линуксами можно попробовать вот так.
Я использую такую конфигурацию на домашнем компьютере с прошлой осени, уже более полугода. Попробую упорядочить субъективные впечатления:
Плюсы:
+ Действительно, работает быстренько. Программы из памяти запускаются мгновенно (что очевидно). По стабильности работы нареканий нет — компьютер работает неделями и месяцами.
+ Нет лишних звуков от HDD.
+ Понятия «износ», «количество циклов чтения/записи» — для RAM несущественны.
+ Побочный плюс — получилась неизменяемая, неубиваемая система. Можно одноразово ставить всякие кривые программы (к примеру, для восстановления USB flash — они обычно ставят свои драйверы, которые потом трудно выковырять) не рискуя что-либо испортить. Перезагрузка и как ничего и не было.
+ Побочный плюс — VHD это круто. Никаких больше разделов диска, просто файлы, которые элементарно копируются/перемещаются/удаляются/бэкапятся без всяких акронисов/парагонов/gparted-ов.
Минусы:
— Честно говоря, разницы с хорошим SSD по скорости не заметно. В обоих случаях придраться к быстродействию негде.
— Конечно же, тратится драгоценная память. Вынь да положь 6-8 гигабайт. В моем случае остатка в 10гб мне хватает, а если будет мало — можно и в режиме VHD загрузиться.
— 6-8 гб для Windows 7 — все же очень мало. Одни обновления Windows Update быстро съедят все место. А еще захочется установить любимые программы… кому-то и 100гб системного раздела может быть мало (а некоторые пропагандируют вообще не разбивать диски на разделы). В моем случае я разместил на системном разделе только самые востребованные программы, а все остальное в виде portable версий держу на HDD. Все-таки это домашний компьютер, на нем нет жадных до памяти и места на системном диске монстров вроде SQL Server, Visual Studio, Adobe CS, MS Office (хватает и портабельного LibreOffiсe). Пока все хорошо.
— temp приходится переносить на другой диск. Некоторые инсталлеры никого не спрашивая распаковываются именно туда и свободного места может не хватить.
— Приходится отключать проверку подписей драйверов. Тут уж ничего не поделать.
— У неубиваемости есть другая сторона. Для каждого изменения в настройках, для каждого обновления, для каждой установки программы/драйвера для постоянного использования необходимо перезагружаться в режим работы с VHD — иначе все будет потеряно при перезагрузке. Если какая-то ваша программа хранит что-то свое в профиле (например, игры держат там сохранения) — то и профиль желательно переносить на другой раздел.
— Загрузка 6-8гб в память занимает много времени — не похвастаешься 10 секундной загрузкой.
— По понятным причинам невозможно использовать гибернацию. Но в обычный сон система уходит и нормально просыпается.
Но я снова слышу крики в зале. «И чего только не придумают, лишь бы SSD не покупать!», «Да это ж бред, выкидывать столько памяти за просто так!», «Какие-то левые кривые дрова ставить?», «Не нужно!». Согласен. Рекомендовать такой подход я не буду. Это скорее занятный эксперимент, чем рабочее решение. Спасибо за внимание, теперь можно постить картинки с хлебными троллейбусами.
P.S. Большая благодарность разработчикам Firadisk и WinVBlock — karyonix и Shao Miller, а также форуму reboot.pro.
Прочитал топик «У вас 2-3 HDD? Ускорим загрузку и реакцию Windows и программ» который и сподвиг рассказать о моем методе ускорения винды. Началом послужило приобретение SSD SLC диска TS16GSSD25S-S и 4Гб памяти (в то время у меня стояла WinXP 32bit) и желание выжать из системы максимум. Данный метод тестировался мной полгода на XP и столько же на 7.
Итак цели:
1. Защита SSD диска (есть куча мнений о их «живучести», если ставить на них винду и файл подкачки);
2. Ускорение реакции винды на действия пользователя;
3. Ускорение работы приложений и служб системы;
4. Использования памяти свыше 3Гб (в случае если винда ее не видит).
Методы и инструменты:
5. Метод — не храните личные данные на диске с системой и уж тем более на рабочем столе.
Все «Мои документы», фильмушки, фотки и т.д. советую хранить НЕ на системном разделе диска. Можно назвать причиной замедление работы, особенно это объективно когда все хранится на рабочем столе, но главная причина — сохранность данных. Лично я давно перешел на использование сервера в домашних условиях — все данные в семье хранятся там, это надежно и дает возможность доступа к ним с любого компа, ноутбука и КПК. Он всегда включен, всегда доступен, а на вопрос зачем держать сервер только для этого — у меня NAS сервер только лишь часть реализованных им возможностей. В связи с проблемой недоступности данных «вне дома» — верю вы придумаете решение (моим решением является VPN соединение, и не более 10 файлов на ноутбуке/кпкашке с собой). Еще есть чувство «безнаказанности», помню в 96г обливался потом, поняв что рухнул важный раздел на харде, сейчас же изгаляюсь над виндой как хочу, с уверенностью что при проблеме восстановлю ее из образа Acronis-ом за 10 минут (на том же сервере лежат порядка 10 образов на разные компы и ноуты и с разными ОС под них). Еще плюс — мне достаточно харда в 16Гб для работы под Win7.
6. Метод — перенос пользовательских папок на RAM диск.
Сильно не бейте — у меня были причины так поступить. Сначала я включил режим EWF на системный диск, спустя какое-то время мне стало не хватать буфера в 512Мб для комфортной работы (приходилось перезагружать комп раз в 1-2 дня, а обычно он у меня неделями находился в «режиме сна» и перезагружался крайне редко). Проанализировав какие файлы чаще всего меняются (отжирая при этом буфер EWF) пришел к выводу что это в меньшей степени сами файлы винды в папках WINDOWS и Program Files и в большей степени папка текущего пользователя. Решено было разнести на разные диски папку пользователя (в моем случае два пользователя) и файлы винды/программ.
Программа минимум — сделать 2 логических диска — на первом винда, на втором две папки пользователей из Documents and Settings. Для каждого диска включить EWF, тем самым общий максимальный буфер увеличится до 1Гб.
Программа максимум — перенести папку пользователя на сохраняемый RAM диск — получим очень приличный прирост в скорости, но сохранять образ этого диска надо на раздел БЕЗ EWF, а то есть риск переполнить буфер и получить зависание при перезагрузке системы в момент сохранения образа RAM диска. Плюсы и минусы:
- + ощутимый прирост в скорости (ярлыки, часть реестра, рабочий стол — все это теперь в памяти)
- + отклик системы на действия пользователя просто изумительный.
- + буфер EWF теперь не так быстро уменьшается (можно поработать без перезагрузки 3-5 дней)
- — тот же риск потерять изменения за сессию при зависании/потере питания
- — ограничен размер (иногда папка пользователя может быть просто огромной)
7. Метод — правильная разметка SSD диска.
Достаточно логична проблема, когда логический блок данных (равный, к примеру, одному физическому блоку на диске) располагается на диске со смещением. Следствие этого — при чтении/записи одного логического блока данных происходит работа с «двумя половинками», а фактически с двумя, физическими блоками на диске. В теории при форматировании диска под Win7 таких проблем не должно возникать, но желательно все таки это проверить, например с помощью Paragon Alignment Tool.
Итак, берем картину мироздания и тупо смотрим что к чему.
Постараюсь попонятнее обрисовать то, что у меня получилось и последовательность действий для достижения этого.
Начинал я с Windows XP 32bit
Структура дисков должна получится следующая:
реальные разделы или диски (NTFS)
С: — желательно первый на быстром диске, на нем винда (за вычетом папки TEMP и папок пользователей из Documents and Settings) и «самый важный» софт. EWF включен в режиме отложенной записи.
D: — второй раздел в системе, без каких-либо ускорителей — тут главное надежность. Хранятся личные документы, проинсталлированные игрушки, некоторый софт, так же сюда сохраняется образ RAM диска при выключении.
рам-диски (FAT32)
E: — рам диск, с сохранением данных в образ на диск D, на котором расположены перенесенные профили пользователей. Ориентировочный размер 300-400Мб.
F: — рам диск без сохранения данных, в корне находится файл подкачки, папка TEMP для хранения временных файлов. 500-600Мб.
Можно обойтись без букв E и F если подключать тома RAM дисков как «пустые NTFS папки». К примеру диск E подключить как папку c:\Documents and Settings\имя пользователя\ и отменив букву диска, а F прикрутив так же к каталогу windows/temp с отменой буквы диска, но при этом SWAP придется кидать в туже под папку, а не в корень. Для SuperSpeed RamDisk Plus это можно выполнить через виндовское «Управление дисками», для Gavotte RAMDisk придется работать через командную строку непосредственно с утилитой. Данный метод более предпочтительный т.к. не приходится заморачиватся с «символьными ссылками» (папками, указывающими на другой каталог или диск) и не создается множество дисков в системе.
Теперь к реализации.
Допустим у нас есть диск (SSD или простой HDD), на нем два раздела, C: под систему и D: под данные пользователей.
Отключаем индексацию файлов на всех NTFS томах (для SSD это зло), файл подкачки, восстановление системы, спящий режим (к сожалению придется пользоваться только ждущим режимом).
Чистим папки c:\WINDOWS\Prefetch и c:\Windows\system32\dllcache\.
Выполняем в командной строке sfc /cachesize=0.
Устанавливаем SuperSpeed RamDisk, кидаем в Program Files программу Gavotte RAMDisk. Для использования ими недоступной памяти у SuperSpeed в настройках нужно поставить несколько галочек (подробнее гуглить), у Gavotte — прописать в реестре [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RRamdisk\Parameters] «UsePAE»=dword:00000001 (обычно в комплекте есть reg файл).
Создаем RAM диск SuperSpeed-ом, ставим режим сохранения образа при выключении (место хранения — диск D). Он создаст диск с буквой.
Перезагружаемся и входим под Администратором (если таковой не виден — отображение администратора при запуске [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList] параметр типа dword «Adminus»=«00000001»). Ручками перемещаем все из c:\Documents and Settings\имя пользователя\ на вновь созданный RAM-диск (папка — исходник должна стать пустой) и идем в Мой компьютер — Управление — Управление дисками. Находим RAM-диск, удаляем букву диска и создаем путь, указав папку пользователя на диске C. Все, теперь можно перезайти под собой и проверить стабильность работы — ваши данные хранятся в памяти и записываются в образ на диске D при перезагрузках.
Теперь создаем рам диск с помощью Gavotte RAMDisk, указываем размер, удаляем букву диска (бэкспейсом) и нажимаем «применить». Далее монтируем диск как папку, выполнив rdutil link C:\windows\temp (придварительно ее почистив). Также необходимо переписать пути переменных среды tmp и temp на этот путь (изначально используется папка temp внутри профиля пользователя).
Теперь нужно подключить SWAP-файл, причем в ту же папку temp — выполняем addswap C:\windows\TEMP\pagefile.sys 384 384. Проверить подхватывается ли файл при запуске можно перезагрузившись и попробовав удалить его из temp (система должна не позволить), также в корне диска C не должно быть ни pagefile.sys, ни hiberfil.sys.
Самым последним этапом перезагружаемся в безопасном режиме, копируем файлы для EWF и выполняем reg файл (обычно с ним в архиве идет). При применении reg файла он обязательно должен ответить что ВСЕ данные перенесены. Далее перезагружаемся и активируем режим отложенной записи.
Так же желательна некоторая оптимизация винды — привожу листинг reg файла, который я запускаю при каждой установке XP для каждого! пользователя. Он не претендует на супер правильность, так что советую проанализировать каждый пункт и решить нужен ли он лично вам.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
«EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
«Enable»=«N»
«OptimizeComplete»=«No»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
«EnableAutoLayout»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
«NtfsDisable8dot3NameCreation»=dword:00000001
«NtfsDisableLastAccessUpdate»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
«DisablePagingExecutive»=dword:00000001
«LargeSystemCache»=dword:00000001
«IOPageLockLimit»=dword:03e80000
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl]
«Win32PrioritySeparation»=dword:00000005
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
«BootExecute»=""
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl]
«IRQ8Priority»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
«Posix»=-
«Optional»=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
«Auto»=«0»
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoRecentDocsHistory»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Desktop]
«MenuShowDelay»=«50»
«FontSmoothing»=«2»
«FontSmoothingType»=«2»
«FontSmoothingOrientation»=«1»
[HKEY_CURRENT_USER\software\microsoft\windows\currentversion\explorer\advanced]
«TaskbarGroupSize»=dword:00000006
«SeparateProcess»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Keyboard]
«InitialKeyboardIndicators»=«2»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
«WaitToKillServiceTimeout»=«10000»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoFavoritesMenu»=dword:00000001
«NoRecentDocsMenu»=dword:00000001
«NoSMHelp»=dword:00000001
«MemCheckBoxInRunDlg»=dword:00000001
«NoActiveDesktop»=dword:00000001
«NoLowDiskSpaceChecks»=dword:00000001
«NoSharedDocuments»=dword:00000001
Теперь про Windows 7 32bit
С этой виндой будет работать хр-шный EWF, но получилось достать новую версию от Windows 7, у которой буфер отложной записи около 1300Мб. В связи с этим отпадает необходимость переносить папку пользователя из Documents and Settings (к тому же последняя разрослась до неприличных размеров) и все манипуляции сводятся к включению EWF, добавлению RAM-диска с помощью Gavotte RAMDisk и перемещения туда файла подкачки. Reg файл также более скромный т.к. в актуальности многих параметров я не уверен, то оставил только некоторые из них.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
«EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
«Enable»=«N»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
«EnableAutoLayout»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
«NtfsDisableLastAccessUpdate»=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
«LargeSystemCache»=dword:00000001
[HKEY_CURRENT_USER\Control Panel\Desktop]
«MenuShowDelay»=«150»
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
«BootExecute»=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
«Auto»=«0»
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«NoRecentDocsHistory»=dword:00000001
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
«WaitToKillServiceTimeout»=«10000»
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
«MemCheckBoxInRunDlg»=dword:00000001
«NoLowDiskSpaceChecks»=dword:00000001
Для удобства пользования EWF у меня на рабочем столе лежат два батника. Первый сбрасывает буфер на диск и выключает EWF до следующей загрузки системы (актуально при установки ПО). Второй в вкратце показывает сколько израсходовано буфера:
EWF сброс памяти.bat
ewfmgr c: -commitanddisable -live
ewfmgr c: -enable
pause
EWF состояние.bat
@ewfmgr -all | find «Volume Name»
@ewfmgr -all | find «State»
@ewfmgr -all | find «Boot Command»
@ewfmgr -all | find «Memory used for data»
pause
Всем привет в моих видео на ютубе я показывал как записать игру в оперативку или как закинуть файл подкачки в оперативную память или как увеличить производительность браузера гугл хрома с помощью заброски его кеша в оперативку. Многие задали вопрос можно ли установить Windows в оперативку и будит ли от этого толк? Сейчас я все расскажу.
Как установить Windows в оперативку?
Для этого нам понадобится набор инструментов:
- 16 гб RAM, или больше. Хотя можно попробовать и на 8. 4 хватит только для XP
- Grub4Dos
- Wincontig
- BootIce
- Partition Wizard или что-то подобное для клонирования разделов
- драйвер Firadisk
- образ Windows желательно x64 (можно и x32, но свободной памяти будет макс 3.2гб).
- установленная и работающая винда от 7 до 10
Grub4Dos — это менеджер загрузки, для организации мультизагрузочных систем. он так же может создавать виртуальные диски - VHD и работать с ними так же как и с обычными дисками. VHD может быть смонтирован в память что нам и нужно. При монтировании в память содержимое файла-источника копируется в память и дальнейшая работа ведется уже оттуда. Как источник можно использовать файлы .ima (образы дискет), .iso (образы CD/DVD) а также .img (RAW образы HDD). Родные для Windows файлы .vhd (фиксированного размера, не динамические и не дифференциальные) представляют собой те же .img, но с небольшим заголовком и их тоже можно подключать.
Созданные при помощи Grub4Dos виртуальные диски доступны в реальном режиме. Windows сможет работать с ними только при наличии специального драйвера - Firadisk (работает с дисками в памяти) и WinVBlock (работает с образами в файлах). При наличии в Windows Firadisk она сможет работать с дисками, созданными в Grub4Dos. К сожалению, драйверы не подписаны и для их работы нужно отключить проверку подписей драйверов. Делаем так: создаем VHD с установленной Windows, где отключаем проверку подписей, устанавливаем Firadisk, затем подгружаем VHD еще до загрузки Windows через Grub4Dos и загружаемся уже в виндовс которая записана целиком в оперативную память.
Устанавливаем Grub4dos. Запускаем BootIce, выбираем диск, с которого будем загружатся, ставим Grub4dos в MBR, кладем в корень любого раздела файлы grldr и menu.lst.
В menu.lst пишем:
Потом через управление компьютером - управление дисковыми устройствами создаем в корне нашего рабочего раздела файл VHD фиксированного размера гигабайт этак на 10 (можно больше, при наличии большого количества оперативки), форматируем в NTFS, отключаем диск и дефрагментируем его файл при помощи Wincontig.
Нужно из этого VHD получить образ диска с готовой к работе Windows, драйверами для вашего оборудования и поддержкой загрузки из VHD, а еще такой образ можно просто скачать. Если качать образ то только с отвязаными драйверами, так как ваш компьютер может отличаться. После загрузки инсталлятора жмем Shift-F10, и выполняем:
где «D:\win10.vhd» — путь к файлу VHD. Буквы дисков могут отличаться от вашей основной системы, их можно посмотреть запустив, к примеру notepad и открыв в нем диалог выбора файла.
VHD появится в списке устройств для установки. После установки в вашем загрузочном меню Windows появится новая запись и окажется по умолчанию. Это и есть загрузка в VHD.
Загружамем виндовст и создаем родной загрзчик так:
Отключаем в загрзчике проверку цифровых подписей так:
И в том загрузчике с которого мы загрузились тоже отключаем:
Перезагружаем компьютер для включения тестового режима и устанавливаем драйвер Firadisk: hdwwiz, установливаем все устройства в ручную с файлов .inf
Сжимаем VHD до размера что бы влез в опеартивку можно накинуть пару лишних гигов если оперативки много, я вообще сделал диск на 32 гига.
Грузимся в предыдущую винду, монтируем win10.vhd, создаем еще один vhd уже конечного размера и копируем один в другой через редактор разделов вроде Partition Expert. Заменяем тот файл на новый, опять дефрагментируем через Wincontig. Попробуем загрузиться в новый VHD. Все должно быть норм.
Наконец таки пришло время загружать винду в оперативку, прописываем в грубе так:
Загружамемся, после копирования винды в оперативку запустится Windows которая целиком и полностью будет находится в оперативке. Можно проверить скорость диска и вы будуите крайне приятно удевлины, посмотрите сами это сюрприз!
Что бы ввсе изменения в windows сохранялись нам нужно сделать кое что еще, прописываем груб:
Таким образом все из Windows в ОЗУ будет сохранятся в файл VHD на диске или флешке вашего ПК. Теперь ты установил Windows в оперативку! Знаешь еще способы пиши о этом комментариях.
Читайте также: